嗨,
我已经在PayPal设置了一个企业帐户,似乎我已经拥有了我的测试 API 凭据,因为我可以从我的沙盒帐户中成功检索它们。
现在我正在尝试进行"第一次调用"以获取授权令牌。
这是我的PHP代码:
$ch = curl_init();
$clientId = "myid"; //not the actual one
$secret = "mypass"; //not the actual one
curl_setopt($ch, CURLOPT_URL, "https://api.sandbox.paypal.com/v1/oauth2/token");
curl_setopt($ch, CURLOPT_HEADER, "Accept: application/json");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, $clientId.":".$secret);
curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials");
$result = curl_exec($ch);
$json = json_decode($result);
print_r($json);
curl_close($ch);
以下是回应:
stdClass Object ( [error] => invalid_client [error_description] => Invalid client credentials )
有人知道吗?
谢谢
编辑:此登录正在工作(我在其他地方找到它):
clientId: ASF6RRBP0uTq7FnC90tpFx7vfA-Pliw8uQDjv5RZ10Y_NVspuc88pUPLN6yM
Secret: EAdx7BDKzWczDomYG2QDHu8jhaAXj4xDZLHadvL5aRfesjwo5c81zbSpRxuE
奇怪的是,格式看起来与我的非常不同。
我被困在这里,没有令牌就不能再走下去了。
您可以将其作为标头传递,如下所示:
"Authorization" => "Basic " . base64_encode($clientId . ":" . $clientSecret)
这应该与上述相同。
你可以像这样写在curl_setopt上:
curl_setopt($ch, CURLOPT_HEADER, "Authorization: Basic " . base64_encode($clientId . ":" . $clientSecret));
另外,出于好奇,你可能想尝试一下PayPal-PHP-SDK。他们有所有这些花里胡哨的东西,这将使您远离手动获取此代码。它包含文档和示例,可帮助您快速开始使用任何 API。
最后我设法让它工作
正确的凭据是 60 位的哈希,而不是最初看到的 16 位
我必须创建一个应用程序来获取它们
没有人告诉我,在PayPal,甚至没有"商家技术支持"
希望这对将来的某人有所帮助
感谢您的回答