我一直在使用Neteller的rest。我一直在努力为认证密钥获得正确的响应,我希望有人能为我指明正确的方向。
$curl = curl_init();
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_URL, "https://api.neteller.com/v1/oauth2/token?grant_type=client_credentials");
curl_setopt($curl, CURLOPT_USERPWD, "clientId:clientSecret");
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type:application/json", "Cache-Control:no-cache"));
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query("scope: default"));
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$serverOutput = curl_exec($curl);
echo $serverOutput;我得到的回应是"invalid_client“。我检查了clientId和秘密,它们是正确的
谢谢卡勒姆
发布于 2015-11-09 08:49:13
您不发送参数,而是字符串“clientId:client秘密”:
也许你的意思是:
curl_setopt($curl, CURLOPT_USERPWD, "$clientId:$clientSecret");此外,您可能调用错误的url,例如,对于必须调用的测试环境:
curl_setopt($curl, CURLOPT_URL, "https://test.api.neteller.com/v1/oauth2/token?grant_type=client_credentials");发布于 2014-11-27 23:07:44
我只是以你为例,这对我来说是可行的:
$username = 'MerchantXYZ';
$password = 'B81dff9bb4020a89e8ac44cdfdcecd702151182fdc952272661d290ab2e5849e31bb03deede';
$curl = curl_init();
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_URL, "https://api.neteller.com/v1/oauth2/token?grant_type=client_credentials");
curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type:application/json", "Cache-Control:no-cache"));
curl_setopt($curl, CURLOPT_POSTFIELDS, array("scope"=>"default"));
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$serverOutput = curl_exec($curl);
echo $serverOutput;答复:
{ "accessToken":"B.AQBBBAAAUnzfOwkAAAAAAAEk-BRM0QBTOoehaumwlvdwjqX.EAAQ0NOOTDeY2aMHUCwH4YCugGUX4ro","tokenType":"Bearer","expiresIn":300 }
致以问候。
发布于 2014-11-07 22:12:08
您的CURLOPT_POSTFIELDS是无效的,因为http_build_query()需要一个数组作为输入,但是您正在提供一个字符串。
尝试将该行更改为:
curl_setopt($curl, CURLOPT_POSTFIELDS, array("scope"=>"default"));https://stackoverflow.com/questions/26810848
复制相似问题