2011-10-15 17 views
8

Hola a todos Estoy de vuelta otra vez, en mi última publicación estaba intentando usar la API SOAP (Integrating Dwolla with PHP with their API) pero descubrí que la API SOAP está obsoleta y aparentemente Dwolla tiene una manera más eficiente como REST/oAuth2.0 que Es por eso que hoy estoy aquí preguntando cómo usar el API de reposo, ya que han pasado casi 2 semanas y realmente me gustaría aprender esto.¿Enviar dinero con la API de Dwolla y usar PHP para hacerlo?

En primer lugar diré que he podido obtener un access_token con éxito. No tengo ningún problema para hacerlo. El problema es que cuando trato de usar un punto final de envío (https://www.dwolla.com/developers/endpoints/accountapi/send) básicamente intento enviar dinero a la cuenta. Mi problema exacto es que nunca puedo obtener una respuesta exitosa; solo respuestas de mensajes falsos o de error.

Por lo tanto, en la página de índice tengo el enlace "Agregar fondos a su cuenta". Los usuarios harán clic en ese enlace y los llevará a la Página de Dwolla que los aceptará para iniciar sesión en su cuenta de Dwolla y luego aceptar los permisos que el sitio web está solicitando. Después de que el usuario presiona "Aceptar", se redireccionará a la URL seleccionada que yo elija y devolverá un access_token para usar con fines de autorización. Aquí está mi código (Esta es la página que Dwolla redirige también y envía el señal_acceso demasiado)

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

?> 

recibo mensajes como este por ejemplo

array (1) {[ "señal_acceso"] = > cadena (50) "redacted"} Advertencia: file_get_contents (https://www.dwolla.com/oauth/rest/accountapi/send): no se pudo abrir la secuencia: ¡Falló la solicitud de HTTP! HTTP/1.1 503 No disponible en /home/swiftbitcoins/purchase_order.php en la línea 47 NULL

+0

Gracias Me olvidé de eso: D – Xenland

+1

todo es bueno que he renovado mi credenciales y los viejos ya no son válidas – Xenland

+1

basado en su registro, creo que se debe preguntar Dwolla. Dijo 503 Servicio no disponible. Esto da una pista de que hay un problema con el servidor. – ariefbayu

Respuesta

0

lo que está tratando de hacer es una petición de obtención de documentación mientras que Dwolla refiere a esto como solicitud posterior.

mejor que puedes hacer es utilizar su biblioteca php con métodos integrados para realizar llamadas. esta es una biblioteca estándar para realizar llamadas relajantes y mucho mejor que escribir de la manera que usted ha escrito en el fragmento de código anterior.

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

Cuestiones relacionadas