Editar una solicitud de pago
Casos de uso
El vendedor desea modificar el contenido de una solicitud de pago (monto, mensaje, etc.).
El Web Service Charge/PaymentOrder/Update permite modificar solamente las solicitudes de pago creadas con el Web Service Charge/CreatePaymentOrder.
Solo las solicitudes de pago en curso (estado RUNNING ) se pueden modificar No se puede modificar el canal de difusión.
Testear
Testee el Web Service Charge/PaymentOrder/Cancel desde nuestro playground:.
Solicitud
Campos obligatorios
Montant avec la devise.
Référence de l'ordre de paiement :paymentOrderId.
. Canal de distribución (excepto el enlace URL):
- Por e-mail:
channelOptions.mailOptions | Objeto JSON que define los parámetros de la solicitud de pago. |
channelOptions.mailOptions.recipient | E-mail del comprador. |
- Por SMS:
channelOptions.smsOptions | Objeto JSON que define los parámetros de la solicitud de pago. |
channelOptions.smsOptions.phoneNumber | Número de teléfono móvil del comprador. |
- Por WhatsApp:
channelOptions.whatsAppOptions | Objeto JSON que define los parámetros de la solicitud de pago. |
channelOptions.whatsAppOptions.phoneNumber | Número de teléfono del comprador. |
Ejemplo de solicitud
Edite los siguientes datos:
- Monto: 200,00 €.
- Référence de la commande : "myOrderId-999999".
- Canal de difusión: MAIL.
/es/rest/V4.0/api/kb/authentication.html
https://github.com/lyra/rest-php-examples/blob/master/www/minimalEmbeddedForm.php#L9-L44
https://api.lyra.com/api-payment/V4/Charge/PaymentOrder/Update
{ "paymentOrderId": "d63e7f507a6f4dfa86cb40a833ecfd85", "amount": 20000, "currency": "EUR", "orderId": "myOrderId-999999", "channelOptions": { "channelType": "MAIL", "mailOptions": { "recipient": "customer@example.com" } } }
{ "paymentOrderId": "d63e7f507a6f4dfa86cb40a833ecfd85", "amount": 200050, "currency": "PEN", "orderId": "myOrderId-999999", "channelOptions": { "channelType": "MAIL", "mailOptions": { "recipient": "sample@example.com" } }, "paymentReceiptEmail": "sample@example.com", "expirationDate": "2020-05-20T20:13:26+02:00", "locale": "es_PE", "dataCollectionForm": "true" }
{ "paymentOrderId": "d63e7f507a6f4dfa86cb40a833ecfd85", "amount": 200050, "currency": "ARS", "orderId": "myOrderId-999999", "channelOptions": { "channelType": "MAIL", "mailOptions": { "recipient": "sample@example.com" } }, "paymentReceiptEmail": "sample@example.com", "expirationDate": "2020-05-20T20:13:26+02:00", "locale": "es_AR", "dataCollectionForm": "true" }
{ "paymentOrderId": "d63e7f507a6f4dfa86cb40a833ecfd85", "amount": 200050, "currency": "COP", "orderId": "myOrderId-999999", "channelOptions": { "channelType": "MAIL", "mailOptions": { "recipient": "sample@example.com" } }, "paymentReceiptEmail": "sample@example.com", "expirationDate": "2020-05-20T20:13:26+02:00", "locale": "es_CO", "dataCollectionForm": "true" }
/** * I initialize the PHP SDK */ require_once __DIR__ . '/vendor/autoload.php'; require_once __DIR__ . '/keys.php'; require_once __DIR__ . '/helpers.php'; /** * Initialize the SDK * see keys.php */ $client = new Lyra\Client(); /** * I create a formToken */ $store = array("amount" => 250, "currency" => "EUR", "orderId" => uniqid("MyOrderId"), "customer" => array( "email" => "sample@example.com" )); $response = $client->post("V4/Charge/CreatePayment", $store); /* I check if there are some errors */ if ($response['status'] != 'SUCCESS') { /* an error occurs, I throw an exception */ display_error($response); $error = $response['answer']; throw new Exception("error " . $error['errorCode'] . ": " . $error['errorMessage'] ); } /* everything is fine, I extract the formToken */ $formToken = $response["answer"]["formToken"]; ?>
/** * I initialize the PHP SDK */ require_once __DIR__ . '/vendor/autoload.php'; require_once __DIR__ . '/keys.php'; require_once __DIR__ . '/helpers.php'; /** * Initialize the SDK * see keys.php */ $client = new Lyra\Client(); /** * I create a formToken */ $store = array("amount" => 250, "currency" => "EUR", "orderId" => uniqid("MyOrderId"), "customer" => array( "email" => "sample@example.com" )); $response = $client->post("V4/Charge/CreatePayment", $store); /* I check if there are some errors */ if ($response['status'] != 'SUCCESS') { /* an error occurs, I throw an exception */ display_error($response); $error = $response['answer']; throw new Exception("error " . $error['errorCode'] . ": " . $error['errorMessage'] ); } /* everything is fine, I extract the formToken */ $formToken = $response["answer"]["formToken"]; ?>
Respuesta
Ejemplo de respuesta
{ "webService": "Charge/PaymentOrder/Update", "version": "V4", "applicationVersion": "5.5.0", "status": "SUCCESS", "answer": { "paymentOrderId": "d63e7f507a6f4dfa86cb40a833ecfd85", "paymentURL": "https://secure.lyra.com/t/328zq5so", "paymentOrderStatus": "RUNNING", "creationDate": "2020-03-31T15:06:49+00:00", "updateDate": "2020-04-29T12:55:50+00:00", "amount": 20000, "currency": "EUR", "locale": "en_GB", "strongAuthentication": "AUTO", "orderId": "myOrderId-999999", "channelDetails": { "channelType": "MAIL", "mailDetails": { "subject": "Your payment order", "body": "<b>Message sent by DEMO STORE</b> <p>Dear customer,</p> <p>This e-mail is a payment order of EUR 2,000.50 valid until 01/04/2020. To confirm, please click on the link below : </p> <p>https://secure.lyra.com/t/w5izg024</p> <p>In case of problems, or if this message is not correctly displayed, please contact support@demostore.com.</p>", "template": null, "recipient": "sample@example.com", "bcc": null, "_type": "V4/MailDetails" }, "smsDetails": null, "whatsAppDetails": null, "_type": "V4/ChannelDetails" }, "paymentReceiptEmail": "sample@example.com", "taxRate": null, "taxAmount": null, "expirationDate": "2020-05-20T18:13:26+00:00", "transactionDetails": { "cardDetails": { "manualValidation": "NO", "captureDelay": 0, "_type": "V4/CardDetails" }, "_type": "V4/PaymentOrderTransactionDetails" }, "dataCollectionForm": true, "merchantComment": null, "message": "<b>Message sent by DEMO STORE</b> <p>Dear customer,</p> <p>This e-mail is a payment order of EUR 2,000.50 valid until 01/04/2020. To confirm, please click on the link below : </p> <p>https://secure.lyra.com/t/w5izg024</p> <p>In case of problems, or if this message is not correctly displayed, please contact support@demostore.com.</p>", "_type": "V4/PaymentOrder" }, "ticket": null, "serverDate": "2020-04-29T12:55:50+00:00", "applicationProvider": "PAYZEN", "metadata": null, "_type": "V4/WebService/Response" } }
Manejo de errores
Tabla de errores
Código | Descripción |
---|---|
INT_009 | El formato del campo amount no es válido o el campo no se ha transmitido. |
INT_010 | El formato del campo currency no es válido o el campo no se ha transmitido. |
INT_050 | El parámetro strongAuthentication es inválido. |
INT_836 | el objeto smsOptions está ausente. |
INT_837 | El parámetro channelOptions.whatsAppOptions.phoneNumber está ausente. |
INT_838 | El parámetro channelOptions.smsOptions.phoneNumber está ausente. |
INT_839 | el objeto whatsAppOptions está ausente. |
INT_841 | el objeto mailOptions está ausente. |
INT_850 | El parámetro channelOptions.mailOptions.recipient está ausente. |
INT_856 | El parámetro locale es inválido. |
INT_858 | El parámetro taxRate es inválido. |
INT_869 | El parámetro taxAmount es inválido. |
INT_902 | El formato del campo paymentOrderId no es válido o el campo no se ha transmitido. |
PSP_519 | Moneda desconocida. |
PSP_606 | El contrato admite esta divisa. |
PSP_1000 | La solicitud de pago no existe. |
PSP_1001 | No se puede establecer conexión con la puerta de enlace WhatsApp. |
PSP_1002 | El número de teléfono del destinatario no está asociado a una cuenta de WhatsApp. |
PSP_1003 | Falta la configuración de WhatsApp. |
PSP_1004 | Plantilla de WhatsApp disponible para la configuración regional solicitada. |
PSP_1005 | No se puede modificar una solicitud de pago pagada. |
PSP_1006 | No se puede modificar una solicitud de pago expirada. |
PSP_1007 | La fecha de vencimiento de la solicitud de pago no puede ser anterior a la fecha actual ni exceder los 90 días. |
PSP_1011 | El modo (TEST o PRODUCTION) de la solicitud de pago no corresponde al de la solicitud. |
PSP_1015 | No hay ningún formulario de recolección de datos para esta tienda. |
PSP_1017 | No se puede modificar el canal de difusión. |
PSP_1018 | No se puede utilizar el formulario de recolección de datos para la moneda solicitada. |
PSP_1022 | La plantilla especificada en la solicitud no existe para la configuración regional solicitada. |