【问题标题】:Neteller Rest ApiNeteller 休息 API
【发布时间】:2014-11-07 22:05:18
【问题描述】:

我一直在使用 Neteller 的 rest API。我一直在努力获得对身份验证密钥的正确响应,我希望有人能指出我正确的方向。

$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 和 secret,它们是正确的

谢谢 卡勒姆

【问题讨论】:

标签: php rest payment-gateway


【解决方案1】:

你不发送参数,而是字符串“clientId:clientSecret”:

也许你的意思是:

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");

【讨论】:

    【解决方案2】:

    我只是举你的例子,它对我有用:

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

    问候。

    【讨论】:

      【解决方案3】:

      您的 CURLOPT_POSTFIELDS 无效,因为 http_build_query() 需要一个数组作为输入,但您提供的是一个字符串。

      尝试将该行更改为:

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

      【讨论】:

      • 您好,感谢您的帮助!我已相应地更改了行,但仍然出现相同的错误。
      【解决方案4】:

      使用 client_credentials 流程时,范围不相关。它仅适用于 authorization_grant 流程,任何标记为“默认”范围的内容都不需要成员授权。将使用基本的 client_credentials 返回具有“默认”的资源字段,无需请求成员的许可。

      【讨论】:

        猜你喜欢
        • 2015-03-10
        • 2014-11-09
        • 2014-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多