小编sid*_*idd的帖子

Razorpay 签名验证没有发生,因为 SHA256 摘要是错误的 NodeJS

我正在制作一个应用程序,在成功付款后,我创建一个摘要,我使用 Razorpay 签名验证的建议方式进行验证。

我的后端在 NodeJS 中,这是我创建摘要的方式。

const crypto = require("crypto");

 var generatedSignature = crypto
      .createHmac(
        "SHA256",
        razorpay_order_id + "|" + razorpay_payment_id
      )
      .update(key_secret)
      .digest("hex");  

var isSignatureValid = generatedSignature == payload.razorpay_signature // false
Run Code Online (Sandbox Code Playgroud)

我创建签名的方式是错误的吗?

node.js razorpay

6
推荐指数
2
解决办法
3532
查看次数

将JS/JavaScript代码插入父级的iframe中

我有一个脚本,我从我的服务器加载到我的父HTML头...我想在重新加载时将该脚本插入到我的iframe中.

我有一个函数,使我的iframe重新加载之前,它将脚本插入头像这样: -

function insertScriptIntoHead(){
    var head = iframe.contentWindow.document.getElementsByTagName('head')[0];
    var script = iframe.contentWindow.document.createElement('script');
    script.src = getFromParent();
    script.type = 'text/javascript';
    head.appendChild(script);
}
Run Code Online (Sandbox Code Playgroud)

这个文件是1.5 MB,每次重新加载它再次加载,我想消除.

我想如果我可以从父加载它并将文件放在每次重新加载到iframe然后我可能会消除从服务器加载的文件,这将节省时间.

任何帮助将不胜感激

-谢谢

html javascript iframe

3
推荐指数
1
解决办法
1975
查看次数

Nodejs 将 base64 用作图像

我正在尝试将 base64 字符串作为带有image/png标题的图像提供服务。标题设置正确,但没有显示图像,我只能看到一个空白屏幕。这是代码:

request('someCustomLink', function (error, response, body) {
// someCustomLink gives the base64 string
        var img = new Buffer(body, 'base64');
        res.writeHead(200, {
            'Content-Type': 'image/png',
            'Content-Length': img.length
        });
        res.end(img);         
});
Run Code Online (Sandbox Code Playgroud)

是我获得此解决方案所遵循的链接。

任何帮助将不胜感激。

编辑 这是来自我的 someCustomLink 的响应标头(它可能有助于理解问题)

Accept-Ranges:bytes
Content-Length:128778
Content-Type:image-jpeg
Date:Thu, 21 Dec 2017 06:03:52 GMT
ETag:"edc04d469779108860478b361b7427d7"
Last-Modified:Mon, 11 Dec 2017 08:54:32 GMT
Server:AmazonS3
x-amz-id-2:QlR39g0vC5CeOo6fdKzX9uFB+uiOtj61c0LKW2rQLcCPWllcKyfbpg93Yido+vZfzMzB3lmhbNQ=
x-amz-request-id:3EC77634D9A05371
Run Code Online (Sandbox Code Playgroud)

这是获取请求

var request = require('request').defaults({ encoding: null });

app.get('/thumb/:thumbLink', function(req, res) {


        request('https://s3.amazonaws.com/my-trybucket/projectImages/'+req.params.thumbLink, function (error, response, body) {
            //console.log('error:', error); // Print …
Run Code Online (Sandbox Code Playgroud)

javascript node.js

1
推荐指数
1
解决办法
3805
查看次数

setTimeout 在 JavaScript 中的 for 循环之后执行

setTimeout如果我们在循环之前运行for(大约需要 5-8 秒)并在 chrome 开发控制台中运行它,则执行顺序应该是

  1. 第一的setTimeout
  2. 第二个for循环
  3. 最后console.log

    setTimeout(function(){
        console.log('setTimeout executes');
    },1000);
    for(var i=0;i<10000;i++){
        console.log('inside for loop');
    }
    console.log('after For Loop');
    
    Run Code Online (Sandbox Code Playgroud)

但事实并非如此,顺序变成了:

  1. 第一个for循环
  2. 第二console.log
  3. 最后setTimeout

为什么会发生这种情况?

javascript

1
推荐指数
1
解决办法
1358
查看次数

标签 统计

javascript ×3

node.js ×2

html ×1

iframe ×1

razorpay ×1