Отправка денег с помощью API Dwolla и использование PHP для этого?

Привет всем, я снова вернулся. В своем последнем сообщении я пытался использовать 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


person Xenland    schedule 15.10.2011    source источник
comment
Спасибо, я забыл об этом :D   -  person Xenland    schedule 15.10.2011
comment
Все хорошо, я обновил свои учетные данные, а старые больше не действительны.   -  person Xenland    schedule 15.10.2011
comment
судя по твоему логу, тебе стоит спросить dwolla. Пишет 503 Служба недоступна. Это дает понять, что есть проблема с сервером.   -  person ariefbayu    schedule 15.10.2011
comment
В документации Dwollas API сказано, что любые ошибки приведут к отключению. Я смог успешно выполнить запрос GET с помощью того же метода, только когда мне нужно отправить данные на сервер, он не работает, что является запросом POST.   -  person Xenland    schedule 16.10.2011
comment
Что ж, это один из постов, которые я писал с Дволлой getsatisfaction.com/dwolla/topics/   -  person Xenland    schedule 18.10.2011
comment
Я бы не рекомендовал использовать file_get_contents в таком API. Лично я бы использовал Curl, который даст вам немного больше контроля.   -  person Catharsis    schedule 17.06.2015


Ответы (1)


то, что вы пытаетесь сделать, - это запрос на получение, тогда как в документации Dwolla это называется почтовым запросом.

лучше, что вы можете сделать, это использовать их php-библиотеку со встроенными методами для совершения вызовов. это стандартная библиотека для выполнения спокойных вызовов, и она намного лучше, чем писать так, как вы написали в приведенном выше фрагменте кода.

https://github.com/Dwolla/dwolla-php

person akmsharma    schedule 03.08.2015