2011-10-15 11 views
8

Ciao a tutti sono tornato, nel mio ultimo post stavo tentando di usare l'API SOAP (Integrating Dwolla with PHP with their API) ma ho scoperto che l'API SOAP è deprecata e apparentemente Dwolla ha un modo più efficiente come REST/oAuth2.0 che è per questo che sono qui oggi a chiedere come utilizzare l'API resto come è stato quasi 2 settimane e mi piacerebbe davvero imparare questo.Invio di denaro con l'API di Dwolla e utilizzo di PHP per farlo?

Prima di tutto, dirò che sono riuscito a ottenere un access_token senza problemi. Il problema è che quando provo a utilizzare un Endpoint di invio (https://www.dwolla.com/developers/endpoints/accountapi/send), in pratica, provo a inviare denaro e account. Il mio problema è che non riesco mai a ottenere una risposta positiva; solo risposte false o messaggi di errore.

Quindi nella pagina dell'indice ho il link "Aggiungi fondi al tuo account". Gli utenti faranno clic su quel link e li porteranno alla pagina Dwolla che li accetterà per accedere al proprio account Dwolla e quindi accettare le autorizzazioni richieste dal sito. Dopo che l'utente ha premuto "Accetta", reindirizzerà all'URL selezionato che ho scelto e invierà un access_token da utilizzare a fini di autorizzazione. Ecco il mio codice (Questa è la pagina che Dwolla reindirizza troppo e invia l'access_token troppo)

<?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)); 
     } 

?> 

ricevo messaggi come questo per esempio

array (1) {[ "access_token"] = > string (50) "redacted"} Avviso: file_get_contents (https://www.dwolla.com/oauth/rest/accountapi/send): Impossibile aprire lo stream: richiesta HTTP non riuscita! HTTP/1.1 503 Servizio non disponibile in /home/swiftbitcoins/purchase_order.php on line 47 NULL

+0

Grazie ho dimenticato che: D – Xenland

+1

è tutto buono che ho rinnovato le mie credenziali e quelli vecchi non sono più validi – Xenland

+1

sulla base di registro, penso che si dovrebbe chiedere Dwolla. Diceva 503 Servizio non disponibile. Questo dà l'idea che c'è un problema con il server. – ariefbayu

risposta

0

ciò che si sta tentando di fare è una richiesta GET che la documentazione Dwolla si riferisce a questo come richiesta posta.

meglio si può fare è l'utente la loro libreria php con metodi incorporati per effettuare chiamate. questa è una libreria standard per effettuare chiamate rilassanti e molto meglio che scrivere il modo in cui hai scritto nello snippet di codice sopra.

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