Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Skrill快速签出中的MSID生成_Node.js_Md5_Skrill - Fatal编程技术网

Node.js Skrill快速签出中的MSID生成

Node.js Skrill快速签出中的MSID生成,node.js,md5,skrill,Node.js,Md5,Skrill,我正在使用NodeJs。并遵循Skrill支付网关的快速结帐集成 当我们需要创建msid并将其与返回成功url中提供的msid进行比较以验证请求时,我被困在了成功的时刻 根据文档()msid可以生成为 MD5签名,具有以下值: • merchant_id, for example: 123456 • transaction_id, for example: A205220 • upper-case MD5 value of the ASCII equivalent of your secret

我正在使用NodeJs。并遵循Skrill支付网关的快速结帐集成

当我们需要创建msid并将其与返回成功url中提供的msid进行比较以验证请求时,我被困在了成功的时刻

根据文档()msid可以生成为 MD5签名,具有以下值:

• merchant_id, for example: 123456
• transaction_id, for example: A205220
• upper-case MD5 value of the ASCII
equivalent of your secret word, for
example:
F76538E261E8009140AF89E001341F17
我使用下面的代码来实现同样的目的

var br = new Buffer.from('secret').join(' ').trim()
let sw = md5(br).toUpperCase()
let param_data = {
merchant_id: 'merchant-email@email.com',
transaction_id: "Ahjt786uy787",
secret_word: sw
}
let msid = crypto.createHash('md5').update(param_data.merchant_id+param_data.transaction_id+sw).digest('hex');

请注意,msid和md5sig的验证只能在后端进行, 保护你的“秘密字眼”

  • 商人-email@email.com不是您的id,这是您与商户id关联的电子邮件。使用您的商户帐户登录www.skrill.com,您应该能够在右上角找到您的id
  • 在对整个字符串进行散列运算之前,必须使用密文的md5散列值
示例msid函数为: md5(商户id+交易id+md5(秘密字))

还要注意,msid参数不提供事务的状态。 它仅证明客户通过网关完成了流程。
您必须检查发送到您的“status\u url”的交易状态,即Skrill发送的异步POST消息

我已经讨论了许多有关stackoverflow的问题,但这些问题似乎适用于Skrill使用moneybookers时的旧版本