NETELLER TransferIn:身份验证凭据无效

时间:2015-09-23 12:56:44

标签: php api rest curl payment

我在整合Neteller API以将资金从用户帐户转移到我们的商家帐户时遇到问题。我已成功收到accessToken(使用auth_code授权类型),但是当我尝试使用transferIn时,我收到错误身份验证凭据无效。 < / p>

这是我的代码:

//getting the accessToken from NETELLER's response
$accessToken = $_POST['accessToken'];

$service_url = "https://test.api.neteller.com/v1/transferIn";
$curl = curl_init($service_url);

$curl_post_data = array(
    "paymentMethod" => array(
        "type" => "neteller",
        "value" => "netellertest_USD@neteller.com"
    ),
    "transaction" => array(
        "merchantRefId" => (string)date('YmdHis'),
        "amount" => 25,
        "currency" => "USD"
    ),
    "verificationCode" => "234124"
);

$jsonDataEncoded = json_encode($curl_post_data);
curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonDataEncoded);

$headers = array(
     "Content-type: application/json",
     "Authorization: Bearer " . $accessToken
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);

$curl_response = curl_exec($curl);

curl_close($curl);

但是,我收到此错误:

{ "error":{ "code": "5279", "message": "Authentication credentials are invalid" } }

我在transferIn curl postfields中遗漏了什么吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您不应该使用auth_code授权类型,正确的是client_credentials。最新REST API指南的第41页对此进行了详细说明,您可以从商家帐户下载&gt;&gt; “开发人员”标签&gt;&gt; “文档”页面。

只是为了澄清 - auth_code流程获得用户授权(例如,订阅付款,其他帐户资料信息等)。虽然它也适用于付款,但它会为流量增加2个步骤,并且可以成为转换杀手。

此外,我在您的代码中发现了一些问题,您也应该解决这些问题:

  1. 您尝试存入的金额太小 - 您需要在将交易金额发送到API之前将其转换为最小的货币单位。例如 - 您想申请5美元的存款,美元的最小货币单位是美分,即1美元的1/100,因此您需要向API发送$ 5 * 100 = 500。需要注意的是,HUF,KRW和JPY货币没有子单元,因此需要按原样将数量发送到API(无需转换)。

  2. 美元测试帐户的verificationCode270955。有关此信息,请参见REST API指南的第153页。

  3. 如果您遇到任何问题,请尝试实施client_credentials授权类型流程并在此处发布,我会尽力为您提供帮助。或者,您可以在Skype上添加我(它在我的个人资料信息中)。