Advertisement
Guest User

Authorize.php

a guest
Jan 23rd, 2020
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 15.64 KB | None | 0 0
  1. <?php
  2.  
  3. class authorize {
  4.  
  5.     //VALIDAMOS QUE LA TARJETA SEA REAL Y TENGA DINERO
  6.     //retorna array("estado_tran"=>,"text_tran"=>$texto_resultado_pago,"x_trans_id"=>$x_trans_id);
  7.     function validamosTarjeta($datosPasarela) {
  8.         //SI ES 0 SE USA LA PASARELA DE PRUEBA SI ES 1 SE USA LA PASARELA DE PRODUCTIVO
  9.         if ($datosPasarela[authorize_modo] == 0) {
  10.             $post_url = "https://test.authorize.net/gateway/transact.dll";
  11.         }
  12.         if ($datosPasarela[authorize_modo] == 1) {
  13.             $post_url = "https://secure.authorize.net/gateway/transact.dll";
  14.         }
  15.  
  16.         //TOMAMOS LOS DATOS A ENVIAR A AUTHORIZE
  17.         $post_values = array(
  18.             "x_login" => $datosPasarela[x_login],
  19.             "x_tran_key" => $datosPasarela[x_tran_key],
  20.             //
  21.             "x_version" => "3.1",
  22.             "x_delim_data" => "TRUE",
  23.             "x_delim_char" => "|",
  24.             "x_relay_response" => "FALSE",
  25.             "x_type" => "AUTH_ONLY",
  26.             "x_method" => "CC",
  27.             //
  28.             "x_card_num" => $datosPasarela[x_card_num],
  29.             "x_card_code" => $datosPasarela[x_card_code],
  30.             "x_exp_date" => $datosPasarela[x_exp_date],
  31.             "x_amount" => $datosPasarela[x_amount],
  32.             //
  33.             "x_description" => "Tienda",
  34.             "x_first_name" => $datosPasarela[x_first_name],
  35.             "x_last_name" => $datosPasarela[x_last_name],
  36.             "x_address" => $datosPasarela[x_address],
  37.             "x_state" => $datosPasarela[x_state],
  38.             "x_zip" => $datosPasarela[x_zip]
  39.         );
  40.         //CONVERTIMOS LOS DATOS EN UN ARREGLO
  41.         $post_string = "";
  42.         foreach ($post_values as $key => $value) {
  43.             $post_string .= "$key=" . urlencode($value) . "&";
  44.         }
  45.         $post_string = rtrim($post_string, "& ");
  46.  
  47.         //INICIALIZAMOS EL CURL CON LA RIRECCION DEL GETWAY
  48.         $request = curl_init($post_url);
  49.         //COLOCAMO EN EL CURL LOS PARAMETROS A ENVIAR
  50.         curl_setopt($request, CURLOPT_HEADER, 0); // set to 0 to eliminate header info from response
  51.         curl_setopt($request, CURLOPT_RETURNTRANSFER, 1); // Returns response data instead of TRUE(1)
  52.         curl_setopt($request, CURLOPT_POSTFIELDS, $post_string); // use HTTP POST to send form data
  53.         curl_setopt($request, CURLOPT_SSL_VERIFYPEER, FALSE); // uncomment this line if you get no gateway response.
  54.         //EJECUTAMOS EL CURL Y REGRESAMOS LA RESPUESTA EN $post_response
  55.         $post_response = curl_exec($request); // execute curl post and store results in $post_response
  56.         //CERRAMOS EL CURL
  57.         curl_close($request); // close curl object
  58.         //TOAMOS EL RESULTADO Y LO DIVIDIMOS EN PARTES
  59.         $response_array = explode($post_values[x_delim_char], $post_response);
  60.         //SI LA TARJETA FUE ACEPTA EL RESULTADO = 1 , 2 = Declined ,3 = Error ,4 = Retenida para revicios
  61.         $estado_tran = $response_array[0];
  62.         //TEXTO QUE DA EL RESULTADO EJEMPLO=This transaction has been approved.
  63.         $texto_resultado_pago = $response_array[3];
  64.         //EL CODIGO DE TRANSACCION
  65.         $x_trans_id = $response_array[6];
  66.         $respuestaValidar = array(
  67.             "estado_tran" => $estado_tran, //1=Aceptada,2=Rechazada,3=Error,4 = Retenida para revicios
  68.             "text_tran" => $texto_resultado_pago, //Id de esta tranzaccion a pasar a PRIOR_AUTH_CAPTURE
  69.             "x_trans_id" => $x_trans_id
  70.         );
  71.         return $respuestaValidar;
  72.     }
  73.  
  74.     //UNA VEZ HECHA LA VALIDACION DE LA TARJETA SE SACA EL DINERO DE ELLA
  75.     function obtenerDineroTarjeta($datosObtenerDinero) {
  76.         //SI ES 0 SE USA LA PASARELA DE PRUEBA SI ES 1 SE USA LA PASARELA DE PRODUCTIVO
  77.         if ($datosObtenerDinero[authorize_modo] == 0) {
  78.             $post_url = "https://test.authorize.net/gateway/transact.dll";
  79.         }
  80.         if ($datosObtenerDinero[authorize_modo] == 1) {
  81.             $post_url = "https://secure.authorize.net/gateway/transact.dll";
  82.         }
  83.         //DATOS A ENVIAR
  84.         $post_values = array(
  85.             "x_login" => $datosObtenerDinero[x_login],
  86.             "x_tran_key" => $datosObtenerDinero[x_tran_key],
  87.             //
  88.             "x_version" => "3.1",
  89.             "x_delim_data" => "TRUE",
  90.             "x_delim_char" => "|",
  91.             "x_relay_response" => "FALSE",
  92.             "x_type" => "PRIOR_AUTH_CAPTURE",
  93.             "x_trans_id" => $datosObtenerDinero[x_trans_id]
  94.         );
  95.         //CONVERTIMOS LOS DATOS EN UN ARREGLO
  96.         $post_string = "";
  97.         foreach ($post_values as $key => $value) {
  98.             $post_string .= "$key=" . urlencode($value) . "&";
  99.         }
  100.         $post_string = rtrim($post_string, "& ");
  101.         //INICIALIZAMOS EL CURL CON LA RIRECCION DEL GETWAY
  102.         $request = curl_init($post_url);
  103.         //COLOCAMO EN EL CURL LOS PARAMETROS A ENVIAR
  104.         curl_setopt($request, CURLOPT_HEADER, 0); // set to 0 to eliminate header info from response
  105.         curl_setopt($request, CURLOPT_RETURNTRANSFER, 1); // Returns response data instead of TRUE(1)
  106.         curl_setopt($request, CURLOPT_POSTFIELDS, $post_string); // use HTTP POST to send form data
  107.         curl_setopt($request, CURLOPT_SSL_VERIFYPEER, FALSE); // uncomment this line if you get no gateway response.
  108.         //EJECUTAMOS EL CURL Y REGRESAMOS LA RESPUESTA EN $post_response
  109.         $post_response = curl_exec($request); // execute curl post and store results in $post_response
  110.         //CERRAMOS EL CURL
  111.         curl_close($request); // close curl object
  112.         //TOAMOS EL RESULTADO Y LO DIVIDIMOS EN PARTES
  113.         $response_array = explode($post_values[x_delim_char], $post_response);
  114.         //SI LA TARJETA FUE ACEPTA EL RESULTADO = 1 , 2 = Declined ,3 = Error ,4 = Held for review
  115.         $estado_tran = $response_array[0];
  116.         //TEXTO QUE DA EL RESULTADO EJEMPLO=This transaction has been approved.
  117.         $texto_resultado_pago = $response_array[3];
  118.         //EL CODIGO DE TRANSACCION
  119.         $x_trans_id = $response_array[6];
  120.         $respuestaObtener = array(
  121.             "estado_tran" => $estado_tran, //1=Aceptada,2=Rechazada,3=Error,4 = Retenida para revicios
  122.             "text_tran" => $texto_resultado_pago, //Id de esta tranzaccion a pasar a PRIOR_AUTH_CAPTURE
  123.             "x_trans_id" => $x_trans_id
  124.         );
  125.         return $respuestaObtener;
  126.     }
  127.  
  128.     //SI HUBO UN ERROR EN LA OPERACION DE LA VENTA SE DEBE REGRESAR EL DINERO A LA TARJETA
  129.     function regresarDineroTarjeta($datosRegresarDinero) {
  130.         //SI ES 0 SE USA LA PASARELA DE PRUEBA SI ES 1 SE USA LA PASARELA DE PRODUCTIVO
  131.         if ($datosRegresarDinero[authorize_modo] == 0) {
  132.             $post_url = "https://test.authorize.net/gateway/transact.dll";
  133.         }
  134.         if ($datosRegresarDinero[authorize_modo] == 1) {
  135.             $post_url = "https://secure.authorize.net/gateway/transact.dll";
  136.         }
  137.         //DATOS A ENVIAR
  138.         $post_values = array(
  139.             "x_login" => $datosRegresarDinero[x_login],
  140.             "x_tran_key" => $datosRegresarDinero[x_tran_key],
  141.             //
  142.             "x_version" => "3.1",
  143.             "x_delim_data" => "TRUE",
  144.             "x_delim_char" => "|",
  145.             "x_relay_response" => "FALSE",
  146.             "x_type" => "void",
  147.             "x_trans_id" => $datosRegresarDinero[x_trans_id]
  148.         );
  149.         //CONVERTIMOS LOS DATOS EN UN ARREGLO
  150.         $post_string = "";
  151.         foreach ($post_values as $key => $value) {
  152.             $post_string .= "$key=" . urlencode($value) . "&";
  153.         }
  154.         $post_string = rtrim($post_string, "& ");
  155.         //INICIALIZAMOS EL CURL CON LA RIRECCION DEL GETWAY
  156.         $request = curl_init($post_url);
  157.         //COLOCAMO EN EL CURL LOS PARAMETROS A ENVIAR
  158.         curl_setopt($request, CURLOPT_HEADER, 0); // set to 0 to eliminate header info from response
  159.         curl_setopt($request, CURLOPT_RETURNTRANSFER, 1); // Returns response data instead of TRUE(1)
  160.         curl_setopt($request, CURLOPT_POSTFIELDS, $post_string); // use HTTP POST to send form data
  161.         curl_setopt($request, CURLOPT_SSL_VERIFYPEER, FALSE); // uncomment this line if you get no gateway response.
  162.         //EJECUTAMOS EL CURL Y REGRESAMOS LA RESPUESTA EN $post_response
  163.         $post_response = curl_exec($request); // execute curl post and store results in $post_response
  164.         //CERRAMOS EL CURL
  165.         curl_close($request); // close curl object
  166.         //TOAMOS EL RESULTADO Y LO DIVIDIMOS EN PARTES
  167.         $response_array = explode($post_values[x_delim_char], $post_response);
  168.         //SI LA TARJETA FUE ACEPTA EL RESULTADO = 1 , 2 = Declined ,3 = Error ,4 = Held for review
  169.         $estado_tran = $response_array[0];
  170.         //TEXTO QUE DA EL RESULTADO EJEMPLO=This transaction has been approved.
  171.         $texto_resultado_pago = $response_array[3];
  172.         //EL CODIGO DE TRANSACCION
  173.         $x_trans_id = $response_array[6];
  174.         $respuestaRegresarDinero = array(
  175.             "estado_tran" => $estado_tran, //1=Aceptada,2=Rechazada,3=Error,4 = Retenida para revicios
  176.             "text_tran" => $texto_resultado_pago, //Id de esta tranzaccion a pasar a PRIOR_AUTH_CAPTURE
  177.             "x_trans_id" => $x_trans_id
  178.         );
  179.         return $respuestaRegresarDinero;
  180.     }
  181.  
  182.     //VALIDAMOS QUE LA TARJETA SEA REAL Y TENGA DINERO
  183.     //retorna array("estado_tran"=>,"text_tran"=>$texto_resultado_pago,"x_trans_id"=>$x_trans_id);
  184.     function devolucionTarjeta($datosDevolucion) {
  185.         //SI ES 0 SE USA LA PASARELA DE PRUEBA SI ES 1 SE USA LA PASARELA DE PRODUCTIVO
  186.         if ($datosDevolucion[authorize_modo] == 0) {
  187.             $post_url = "https://test.authorize.net/gateway/transact.dll";
  188.         }
  189.         if ($datosDevolucion[authorize_modo] == 1) {
  190.             $post_url = "https://secure.authorize.net/gateway/transact.dll";
  191.         }
  192.  
  193.         //TOMAMOS LOS DATOS A ENVIAR A AUTHORIZE
  194.         $post_values = array(
  195.             "x_login" => $datosDevolucion[x_login],
  196.             "x_tran_key" => $datosDevolucion[x_tran_key],
  197.             "x_version" => "3.1",
  198.             "x_delim_data" => "TRUE",
  199.             "x_delim_char" => "|",
  200.             "x_relay_response" => "FALSE",
  201.             "x_type" => "CREDIT",
  202.             "x_trans_id" => $datosDevolucion[x_trans_id],
  203.             "x_card_num" => $datosDevolucion[x_card_num],
  204.             "x_description" => "Devolucion",
  205.             "x_amount" => $datosDevolucion[x_amount]
  206.         );
  207.  
  208.         //CONVERTIMOS LOS DATOS EN UN ARREGLO
  209.         $post_string = "";
  210.         foreach ($post_values as $key => $value) {
  211.             $post_string .= "$key=" . urlencode($value) . "&";
  212.         }
  213.         $post_string = rtrim($post_string, "& ");
  214.  
  215.         //INICIALIZAMOS EL CURL CON LA RIRECCION DEL GETWAY
  216.         $request = curl_init($post_url);
  217.         //COLOCAMO EN EL CURL LOS PARAMETROS A ENVIAR
  218.         curl_setopt($request, CURLOPT_HEADER, 0); // set to 0 to eliminate header info from response
  219.         curl_setopt($request, CURLOPT_RETURNTRANSFER, 1); // Returns response data instead of TRUE(1)
  220.         curl_setopt($request, CURLOPT_POSTFIELDS, $post_string); // use HTTP POST to send form data
  221.         curl_setopt($request, CURLOPT_SSL_VERIFYPEER, FALSE); // uncomment this line if you get no gateway response.
  222.         //EJECUTAMOS EL CURL Y REGRESAMOS LA RESPUESTA EN $post_response
  223.         $post_response = curl_exec($request); // execute curl post and store results in $post_response
  224.         //CERRAMOS EL CURL
  225.         curl_close($request); // close curl object
  226.         //TOAMOS EL RESULTADO Y LO DIVIDIMOS EN PARTES
  227.         $response_array = explode($post_values[x_delim_char], $post_response);
  228.         //SI LA TARJETA FUE ACEPTA EL RESULTADO = 1 , 2 = Declined ,3 = Error ,4 = Retenida para revicios
  229.         $estado_tran = $response_array[0];
  230.         //TEXTO QUE DA EL RESULTADO EJEMPLO=This transaction has been approved.
  231.         $texto_resultado_pago = $response_array[3];
  232.         //EL CODIGO DE TRANSACCION
  233.         $x_trans_id = $response_array[6];
  234.         $respuestaValidar = array(
  235.             "estado_tran" => $estado_tran, //1=Aceptada,2=Rechazada,3=Error,4 = Retenida para revicios
  236.             "text_tran" => $texto_resultado_pago, //Id de esta tranzaccion a pasar a PRIOR_AUTH_CAPTURE
  237.             "x_trans_id" => $x_trans_id
  238.         );
  239.         return $respuestaValidar;
  240.     }
  241.  
  242.     //COBRAMOS DE UN SOLO GOLPE EL DINERO
  243.     function cobroDirectoTarjeta($datosPasarela) {
  244.         //SI ES 0 SE USA LA PASARELA DE PRUEBA SI ES 1 SE USA LA PASARELA DE PRODUCTIVO
  245.         if ($datosDevolucion[authorize_modo] == 0) {
  246.             $post_url = "https://test.authorize.net/gateway/transact.dll";
  247.         }
  248.         if ($datosDevolucion[authorize_modo] == 1) {
  249.             $post_url = "https://secure.authorize.net/gateway/transact.dll";
  250.         }
  251.         //DATOS A ENVIAR
  252.         $post_values = array(
  253.             "x_login" => $datosPasarela[x_login],
  254.             "x_tran_key" => $datosPasarela[x_tran_key],
  255.             "x_version" => "3.1",
  256.             "x_delim_data" => "TRUE",
  257.             "x_delim_char" => "|",
  258.             "x_relay_response" => "FALSE",
  259.             "x_type" => "AUTH_CAPTURE",
  260.             "x_method" => "CC",
  261.             //
  262.             "x_card_num" => $datosPasarela[x_card_num],
  263.             "x_card_code" => $datosPasarela[x_card_code],
  264.             "x_exp_date" => $datosPasarela[x_exp_date],
  265.             "x_amount" => $datosPasarela[x_amount],
  266.             //
  267.             "x_description" => "Pago tienda",
  268.             "x_first_name" => $datosPasarela[x_first_name],
  269.             "x_last_name" => $datosPasarela[x_last_name],
  270.             "x_last_name" => $datosPasarela[x_last_name],
  271.             "x_state" => $datosPasarela[x_state],
  272.             "x_zip" => $datosPasarela[x_zip],
  273.             "x_city" => $datosPasarela[x_city],
  274.             "x_country" => $datosPasarela[x_country]
  275.         );
  276.         //CONVERTIMOS LOS DATOS EN UN ARREGLO
  277.         $post_string = "";
  278.         foreach ($post_values as $key => $value) {
  279.             $post_string .= "$key=" . urlencode($value) . "&";
  280.         }
  281.         $post_string = rtrim($post_string, "& ");
  282.         //INICIALIZAMOS EL CURL CON LA RIRECCION DEL GETWAY
  283.         $request = curl_init($post_url);
  284.         //COLOCAMO EN EL CURL LOS PARAMETROS A ENVIAR
  285.         curl_setopt($request, CURLOPT_HEADER, 0); // set to 0 to eliminate header info from response
  286.         curl_setopt($request, CURLOPT_RETURNTRANSFER, 1); // Returns response data instead of TRUE(1)
  287.         curl_setopt($request, CURLOPT_POSTFIELDS, $post_string); // use HTTP POST to send form data
  288.         curl_setopt($request, CURLOPT_SSL_VERIFYPEER, FALSE); // uncomment this line if you get no gateway response.
  289.         //EJECUTAMOS EL CURL Y REGRESAMOS LA RESPUESTA EN $post_response
  290.         $post_response = curl_exec($request); // execute curl post and store results in $post_response
  291.         //CERRAMOS EL CURL
  292.         curl_close($request); // close curl object
  293.         //TOAMOS EL RESULTADO Y LO DIVIDIMOS EN PARTES
  294.         $response_array = explode($post_values[x_delim_char], $post_response);
  295.         //SI LA TARJETA FUE ACEPTA EL RESULTADO = 1 , 2 = Declined ,3 = Error ,4 = Retenida para revicios
  296.         $estado_tran = $response_array[0];
  297.         //TEXTO QUE DA EL RESULTADO EJEMPLO=This transaction has been approved.
  298.         $texto_resultado_pago = $response_array[3];
  299.         //EL CODIGO DE TRANSACCION
  300.         $x_trans_id = $response_array[6];
  301.         $respuestaCobro = array(
  302.             "estado_tran" => $estado_tran, //1=Aceptada,2=Rechazada,3=Error,4 = Retenida para revicios
  303.             "text_tran" => $texto_resultado_pago, //Id de esta tranzaccion a pasar a PRIOR_AUTH_CAPTURE
  304.             "x_trans_id" => $x_trans_id
  305.         );
  306.         return $respuestaCobro;
  307.     }
  308.  
  309. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement