我正在制作一个应用程序,在成功付款后,我创建一个摘要,我使用 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)
我创建签名的方式是错误的吗?
我有一个脚本,我从我的服务器加载到我的父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然后我可能会消除从服务器加载的文件,这将节省时间.
任何帮助将不胜感激
-谢谢
我正在尝试将 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) setTimeout如果我们在循环之前运行for(大约需要 5-8 秒)并在 chrome 开发控制台中运行它,则执行顺序应该是
setTimeout for循环最后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)但事实并非如此,顺序变成了:
for循环console.logsetTimeout为什么会发生这种情况?