Plugin Directory

Changeset 1820179


Ignore:
Timestamp:
02/11/2018 09:04:55 PM (8 years ago)
Author:
freshwork
Message:

Fix dependency

File:
1 edited

Legend:

Unmodified
Added
Removed
  • simplepay/trunk/vendor/simplepay/php-sdk/README.md

    r1820178 r1820179  
    1 # SimplePay PHP SDK
    2 Librería para la integración de SimplePay. Actualmente solo se soporta el pago con Chauchas. Esta librería es mantenida por Gonzalo De Spirito de [freshworkstudio.com](http://freshworkstudio.com) y [simplepay.cl](http://simplepay.cl).
    3 
    4 
    5 # Installation
    6 ```bash
    7 composer require freshwork/simplepay-sdk
    8 ```
    9 
    10 
    11 ## Getting Started
    12 
    13 ### Ejemplo
    14 ```php
    15 include 'vendor/autoload.php';
    16 
    17 use SimplePay\SimplePay;
    18 
    19 $simplePay = new SimplePay('API_KEY');
    20 $amount = 100;
    21 $currency = 'CLP'; //ó CHA
    22 $order_id = 123; //Id de transacción de tu sistema
    23 $description = ''; //opcional: descripción de la compra
    24 $response_url = 'https://misitio.cl/simplepay/response';
    25 $final_url = 'https://misitio.cl/simplepay/final';
    26 $ipn_url = 'https://misitio.cl/simplepay/ipn'; //Necesario solo para el pago de Chauchas
    27 $transaction = $simplePay->initTransaction(SimplePay::PAYMENT_METHOD_CHAUCHAS, $amount, $currency, $order_id, $response_url, $final_url, $description, $ipn_url);
    28 
    29 header('Location: ' . $transaction['redirect_url']);
    30 exit;
    31 ```
    32 
    33 ### Proceso
    34 Este código inicia la transacción en el sistema y entrega una URL a la que se debe redireccional al usuario.
    35 Cuando el usuario paga satisfactoriamente, este es redireccionado a `$response_url` con el token de la transacción enviado por POST.
    36 
    37 ### /response
    38 ```php
    39 <?php
    40 
    41 include '../vendor/autoload.php';
    42 
    43 use SimplePay\SimplePay;
    44 
    45 $simplePay = new SimplePay('88LCjCRBwOZQQsgcQFYpNL6CoSdv5gOXVDBr2mYm0CgCHO6HDIMT15cD3b83');
    46 $result = $simplePay->getTransactionResult($_POST['token']);
    47 
    48 if (is_null($result['transaction']['accepted_at'])) {
    49     //El pago no fue aceptado. Cancelar la orden, etc.
    50    
    51 } else {
    52     //Si estoy acá es porque accepted_at no es nulo y la compra fue aceptada. Marcar la orden de compra como en espera.
    53     //En este punto, si el usuario pagó con chauchas, se recibieron las transacciones, pero no se han confirmado todavía. LLegará una notificación a la URL IPN (paso anterior) indicando cuando esté confirmada.
    54 
    55     //Marcar orden como pagada y en espera. No despachar productos todavía. Esperar IPN.
    56 
    57 }
    58 
    59 $simplePay->acknowledgeTransaction($_POST['token']);
    60 
    61 header('Location: ' . $result['redirect_url']);
    62 exit;
    63 
    64 ```
    65 
    66 ### Página de Gracias ó rechazo.
    67 Luego de esto, el usuario es redirigido a l apágina de gracias de Simplepay y posteriormente enviado a `$final_url` (también incluyendo un TOKEN de la transacción por POST). Al llegar a esta URL, el sistema debe obtener los datos de la transacción y leer el ID de la orden. Con eso podrá saber si la orden por la qu ellegó el usuario está aceptada o rechazada.
    68 
    69 ### /ipn - NOtificación IPN
    70 Cuando la compra esté confirmada por la red o haya sido 100% confirmada, se notificará a esta URL.
    71 A diferencia de las otras URL, donde era el navegador del usuario el que entraba, en este caso es el servidor de SimplePay el que se conecta con esta URL directamente. Eso siginfica que si estás probando con una URL local (ejemplo: http://localhost) esta notificación no te llegará.
    72 
    73 Esta página debe imprimir el UUID de la transacción para que Simplepay sepa que se recibió el mensaje correctamente.
    74 ```php
    75 if (!isset($_POST['token'])) {
    76     die('SimplePay: No se ha podido procesar esta solicitud. ');
    77 }
    78 
    79 $token = $_POST['token'];
    80 
    81 try {
    82     $response = $this->simplepay_sdk->getTransactionResult($token);
    83 } catch (Exception $e) {
    84     die('Error obteniendo información de la transacción: ' . $e->getMessage());
    85 }
    86 
    87 if ($response['transaction']['completed_at'] !== null) {
    88     $order = new WC_Order($response['transaction']['commerce_order_id']);
    89     $order->add_meta_data('simplepay_completed', true);
    90     $order->payment_complete($response['transaction']['uuid']);
    91     $order->add_order_note('Transacción completa y confirmada por la red');
    92     die($response['transaction']['uuid']);
    93 }
    94 
    95 ``
Note: See TracChangeset for help on using the changeset viewer.