0

我一直在尝试为我的 USAePay 帐户生成一个公共 API 密钥,以使用 PHP 与 USAePay 客户端 JS iFrame 一起使用。

CURL 请求不断返回错误代码 80:不允许来自此源的事务类型。

我尝试过使用和不使用 pin 以及使用 sandbox.usaepay 的两种测试模式。. . 并且在 URL 中没有沙箱的常规模式下(适当地更改控制台中的 SourceKey)。

我的 PHP 代码可能有问题,还是我缺少其他设置?

$seed = "abcdefghijklmnop";
$apikey = "mysourcekeyfromconsole";
$apipin = "1234";
$prehash = $apikey . $seed . $apipin;
$apihash = "s2/" . $seed . "/" . hash("sha256",$prehash);
$authKey = base64_encode($apikey . ':' . $apihash);
//print("Authorization: Basic " . $authKey);

$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => "https://sandbox.usaepay.com/api/v2/publickey",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET"
]);

curl_setopt($curl, CURLOPT_HTTPHEADER, [
    "Content-Type: application.json",
    "Authorization: Basic " . $authKey
]);

$response = curl_exec($curl);
$error = curl_error($curl);

curl_close($curl);
4

1 回答 1

0

似乎这在沙箱中不起作用,只能从“ https://usaepay.com/api/v2/publickey ”。我不知道为什么当我尝试这样做时它最初不起作用,除非我更改了一些其他代码或设置。但是,现在,当我尝试将代码更改为沙盒时,它会返回一个错误,并且如果没有沙盒,它会返回公钥。

于 2019-11-28T10:51:04.020 回答