0

在我的应用程序中,我使用 realex 支付金额。在这样做时,我向 realex 注册了新用户,但之后当我尝试添加新卡时,我收到 realex 的响应,即 Sha1 哈希不正确。我检查了 sha1 哈希结构,这就是全部对,但我仍然收到此错误。如果有人知道这一点,请告诉我。

4

3 回答 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 回答