Skrill快速结帐中生成MSID

时间:2018-09-13 05:20:40

标签: node.js md5 skrill

我正在使用NodeJ。然后快速结帐Skrill Payment Gateway的集成。

当我们需要创建msid并将其与返回成功URL中提供的msid进行比较以进行请求身份验证时,我陷入了困境。

按照文档(https://www.skrill.com/fileadmin/content/pdf/Skrill_Quick_Checkout_Guide.pdf)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');

1 个答案:

答案 0 :(得分:1)

请注意,必须仅在您的后端进行msid和md5sig的验证, 保护您的“秘密单词”。

  • merchant-email@email.com不是您的ID,这是您与商人ID相关联的电子邮件。使用您的商家帐户登录www.skrill.com,您应该可以在右上角找到自己的ID
  • 在散列整个字符串之前,您必须使用秘密单词的md5散列值

示例msid函数为: md5(商家ID +交易ID + md5(秘密字))

还要注意,msid参数不提供事务的状态。 它仅证明客户已完成通过网关的流程。 您必须检查发送到“ status_url”的交易状态-Skrill发送的ASYNC POST消息