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를 참조하기 때문에 혼란 스럽습니다.
그래서 서명 키를 사용하는 것이 맞습니다. 해시를 생성하는 방식에 문제가있는 부분을 발견 할 수 있습니까?