Integração com TripPay
Este artigo contém um exemplo completo de como integrar com o TripPay.
Recomenda-se que já tenha lido:
- Payment > Mapping.
- Payment > Integration.
- Payment Web Component.
- Payment API. Leia a secção sobre
Create payable contracts
Aqui estão os passos para usar com sucesso o TripPay para pagar uma reserva:
- Certifique-se de que os beneficiários mencionados no contrato de reserva foram mapeados.
- Deixe o viajante escolher o inventário que deseja reservar e prepare-o para pagar.
- Crie um
payable contractcom o TripPay que contenha os itens a reservar. - Deixe o viajante pagar usando o TripPay Web Component.
Assumimos que já completou o Passo 1 e o Passo 2 e está pronto para informar o TripPay sobre a reserva.
Criar contrato pagável
Seção intitulada “Criar contrato pagável”Aqui está um exemplo de pedido JSON que inclui tudo o que precisa para criar o seu primeiro contrato pagável.
{ "user": { "userIdentifier": "191d5729-0b90-4000-85df-1bea7a6e9a01", "firstName": "John", "lastName": "Smith", }, "affiliateAccountIdentifier": "291d5729-0b91-4001-95df-2bec7a6e9a01", "affiliateAccountIdentifierType": "INTERNAL", "displayCurrency": "USD", "traceId": "trace-1", "redirectUrl": "/thank-you", "sourceUrl": "https://www.travel.com", "contractList": [ { "identifier": "191d5729-0b90-4000-8298-72431beb1701", "supplierIdentifier": "191d5729-0b90-4000-8b72-58186a642401", "supplierIdentifierType": "EXTERNAL", "contractItemList": [ { "user": { "userIdentifier": "191d5729-0b90-4000-8596-ed18f9876801", "firstName": "John", "lastName": "Smith", "telephone": "+1 212 555 1212", }, "nameInEnglish": "Deluxe King", "descriptionInEnglish": "This is the best deluxe king that money can buy.", "price": { "amount": 100, "currency": "USD" }, "itinerary": { "startDate": "2024-12-24T00:00:00.000Z", "endDate": "2024-12-25T00:00:00.000Z", "adults": 2 }, "pricingType": "PER_STAY", "type": "LODGING", "payable": "PREPAY", "policy": { "refundable": true }, "externalIdentifier": "room-type-1", "dailyRateList": [ { "date": "2024-12-24", "price": { "amount": 100, "currency": "USD" } } ], "beneficiaryList": [ { "identifier": "account-0", "identifierType": "INTERNAL", "amountDue": { "type": "PERCENTAGE", "percent": 0.015 }, "type": "PLATFORM_FEE" }, { "identifier": "account-1", "identifierType": "INTERNAL", "amountDue": { "type": "PERCENTAGE", "percent": 0.0985 }, "type": "COMMISSION" }, { "identifier": "account-2", "identifierType": "INTERNAL", "amountDue": { "type": "PERCENTAGE", "percent": 0.8865 }, "type": "SALE" } ] } ] } ]}Explicação:
Não vamos explicar cada ponto de dados aqui, pois já estão cobertos na documentação da API.
- Linhas: 2 - 7 é o utilizador responsável pela reserva. Existem dois tipos de reservadores:
- Viajante.
- Agente de viagens.
- Linhas: 8 - 9 é a conta TripPay que facilita a reserva. Pode ser:
- A sua conta integradora TripPay.
- Se gerir uma rede de afiliados, pode ser o seu afiliado.
- Use um
traceIdpara agrupar múltiplas reservas de vários fornecedores. Assim pode cancelar uma reserva em grupo. redirectUrlinforma o TripPay para qual página redirecionar após o pagamento estar concluído.sourceUrlé o site/app onde a reserva ocorreu.
O array contractList contém o(s) item(ns) que o viajante quer comprar de múltiplos fornecedores. Cada item contém:
- O
identifieré um UUID válido que gera. - O fornecedor do qual quer reservar inventário.
- O inventário que quer reservar desse fornecedor. Estes estão todos especificados no array aninhado
contractItemList. - Cada entrada em
contractItemListcontém:- Utilizador convidado Este é o utilizador que irá chegar às instalações.
- Nome em Inglês O nome do inventário na língua inglesa.
- Descrição em Inglês Uma descrição mais longa do inventário na língua inglesa.
- Preço O preço do item.
- Itinerário Quando este item deve ser reservado.
- Tipo de preço Como o preço foi calculado.
- Tipo de inventário Que tipo de inventário é este.
- Pagável Quando o viajante deve ser cobrado. Atualmente só suportamos opções de pagamento imediato.
- Política Inclua regras da política de cancelamento.
- Lista de tarifas diárias Se o item reservado for um quarto, pode incluir quanto custa esse quarto por cada noite que o hóspede ficar.
- Beneficiários Inclua quais contas TripPay devem receber que montantes do preço do item. São suportados montantes fixos / percentuais.
Resposta
Seção intitulada “Resposta”Quando o TripPay responder ao seu pedido, será algo assim:
[ { "id": "contract-1", "traceId": "trace-1", "supplierContractIdentifier": "191d5729-0b90-4000-8298-72431beb1701", "supplierIdentifier": "191d5729-0b90-4000-8b72-58186a642401", "supplierName": "Hilton", "totalPrice": { "amount": 100, "currency": "USD" }, "totalDisplayPrice": { "amount": 100, "currency": "USD" }, "totalSupplierPrice": { "amount": 100, "currency": "USD" }, "totalInternalPrice": { "amount": 100, "currency": "USD" }, "totalCapturePrice": { "amount": 100, "currency": "USD" } }]Guarde o id na linha 3. Vai usá-lo para injetar no TripPay web component.
Incorporar TripPay
Seção intitulada “Incorporar TripPay”Neste ponto, está pronto para incorporar o Payment Web Component no seu website e mostrá-lo ao utilizador.
<trip-pay id="contract-1"></trip-pay>No que toca à integração, é tudo o que precisa de fazer. Todo o trabalho pesado é feito pelo TripPay a partir daqui.