私のアプリケーションでは、金額を支払うためにrealexを使用しています。その間、新しいユーザーをrealexに登録しましたが、その後新しいカードを追加しようとすると、sha1ハッシュが正しくないというrealexからの応答を受け取りました.sha1ハッシュ構造を確認しました正しいですが、それでもこのエラーが発生します。誰かがこれを知っている場合は教えてください。
3 に答える
may be you missing any dot in your SHA1 Generation method
Chk it.
permeters として適切なデータを渡すことを確認してください。現在、以下の方法を使用しており、私のサイトでは正常に動作します。
$today_timestamp :- 現在のタイムスタンプ $merchant_id :- あなたのマーチャント ID $order_id: 正しい注文 ID を渡しており、開発者向けドキュメントで提供されているルールを使用して検証されていることを確認してください.. $amount :- 現在の価格。これは全桁でなければなりません。例: ユーザーが $4 を支払いたい場合、それは 400 でなければなりません.. $currency:- 私の場合、これは GBP です..
$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);
あなたはカードの新しい取引を処理しようとしていたと思いますか? sha1hash で使用する正しいフィールドは次のとおりです。
timestamp.merchantid.orderid.amount.currency.payerref.chname.cardnumber
card-new リクエストでは、amount と currency は空白になるため、ドットで結合された他の値を連結して文字列を作成します。
20130312105733.yourclientid.yourorderid...yourpayerref.cardholdername.4242424242424242
この sha1hash を取得します (結果のハッシュを小文字の 16 進数文字に必ず変換してください! これは、次のステップが Realex と同じ方法で実行されるために不可欠です)
fc63ee950d69f275a0d54927072e4d675133ccfd
(注: FC63EE950D69F275A0D54927072E4D675133CCFD - SHA1 ライブラリは大文字のハッシュを生成する場合があります - 小文字に変換する必要があります。)
次に、ドットとシークレットを追加して、もう一度ハッシュします。
fc63ee950d69f275a0d54927072e4d675133ccfd.yoursecret
取得するため:
112bf11fae62dc3116800b4a00457206dc2f1308
繰り返しますが、私のように小文字の 16 進数に変換してください。
オーウェン