• França
lyra.com
Procurando
Categoria
Tags
pagina inicial
Suporte técnico

Criar uma ordem de pagamento por SMS

Esse recurso requer uma conta Lyra SMS. Para maiores informações, consulte a FAQ.

Caso de uso

O EC cria uma ordem de pagamento e a envia ao comprador por SMS.

Teste

Teste o Web Service Charge/CreatePaymentOrder em nosso playground: Charge/CreatePaymentOrder.

Solicitação

Pagamento à vista

Exemplo de solicitação

Campos obrigatórios:

  • Valor: 100,00€.
  • Canal de difusão SMS.
  • Número de telefone do comprador: "+33611111111"

. Campos recomendados:

  • Referência do pedido: "myOrderId-1234"
/pt-BR/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/CreatePaymentOrder
{
    "amount": 10000,
    "currency": "EUR",
    "orderId": "myOrderId-1234",
    "channelOptions": {
      "channelType": "SMS",
      "smsOptions": {
        "phoneNumber": "+33611111111"
      }
    },
}
/**
 * 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€.
  • Número de telefone do comprador: "+33611111111".
  • Canal de difusão SMS.
  • 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".
/pt-BR/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/CreatePaymentOrder
{
  "amount": 10000,
  "currency": "EUR",
  "orderId": "myOrderId-1234",
  "channelOptions": {
    "channelType": "SMS",
    "smsOptions": {
      "phoneNumber": "+33611111111"
    }
  },
  "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 Champs obligatoires :
  • Valor: 100,00€.
  • Canal de difusão SMS.
  • Número de telefone do comprador: "+33611111111"
  • Regra: Pagamento em 3 vezes.
  1. em 1° de abril de 2023 por um valor de 50,00 EUR.
  2. em 1° de maio de 2023 por um valor de 30,00 EUR.
  3. em 1° de junho de 2023 por um valor de 20,00 EUR.

. Campos recomendados:

  • Referência do pedido: "myOrderId-1234".
/pt-BR/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/CreatePaymentOrder
{
  "amount": 10000,
  "currency": "EUR",
  "orderId": "myOrderId-999999",
  "channelOptions": {
    "channelType": "SMS",
    "smsOptions": {
      "phoneNumber": "+33611111111"
    }
  },
  "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
         }
       ]
    }
  },
  "paymentReceiptEmail": "sample@example.com",
  "expirationDate": "2023-04-20T20:13:26+02:00", 
  "dataCollectionForm": "false"
}

.

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": 10000,
        "currency": "EUR",
        "locale": "en_GB",
        "strongAuthentication": "AUTO",
        "orderId": "myOrderId-1234",
        "channelDetails": {
            "channelType": "SMS",
            "mailDetails": null,
            "smsDetails": {
                "phoneNumber": "+336111111111",
                "message": "Dear customer, this is a payment order of EUR 2,000.50 valid until 23/04/2020. To confirm, please click on the link below : https://secure.lyra.com/t/xdt0bcmo",
                "_type": "V4/SMSDetails"
            },
            "whatsAppDetails": null,
            "ivrDetails": 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": "Dear customer, this is a payment order of EUR 2,000.50 valid until 23/04/2020. To confirm, please click on the link below : 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"
}


}

A ordem de pagamento é enviada ao comprador por SMS.

Encontre a descrição e todos os campos em nosso playground:PaymentOrder


Gerenciamento dos erros

Tableau des erreurs
Código Descrição
INT_009 Formato do campo amount inválido ou campo não enviado.
INT_010 Formato do campo currency inválido ou campo não enviado.
INT_050 Parâmetro strongAuthentication é inválido.
INT_856 Parâmetro local é inválido.
INT_858 Parâmetro taxRate é inválido.
INT_869 Parâmetro taxAmount é inválido.
INT_929 Parâmetro installmentOptions.count é inválido.
INT_930 Parâmetro installmentOptions.period é inválido.
INT_931 Parâmetro installmentOptions.schedules[] inválido.
INT_932 Parâmetro installmentOptions.schedules[date] inválido.
INT_933 O formato do campo installmentOptions.schedules[amount] está inválido ou o campo não foi enviado.
PSP_519 Moeda desconhecida.
PSP_606 Moeda não suportada pelo contrato.
PSP_1007 A data de validade da ordem de pagamento não pode ser anterior à data de hoje nem ultrapassar um prazo de 90 dias.
PSP_1015 Nenhum formulário de coleta de dados para esta loja.
PSP_1018 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).

  1. Informe apenas o URL da notificação na seção API REST (TEST ou PRODUCTION): Procedimento.
  2. Analisar o IPN: Procedimento.
Jobs
Legal
GDPR
25.22-1.11