2

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

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

根据文档 ( 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');
4

1 回答 1

1

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

  • Mercer-email@email.com 不是您的 ID,这是您与 Mercer_ID 关联的电子邮件。使用您的商家帐户登录 www.skrill.com,您应该能够在右上角找到您的 ID
  • 在散列整个字符串之前,您必须使用密码的 md5 散列值

示例 msid 函数为:md5(merchant_id + transaction_id + md5(secret_word))

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

于 2018-09-28T12:44:40.620 回答