Привет всем, я снова вернулся. В своем последнем посте я пытался использовать API-интерфейс SOAP ( Интеграция Dwolla с PHP с их API ), но я обнаружил, что API-интерфейс SOAP устарел и, по-видимому, Dwollaесть более эффективный способ, такой как REST / oAuth2.0, поэтому я здесь сегодня спрашиваю, как использовать оставшийся API, поскольку он был почти 2 недели, и я действительно хотел бы изучить это.
Сначалаoff я скажу, что я успешно смог получить 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) "redacted"} Warning: file_get_contents (https://www.dwolla.com/oauth/rest/accountapi/send): не удалось открыть поток: HTTP-запрос не выполнен! HTTP / 1.1 503 Сервис недоступен в / home / swiftbitcoins / purchase_order.php on line 47 NULL