Crie uma ordem de pagamento por URL
Caso de uso
O EC cria uma ordem de pagamento por URL. O envio da URL de pagamento é realizado pelo EC.
Teste
Teste o web service Charge/CreatePaymentOrder em nosso playground.
Solicitação
Pagamento à vista
Exemple de reqûete
Campos obrigatórios:
- Valor: 100,00€.
. Campos recomendados:
- Referência do pedido: "myOrderId-1234".
- Canal de difusão: URL.
{ "amount": 10000, "currency": "EUR", "orderId": "myOrderId-1234", "channelOptions": { "channelType": "URL" } }
{ "amount": 200050, "currency": "PEN", "orderId": "myOrderId-999999", "channelOptions": { "channelType": "URL" }, "paymentReceiptEmail": "sample@example.com", "expirationDate": "2020-04-20T20:13:26+02:00", "locale": "es_PE", "dataCollectionForm": "false" }
{ "amount": 200050, "currency": "ARS", "orderId": "myOrderId-999999", "channelOptions": { "channelType": "URL" }, "paymentReceiptEmail": "sample@example.com", "expirationDate": "2020-04-20T20:13:26+02:00", "locale": "es_AR", "dataCollectionForm": "false" }
{ "amount": 200050, "currency": "COP", "orderId": "myOrderId-999999", "channelOptions": { "channelType": "URL" }, "paymentReceiptEmail": "sample@example.com", "expirationDate": "2020-04-20T20:13:26+02:00", "locale": "es_CO", "dataCollectionForm": "false" }
/** * 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"]; ?>
Para conhecer todos os detalhes e descrições dos campos, consulte o playground: Charge/CreatePaymentOrder (menu à esquerda).
Pagamento pré-datado
Pré-requisitos
- sujeito à opção e/ou em função da sua oferta
- não disponível para o pagamento SEPA
Exemplo de solicitação
Campos obrigatórios:
- Valor: 100,00€.
- Regra: Pagamento em 3 vezes. O primeiro valor é de € 50,00 com um intervalo de 7 dias.
. Campos recomendados:
- Referência do pedido: "myOrderId-1234".
- Canal de difusão: URL.
{ "amount": 10000, "currency": "EUR", "orderId": "myOrderId-1234", "channelOptions": { "channelType": "URL" }, "transactionOptions": { "installmentOptions": { "firstAmount": 5000, "count": 3, "period": 7 } } }
O primeiro pagamento de EUR 50,00 é criado em D+0.
O segundo pagamento de EUR 25,00 é criado em D+7.
O terceiro pagamento de EUR 25,00 é criado em D+14.
A descrição e todos os campos estão disponíveis (menu à esquerda): Charge/CreatePaymentOrder.
Pagamento em x vezes com um cronograma personalizado
Pré-requisitos
- sujeito à opção "Pagamento pré-datado avançado"
- Valor do campo Capture Delay não levado em conta (Prazo de captura no banco)
- não disponível para o pagamento SEPA
Exemplo de solicitação
Campos obrigatórios:
- Valor: 100,00€.
- Regra: Pagamento em 3 vezes.
- em 1° de abril de 2023 por um valor de 50,00 EUR.
- em 1° de maio de 2023 por um valor de 30,00 EUR.
- em 1° de junho de 2023 por um valor de 20,00 EUR.
. Campos recomendados:
- Referência do pedido: "myOrderId-1234".
- Canal de difusão: URL.
{ "amount": 10000, "currency": "EUR", "orderId": "myOrderId-1234", "channelOptions": { "channelType": "URL" }, "transactionOptions": { "installmentOptions": { "schedules": [ { "date": "2023-04-01T23:59:59+00:00", "amount": 5000 }, { "date": "2023-05-01T23:59:59+00:00", "amount": 3000 }, { "date": "2023-06-01T23:59:59+00:00", "amount": 2000 } ] } } }
A descrição e todos os campos estão disponíveis (menu à esquerda): Charge/CreatePaymentOrder.
Resposta
Exemplo de resposta
{ "webService": "Charge/CreatePaymentOrder", "version": "V4", "applicationVersion": "5.5.0", "status": "SUCCESS", "answer": { "paymentOrderId": "fd8f6060f824427ba687d0161e46af8f", "paymentURL": "https://secure.lyra.com/t/328zq5so", "paymentOrderStatus": "RUNNING", "creationDate": "2020-03-31T15:06:49+00:00", "updateDate": null, "amount": 200050, "currency": "EUR", "locale": "en_GB", "strongAuthentication": "AUTO", "orderId": "myOrderId-1234", "channelDetails": { "channelType": "URL", "mailDetails": null, "smsDetails": null, "whatsAppDetails": null, "_type": "V4/ChannelDetails" }, "paymentReceiptEmail": "sample@example.com", "taxRate": null, "taxAmount": null, "expirationDate": "2020-04-20T18:13:26+00:00", "transactionDetails": { "cardDetails": { "manualValidation": "NO", "captureDelay": 0, "_type": "V4/CardDetails" }, "_type": "V4/PaymentOrderTransactionDetails" }, "dataCollectionForm": false, "merchantComment": null, "message": "I pay EUR 2,000.50 via secure payment before 23/04/2020 (if the link does not work, copy the URL : https://secure.lyra.com/t/xdt0bcmo ).", "_type": "V4/PaymentOrder" }, "ticket": null, "serverDate": "2020-03-31T15:06:49+00:00", "applicationProvider": "LYRA", "metadata": null, "_type": "V4/WebService/Response" } }
O EC deve enviar o link de pagamento ao comprador. O link de pagamento corresponde ao campo.paymentURL
do objetoAnswer.
Encontre a descrição e todos os campos em nosso playground:
Gerenciamento dos erros
Tableau des erreurs
Código | Descrição |
---|---|
Formato do campo amount inválido ou campo não enviado. | |
Formato do campo currency inválido ou campo não enviado. | |
Parâmetro strongAuthentication é inválido. | |
Parâmetro local é inválido. | |
Parâmetro taxRate é inválido. | |
Parâmetro taxAmount é inválido. | |
Formato do campo installmentOptions.firstAmount inválido ou campo não enviado. | |
Parâmetro installmentOptions.count é inválido. | |
Parâmetro installmentOptions.period é inválido. | |
Parâmetro installmentOptions.schedules[] inválido. | |
Parâmetro installmentOptions.schedules[date] inválido. | |
O formato do campo installmentOptions.schedules[amount] está inválido ou o campo não foi enviado. | |
Moeda desconhecida. | |
Moeda não suportada pelo contrato. | |
A data de validade da ordem de pagamento não pode ser anterior à data de hoje nem ultrapassar um prazo de 90 dias. | |
Nenhum formulário de coleta de dados para esta loja. | |
O formulário de coleta de dados não pode ser usado com a moeda solicitada. |
Análise do resultado do pagamento
Para saber o resultado do pagamento, implemente o URL de notificação no final do pagamento (também conhecido como IPN).
- Informe apenas o URL da notificação na seção API REST (TEST ou PRODUCTION): Procedimento.
- Analisar o IPN: Procedimento.