您好,
我在Paypal设置了一个商业帐户,似乎我已经拥有了我的Test 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
秘密:EAdx7BDKzWczDomYG2QDHu8jhaAXj4xDZLHadvL5aRfesjwo5c81zbSpRxuE
奇怪的是,格式与我的格式非常不同。
我被困在这里,没有代币就不能再进一步了。
答案 0 :(得分:0)
您可以将其作为类似如下的标题传递:
"Authorization" => "Basic " . base64_encode($clientId . ":" . $clientSecret)
这应该与上面相同。
你可以像这样在curl_setopt上写它:
curl_setopt($ch, CURLOPT_HEADER, "Authorization: Basic " . base64_encode($clientId . ":" . $clientSecret));
另外,出于好奇,你可能想试试PayPal-PHP-SDK。他们拥有所有这些花里胡哨的东西,这将使您远离手动获取此代码。它有documentations和samples,可以帮助您快速开始使用任何API。
答案 1 :(得分:0)
最后我设法让它发挥作用
正确的凭据是60位的哈希值,而不是第一次看到的16位哈希值
我必须创建一个应用程序来获取它们
没有人告诉我,在PayPal,甚至没有"商家技术支持"
希望这可以帮助将来的某个人
感谢您的回答