您好我正在从authorize.net设置付款表单 - 我已经在开发人员中心工作了两天,试图弄清楚我在哪里可以找到文档,其中包含我需要的api调用的明确示例制作。 我已经查看了网站上的PDF和其他内容,但没有任何内容可以为文档提供示例,我正在寻找像FB api示例一样的文档,我可以看到api调用,这是关于唯一的我找到了http://developer.authorize.net/guides/DPM/wwhelp/wwhimpl/js/html/wwhelp.htm
Authorize.net使用md5哈希进行交易响应 - 我知道在商家帐户中设置值的位置,但我应该设置哪些值? (例如,我应该md5(“some-random-words”)并将该值粘贴到商家帐户设置中?)
这是我的第一个支付网关设置,所以请耐心等待这个问题的任何不明确部分。 感谢
答案 0 :(得分:4)
不用担心,我们一度都是新人。
看看你的评论,看起来你不需要帮助1.以上和2我有一些建议。 您在帐户中输入的哈希值实际上只是一个密码。
您确实希望尽可能使用MD5哈希安全功能。它可能看起来很复杂,而documentation并没有让您感到困惑,但不要低估电子商务网站上的几层安全性。
你真的需要阅读我链接到的所有文档才能获得重点。特别是这一个:
请注意,MD5哈希值最长可达20个字符,包括大写和小写字母,数字,空格和标点符号。更复杂的价值会更安全。
事实证明,您无法输入超过20个字符的值。但是,当您提交时,他们不会验证您的输入,如果他们超过20个字符,则会导致截止密码...而且您永远不会知道,因为您认为他们接受了您的32个字母秘密
接下来,要注意他们做的两种类型的哈希。在文档中,他们给出了两者的例子:
MD5哈希是通过组合多个值创建的。
对于SIM,这些值用于创建MD5哈希 确切的顺序:
- MD5哈希值,由商家在帐户的设置中分配。
- API登录ID (x_login)。
- 我们分配给交易的交易ID号(x_trans_id)。
- 费用的金额(x_amount)。
醇>对于Silent Post,这些值用于创建MD5哈希 这个确切的顺序:
- MD5哈希值,由商家在帐户的设置中分配。
- 我们分配给交易的交易ID号(x_trans_id)。
- 费用的金额(x_amount)。
醇>然后使用生成的字符串生成MD5哈希。
这是我刚刚编写的一个PHP方法,它将为您检查哈希值。这将检查auth.net提供的API和Silent Post哈希值。传递给它的数据来自它们发送给你的监听器的$ _POST数据。
$their_hash == x_MD5_Hash
$trans_id == x_trans_id
$amount == x_amount
private function _is_authnet($their_hash, $trans_id, $amount) {
// Defined earlier in the class
$login_id = AUTHORIZENET_API_LOGIN_ID;
$private_value = AUTHORIZENET_SECRET;
// Generate two hashes, one for API responses and one for
// Silent Post messages
$our_hash_api = md5($private_value . $trans_id . $amount);
$our_hash_sp = md5($private_value . $login_id . $trans_id . $amount);
// Always make the hashes you're comparing uppercase for consistency
$their_hash = strtoupper($their_hash);
// Compare our two hashes
if (strcmp(strtoupper($our_hash_api), $their_hash) === 0) {
// Match
return true;
}
else if (strcmp(strtoupper($our_hash_sp), $their_hash) === 0) {
// Match
return true;
}
// No match, it's likely a fake. Recommended to log
// this event or send an alert of some kind.
return false;
}
我知道答案是迟到的,你肯定会继续前进。但希望也许有一天这会帮助那些遇到同样麻烦的人。