Skip to main content

Fala  pessoal! Todos bem? Alguém já fez essa implementação no payments? 

 


Eu criei o menu com o retorno que vem da api, após o usuário escolher a opção

 

function run(billetChosen) {

try {

const { valor, codigoParcela, dataDevencimento, linhaDigitavel, linkBoleto } = JSON.parse(billetChosen)

 

const menu = {

"type": "interactive",

"interactive": {

"type": "order_details",

"header": {

"type": "document",

"document": {

"link": `${linkBoleto}`,

"filename": "Clique aqui para ver PDF"

}

},

"body": {

"text": "Mas se você preferir efetuar o pagamento pelo *Codigo do boleto*, também funciona, veja como você pode fazer: 👇\n\n1. *Copie o código \n2. Abra o aplicativo do seu banco;\n3. Entre na área do Pagamentos;\n4. Selecione o modo \"PIX Copia e Cola\";\n5. Cole o código que você copiou;\n6. E efetue o pagamento."

},

"footer": {

"text": "❖ Clique no botão abaixo para copiar o código."

},

"action": {

"name": "review_and_pay",

"parameters": {

"reference_id": `${codigoParcela}`,

"type": "digital-goods",

"payment_type": "br",

"payment_settings": <

{

"type": "boleto",

"boleto": {

"digitable_line": `${linhaDigitavel}`

}

}

],

"currency": "BRL",

"total_amount": {

"value": formatPrice(valor),

"offset": 100

},

"order": {

"status": "pending",

"catalog_id": `${codigoParcela}`,

"expiration": {

"timestamp": getExpirationTime().toString(),

"description": "test expiration"

},

"items": n

{

"retailer_id": `${codigoParcela}`,

"name": `Fatura ${dataDevencimento}`,

"amount": {

"value": formatPrice(valor),

"offset": 100

},

"quantity": 1

}

],

"subtotal": {

"value": formatPrice(valor),

"offset": 100

}

}

}

}

}

}

 

return menu

} catch (e) {

return e.message

}

}

 

function getExpirationTime() {

const today = new Date()

return new Date(today.getUTCFullYear() + 1, 11, 1).getTime() / 1000

}

 

function formatPrice(valor) {

const replacedCommaWithPeriod = `${valor}`.replace(',', '.')

const replacedPriceWithoutChar = replacedCommaWithPeriod.replace(/l^0-9.]/g, "")

return parseInt(parseFloat(replacedPriceWithoutChar) * 100)

}


Porém, quando passo para o conteúdo dinâmico, o bote não apresenta

 


Alguém sabe onde está a falha? Desde já agradesço.

Nenhum comentário

Comente