2014-11-07 3 views
2

Я использую API обслуживания Neteller. Я изо всех сил пытался получить правильный ответ на ключ аутентификации, я надеялся, что кто-то может указать мне в правильном направлении.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 и секрет, и они являются правильными

Благодаря Каллум

+0

Ваш IP-адрес, вероятно, заблокирован. См. Мой ответ здесь: http://stackoverflow.com/a/28449235/2440 – Sire

ответ

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

CURLOPT_POSTFIELDS Ваш недействительна, как http_build_query() ожидает массив в качестве входных данных, но вы предоставляете строку.

Попробуйте изменить эту строку:

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

Привет, спасибо за вашу помощь! Я изменил строку соответственно и все равно получаю ту же ошибку. – Callum

1

Я просто взять пример, и это работает для меня:

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

Отклик:

{ "маркер доступа": " B.AQBBBAAAUnzfOwkAAAAAAAEk-BRM0QBTOoehaumwlvdwjqX.EAAQ0NOOTDeY2aMHUCwH4YCugGUX4ro "," tokenType ":" Bearer "," expiresIn ": 300}

С уважением.

0

При использовании потока client_credentials область действия не актуальна. Он применяется только к потоку authorization_grant, для любой помеченной области по умолчанию не требуется авторизация члена. Параметры ресурсов с параметром «default» будут возвращены с использованием базовых client_credentials, без необходимости запрашивать у пользователя разрешения.

Смежные вопросы