1

尝试通过 PHP 请求托管支付字段访问令牌时收到 401 身份验证访问错误。我已按照本教程进行操作 ->从 BlueSnap 托管支付字段轻松开始;阅读有关这些类似问题的信息-> 1. BlueSnap 与节点 js 和 Angular 的集成2.在 Bluesnap API中获取 payment_field_token 时出错,并通读基本身份验证信息http://developers.bluesnap.com/docs/authentication没有运气。任何人都可以解决这个问题吗?

<?php
$TokenRequest=curl_init();
curl_setopt($TokenRequest, CURLOPT_URL, "https://sandbox.bluesnap.com/services/2/payment-fields-tokens");
curl_setopt($TokenRequest, CURLOPT_HEADER, 1);
curl_setopt($TokenRequest, CURLOPT_HTTPHEADER, array("Authorization: Basic CREDENTIALS_HERE", "Content-type: application/json"));
curl_setopt($TokenRequest, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($TokenRequest, CURLOPT_RETURNTRANSFER, true);
$TokenResponse=curl_exec($TokenRequest);
list($Headers, $Response)=explode("\r\n\r\n", $TokenResponse, 2);
$Headers=explode("\n", $Headers);
foreach($Headers as $Header)
{
if (stripos($Header, "Location")!==false)
{
$Token=trim(str_replace("Location: ", "", $Header));
}
}
?>
4

2 回答 2

0

我为 BlueSnap 工作。

401 错误通常意味着权限问题。您是否在 BlueSnap 控制台中将您的 IP 列入白名单。可以在此处找到有关如何执行此操作的文档:https ://developers.bluesnap.com/docs/api-credentials 。如果您可以向我提供您发送的实际 JSON 对象(或 XML),我可以尝试跟踪确切的错误并尝试确定根本原因。

我找到了您的 API 调用,而您正在执行 GET 而不是 POST。创建您需要调用 POST 的令牌。

于 2018-05-04T15:12:52.997 回答
0

在以下 URL 中,您将了解如何创建能够生成令牌的凭据:https ://developers.bluesnap.com/docs/api-credentials

获得用户名和密码后,替换变量的数据:$username, $password:

以下代码对我有用

$host = 'https://sandbox.bluesnap.com/services/2/payment-fields-tokens';
$username = 'API_1644786117605226907536';
$password = '654321Pm!';


$TokenRequest=curl_init();
curl_setopt($TokenRequest, CURLOPT_URL, $host);
curl_setopt($TokenRequest, CURLOPT_HEADER, 1);
curl_setopt($TokenRequest, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($TokenRequest, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($TokenRequest, CURLOPT_RETURNTRANSFER, true);
$TokenResponse=curl_exec($TokenRequest);
list($Headers, $Response)=explode("\r\n\r\n", $TokenResponse, 2);
$Headers=explode("\n", $Headers);
foreach($Headers as $Header)
{
if (stripos($Header, "Location")!==false)
{
$Token=trim(str_replace("Location: ", "", $Header));
}
}
print_r($Token);

$HOSTEDFIELDTOKENID = str_replace("https://sandbox.bluesnap.com/services/2/payment-fields-tokens/", "", $Token);
echo '<br><br><br><br>';
print_r($HOSTEDFIELDTOKENID);
于 2022-03-05T20:19:22.417 回答