【问题标题】:MSID generation in Skrill Quick CheckoutSkrill Quick Checkout 中的 MSID 生成
【发布时间】:2018-09-13 05:20:40
【问题描述】:

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

当我们需要创建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');

【问题讨论】:

  • 我在 stackoverflow 上遇到了很多问题,但当 skrill 使用 Moneybookers 时,它们似乎适用于旧版本

标签: node.js md5 skrill


【解决方案1】:

请注意,msid 和 md5sig 的验证只能在您的后端进行, 保护你的“密语”。

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

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

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

【讨论】:

    猜你喜欢
    • 2016-07-28
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 2017-08-21
    • 2016-02-28
    • 1970-01-01
    相关资源
    最近更新 更多