我正在使用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');
答案 0 :(得分:1)
请注意,必须仅在您的后端进行msid和md5sig的验证, 保护您的“秘密单词”。
示例msid函数为: md5(商家ID +交易ID + md5(秘密字))
还要注意,msid参数不提供事务的状态。 它仅证明客户已完成通过网关的流程。 您必须检查发送到“ status_url”的交易状态-Skrill发送的ASYNC POST消息