Download MANUAL DE INTEGRACIÓN PAGOS EN EFECTIVO

Document related concepts
no text concepts found
Transcript
 MANUAL DE INTEGRACIÓN PAGOS EN EFECTIVO Nuestra API proporciona 3 métodos para implementar el proceso de pagos en efectivo en tu sitio web. Éstos se mencionan a continuación: Métodos 1. Realizar una orden/cargo Entorno: Stage/Prueba -­‐ https://www.pagofacil.net/st/public/cash/charge Producción -­‐ https://www.pagofacil.net/ws/public/cash/charge Verbo HTTP: POST Campos de la petición: Campo Tipo branch_key String(100) Descripción Api key sucursal. NOTA: éste dato se envió en el momento del registro o en el Manager https://manager.pagofacil.net/ user_key String(100) Api key usuario. NOTA: éste dato se envió en el momento del registro o en el Manager https://manager.pagofacil.net/ order_id String(45) Tú identificador para la orden de compra. NOTA: debe ser único e irrepetible para cada orden product String(100) Descripción del producto o nombre del producto amount Double(8,2) Monto (MXP) a pagar. NOTA: Revisar montos máximos . Ver anexo 1 store_code String(30) Código de la tienda de conveniencia. NOTA: Ver anexo 1 customer String(100) Nombre del comprador email String(100) E-­‐mail del comprador 2. Consultar una orden/cargo Entorno: Stage/Prueba -­‐ https://www.pagofacil.net/st/public/cash/charge Producción -­‐ https://www.pagofacil.net/ws/public/cash/charge Verbo HTTP: GET Campos de la petición: Campo Tipo Descripción branch_key String(100) Api key sucursal. NOTA: éste dato se envió en el momento del registro o en el Manager https://manager.pagofacil.net/ user_key String(100) Api key usuario. NOTA: éste dato se envió en el momento del registro o en el Manager https://manager.pagofacil.net/ reference String(45) Identificador enviado por PagoFácil al realizar una orden/cargo 3. Reporte de órdenes /cargos Entorno: Stage/Prueba -­‐ https://www.pagofacil.net/st/public/cash/charges Produccion -­‐ https://www.pagofacil.net/ws/public/cash/charges Verbo HTTP: GET/POST Campos de la petición : Campo Tipo Descripción branch_key String(100) Api key sucursal. NOTA: éste dato se envió en el momento del registro o en el Manager https://manager.pagofacil.net/ user_key String(100) Api key usuario. NOTA: éste dato se envió en el momento del registro o en el Manager https://manager.pagofacil.net/ secret_key String(64) Clave privada. NOTA: debe solicitarla a [email protected] date_start String(19) Fecha inicial del reporte, formato AAAA-­‐MM-­‐DD HH:MM:SS date_end String(19) Fecha inicial del reporte, formato AAAA-­‐MM-­‐DD HH:MM:SS ANEXO 1 Tiendas de conveniencia: Establecimiento OXXO Seven eleven Extra Chedraui Farmacias Benavides Farmacias Esquivar Código Monto máximo OXXO 15,000.00 MXN SEVEN_ELEVEN 15,000.00 MXN EXTRA 5,000.00 MXN CHEDRAUI 5,000.00 MXN FARMACIA_BENAVIDES 5,000.00 MXN FARMACIA_ESQUIVAR 5,000.00 MXN Ejemplos en código Nota: todos los ejemplos apuntan al ambiente de pruebas/stage. Realizar un cargo/orden: Response JSON { } "error" : "0", "message" : "", "charge" : { "reference" : "PFCPE3S3I32", "amount" : "6500.99", "convenience_store" : "OXXO", "bank_account_number" : "0000 0000 0000 0000", "bank" : "BANCO DE PRUEBAS", "created_at" : "2015-­‐07-­‐22 11:03:29", "expiration_date" : "2015-­‐07-­‐23 11:03:30", "status" : "0" } PHP 5.4 + CURL $host = ‘https://www.pagofacil.net/st/public/cash/charge’; $params = array( ‘branch_key’ => ‘ba3b2748672431ebeebeed1327c14959a94a74be’, ‘user_key’ => ‘ce4287a4093e4fca1928f2cde9bf041ee7de8292’, ‘order_id’ => ‘tienda_pedro_001’, ‘product’ => ‘camara fotografica de 15 mega pixeles’, ‘amount’ => ‘6500.99’, ‘store_code’ => ‘OXXO’, ‘customer’ => ‘pedro perez’, ‘email’ => ‘[email protected]’, ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $host); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params)); $result = curl_exec($ch); curl_close($ch); $data = json_decode($result, true); RUBY 1.7 require "net/http" require "uri" uri = URI.parse("https://www.pagofacil.net/st/public/cash/charge") http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Post.new(uri.request_uri) request.set_form_data({ "branch_key" => "ba3b2748672431ebeebeed1327c14959a94a74be", "user_key" => "ce4287a4093e4fca1928f2cde9bf041ee7de8292", "order_id" => "tienda_pedro_001", "product" => "camara fotografica de 15 mega pixeles", "amount" => "6500.99", "store_code" => "OXXO", "customer" => "pedro perez", "email" => "[email protected]" }) response = http.request(request) puts response.body JAVA 1.7 package cash_payment_client; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.URL; import javax.net.ssl.HttpsURLConnection; public class Cash_payment_client { public static void main(String[] args) { try { String url = "https://www.pagofacil.net/st/public/cash/charge"; URL endpoint = new URL(url); HttpsURLConnection client = (HttpsURLConnection)endpoint.openConnection(); client.setRequestMethod("POST"); String params = "branch_key=ba3b2748672431ebeebeed1327c14959a94a74be" + "&user_key=ce4287a4093e4fca1928f2cde9bf041ee7de8292" + "&order_id=tienda_pedro_001" + "&product=camara fotografica de 15 mega pixeles" + "&amount=6500.99" + "&store_code=OXXO" + "&customer=pedro perez" + "&[email protected]"; client.setDoOutput(true); DataOutputStream writer = new DataOutputStream(client.getOutputStream()); writer.writeBytes(params); writer.flush(); writer.close(); BufferedReader in = new BufferedReader( new InputStreamReader(client.getInputStream()) ); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); } catch (Exception exception) { System.out.println("EXCEPTION: " + exception.getMessage()); } } } C# (.NET Framework 4) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { WebRequest request = WebRequest.Create( “https://www.pagofacil.net/st/public/cash/charge” ); string param = "branch_key=ba3b2748672431ebeebeed1327c14959a94a74be" + "&user_key=ce4287a4093e4fca1928f2cde9bf041ee7de8292" + "&order_id=tienda_pedro_001" + "&product=camara fotografica de 15 mega pixeles" + "&amount=6500.99" + "&store_code=OXXO" + "&customer=pedro perez" + "&[email protected]"; request.Method = "POST"; request.ContentType = "application/x-­‐www-­‐form-­‐urlencoded"; request.ContentLength = param.Length; byte[] paramsList = Encoding.UTF8.GetBytes(param); Stream writer = request.GetRequestStream(); writer.Write(paramsList, 0, paramsList.Length); writer.Close(); WebResponse response = request.GetResponse(); string result = (new StreamReader(response.GetResponseStream())).ReadToEnd(); Console.WriteLine(result); response.Close(); } } } JQUERY $.ajax({ url : 'https://www.pagofacil.net/st/public/cash/charge', type : 'POST', crossDomain: true, dataType : 'json', data : { branch_key : 'ba3b2748672431ebeebeed1327c14959a94a74be', user_key : 'ce4287a4093e4fca1928f2cde9bf041ee7de8292' , order_id : 'tienda_pedro_001', product : 'camara fotografica de 15 mega pixeles', amount : '6500.99', store_code : 'OXXO', customer : 'pedro perez', email : '[email protected]' }, beforeSend : function (request, settings) { alert('enviando...'); }, complete : function (response, status) { alert('completado'); }, error : function (request, status, error) { alert('ERROR: ' + status + ' -­‐ ' + error); }, success : function(data) { alert(JSON.stringify(data)); } });