neteller的Rest API显示无效的客户端错误

时间:2015-04-16 05:28:16

标签: php rest

$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;

我正在使用此代码,但每次都显示此{ "error": "invalid_client" }此消息。我检查了我的API和IP地址,一切都很完美。

1 个答案:

答案 0 :(得分:3)

在尝试获取令牌时,有4个理由可以获得{ "error": "invalid_client" }

  1. 您在生产环境中使用测试帐户中的client_id + client_secret,反之亦然。
  2. 您的client_id或client_secret值错误。
  3. 您的应用程序发出传出请求的IP地址未在商家帐户中列入白名单。
  4. 您没有正确发送授权标头。
  5. 检查要点1) - 3);从你的例子中我可以看出你可以排除第4点的可能原因。

    此外,您不需要这一行:

    curl_setopt($curl, CURLOPT_POSTFIELDS, array("scope"=>"default"));
    

    根据文档,您在获取令牌时不应在请求正文中发布任何内容。你从哪里得到这个例子?