Ejemplo de cómo crear una deuda de Gs. 50.000 por “Aporte camiseta del equipo” que expira en 2 días utilizando el API para obtener su url de pago.
Harías esta llamada cuando tu cliente solicita pagar, para inciar el ciclo de cobro.
Llamadas al API | Ciclo de cobro
<?php $idDeuda = 'demo001'; $siExiste= 'update'; $apiUrl = 'https://staging.adamspay.com/api/v1/debts'; $apiKey = 'tu-api-key'; // Hora DEBE ser en UTC! $ahora = new DateTimeImmutable('now',new DateTimeZone('UTC')); $expira = $ahora->add(new DateInterval('P2D')); // Crear modelo de la deuda $deuda = [ 'docId'=>$idDeuda, 'label'=>'Aporte camiseta del equipo', 'amount'=>['currency'=>'PYG','value'=>'50000'], 'validPeriod'=>[ 'start'=>$ahora->format(DateTime::ATOM), 'end'=>$expira->format(DateTime::ATOM) ] ]; // Crear JSON para el post $post = json_encode( ['debt'=>$deuda] ); // Hacer el POST $curl = curl_init(); curl_setopt_array($curl,[ CURLOPT_URL => $apiUrl, CURLOPT_HTTPHEADER => ['apikey: '.$apiKey,'Content-Type: application/json','x-if-exists'=>$siExiste], CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST=>'POST', CURLOPT_POSTFIELDS=>$post ]); $response = curl_exec($curl); if( $response ){ $data = json_decode($response,true); // Deuda es retornada en la propiedad "debt" $payUrl = isset($data['debt']) ? $data['debt']['payUrl'] : null; if( $payUrl ) { echo "Deuda creada exitosamente\n"; echo "URL=$payUrl\n"; } else { echo "No se pudo crear la deuda\n"; print_r($data['meta']); } } else { echo 'curl_error: ',curl_error($curl); } curl_close($curl);
import http.client import json import datetime import pprint idDeuda = "demo001" siExiste = "update" apiKey = "tu-api-key" host = "staging.adamspay.com" path = "/api/v1/debts" # Hora DEBE ser en UTC! inicio_validez= datetime.datetime.utcnow().replace() fin_validez = inicio_validez + datetime.timedelta(days=2) # Crear modelo de la deuda deuda = { "docId": idDeuda, "amount": {"currency": "PYG","value": "50000"}, "label":"Aporte camiseta del equipo", "validPeriod":{ "start":inicio_validez.strftime("%Y-%m-%dT%H:%M:%S"), "end":fin_validez.strftime("%Y-%m-%dT%H:%M:%S") } } # El post debe llevar la deuda en la propiedad "debt" post = {"debt":deuda} # Crear JSON payload = json.JSONEncoder().encode(post).encode("utf-8") headers = {"apikey": apiKey, "Content-Type": "application/json", "x-if-exists": siExiste} conn = http.client.HTTPSConnection(host) conn.request("POST", path , payload, headers) data = conn.getresponse().read().decode("utf-8") response = json.JSONDecoder().decode(data) # Datos retornan en la propiedad "debt" pp = pprint.PrettyPrinter(indent=2) if "debt" in response: debt=response["debt"] print("Deuda creada exitosamente") print("URL=" + debt["payUrl"]) else: print("# Error") if "meta" in response: pp.pprint(response["meta"])