Authorize.netのSIMでクレジットカード処理を実装していますので、私のサイトはAuthorize.netの支払いフォームに送信されます。私は "(99)この取引は受け入れることができません"と私はなぜか分からない。Authorize.netのPHP統合でエラー99を修正する方法
ここでは、これを処理するために一緒に投げたコードのコアを示します。ここで計算された値(キーを除く)は、入力されたフォームのinput [type = hidden]要素に入れられます。
<?php
date_default_timezone_set("America/New_York");
$login = "XXX"; //A 12-character string
$sequenceNumber = $orderId; //equals 22
$timestamp = time();
$amount = $cost; // Equals 53.18
$key = "XXX"; //A 128-character string
$x_fp_hash = bin2hex(hash_hmac("sha512","$login^$sequenceNumber^$timestamp^$amount^USD",$key));
?>
私のアカウントでは、Authorize.netのオンラインインターフェイスから$ keyと$ loginが取得されています。
エラー99が表示されています。これは、ハッシュが自分の考えているものと一致していないことを示しています。私はこれにいくつかのバリエーションを試して、それを動作させることはできません。誰かが洞察力を持っていますか?
問題を複雑にするために、私が参照しているすべてのヘルプ資料は「トランザクションキー」について語っていますが、official developer guide pdfは「署名キー」のみを参照しています。上記の "$ key"の場合、私は署名キーを使用するように思えますが、両方を試しました。開発者ガイドでは特にsha512の使用が記載されていますが、多くのオンラインディスカッションではmd5を参照しているため、混乱しています。
私は署名キーを使用する権利があります。私はそれを正しく使用していますか、私がハッシュを生成している方法に何か間違った点を見つけることができますか?