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
Gracias Me olvidé de eso: D – Xenland
todo es bueno que he renovado mi credenciales y los viejos ya no son válidas – Xenland
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