Привет всем, я снова вернулся. В своем последнем сообщении я пытался использовать SOAP API (Интеграция Dwolla с PHP с их API), но я обнаружил, что API SOAP устарел, и, по-видимому, у Dwolla есть более эффективный способ, такой как REST/oAuth2.0, поэтому я здесь сегодня и спрашиваю, как используйте остальные API, так как прошло почти 2 недели, и я бы очень хотел это изучить.
Прежде всего, я скажу, что мне удалось получить access_token. У меня нет проблем с этим. Проблема в том, что когда я пытаюсь использовать конечную точку отправки (https://www.dwolla.com/developers/endpoints/accountapi/send) в основном пытается отправить деньги на счет. Моя точная проблема в том, что я никогда не могу получить успешный ответ; только ложные ответы или сообщения об ошибках.
Итак, на главной странице у меня есть ссылка «Добавить средства на свой счет». Пользователи нажмут на эту ссылку, и она перенаправит их на страницу Dwolla, которая позволит им войти в свою учетную запись Dwolla, а затем принять разрешения, которые запрашивает веб-сайт. После того, как пользователь нажмет «Принять», он будет перенаправлен на выбранный мной URL-адрес и отправит обратно access_token для использования в целях авторизации. Вот мой код (это страница, которую Dwolla также перенаправляет и также отправляет access_token)
<?php
//Define variables
$key = 'redacted';
$secret = 'redacted';
$dwolla_client_id = urlencode($key);
$dwolla_secret_key = urlencode($secret);
$code = urlencode($_GET["code"]);
//get token
$retireve_token = file_get_contents("https://www.dwolla.com/oauth/v2/token?client_id=".$dwolla_client_id."&client_secret=".$dwolla_secret_key."&grant_type=authorization_code&redirect_uri=http://localhost/purchase_order.php&code=".$code);
$decoded_json = json_decode($retireve_token, true);
var_dump($decoded_json);
if($decoded_json["access_token"]){
$arr = '{
"oauth_token": "'.$decoded_json["access_token"].'",
"fundsSource": "balance",
"pin": "1111",
"notes": "Payment for services rendered",
"amount": 1.01,
"destinationId": "812-111-1111",
"assumeCosts": false,
"facilitatorAmount": 0,
"destinationType": "dwolla"
}';
$opts = array('http'=>array('method'=>"POST",'content'=> $arr, 'header' => 'Content-Type: application/json'));
$ctx = stream_context_create($opts);
$send_request = file_get_contents('https://www.dwolla.com/oauth/rest/accountapi/send', false, $ctx);
var_dump(json_decode($send_request));
}
?>
Я получаю сообщения, например, как это
array(1) { ["access_token"]=> string(50) "отредактировано" } Предупреждение: file_get_contents(https://www.dwolla.com/oauth/rest/accountapi/send): не удалось открыть поток: HTTP-запрос не выполнен! HTTP/1.1 503 Сервис недоступен в /home/swiftbitcoins/purchase_order.php в строке 47 NULL