在我的应用程序中,我使用 realex 支付金额。在这样做时,我向 realex 注册了新用户,但之后当我尝试添加新卡时,我收到 realex 的响应,即 Sha1 哈希不正确。我检查了 sha1 哈希结构,这就是全部对,但我仍然收到此错误。如果有人知道这一点,请告诉我。
1704 次
3 回答
0
确保您将正确的数据作为参数传递..我目前正在使用以下方法,它在我的网站上运行良好..
$today_timestamp :- 当前时间戳 $merchant_id :- 您的商家 ID $order_id: 确保您传递了正确的订单 ID 并使用开发人员文档中提供的规则进行验证.. $amount :- 当前价格。这必须是完整的数字。例如:如果用户想支付 4 美元,那么它必须是 400 .. 美元货币:- 在我的情况下是英镑..
$sha1hash = $today_timestamp . "." . $merchant_id . "." . $order_id . "." . $amount . "." . $currency ;
$sha1hashed_string = sha1($sha1hash);
$string_with_shared_secret = $sha1hashed_string . "." . $shared_secret;
$sha1hash_string = sha1($string_with_shared_secret);
于 2013-04-11T05:59:44.120 回答
0
may be you missing any dot in your SHA1 Generation method
Chk it.
于 2010-06-05T18:27:24.283 回答
0
我相信您正在尝试处理新卡交易?在 sha1hash 中使用的正确字段是
timestamp.merchantid.orderid.amount.currency.payerref.chname.cardnumber
在新卡请求中,金额和货币将为空白,因此您将通过连接用点连接的其他值来创建一个字符串,例如
20130312105733.yourclientid.yourorderid...yourpayerref.cardholdername.4242424242424242
获取它的 sha1hash(确保将生成的哈希转换为小写十六进制字母!这很重要,因此下一步以与 Realex 相同的方式执行)
fc63ee950d69f275a0d54927072e4d675133ccfd
(不是:FC63EE950D69F275A0D54927072E4D675133CCFD - 您的 SHA1 库可能会产生大写哈希 - 您必须转换为小写。)
然后添加一个点和您的秘密并再次散列。
fc63ee950d69f275a0d54927072e4d675133ccfd.yoursecret
要得到:
112bf11fae62dc3116800b4a00457206dc2f1308
同样,请确保您像我一样转换为小写十六进制字母。
欧文
于 2013-03-12T23:17:37.100 回答