Valor do pagamento não confere com o valor esperado

Bom dia!

Estou tentando aplicar o “Place Order From a Existing Cart” a partir de um carrinho salvo mas estou encontrando dificuldades em finalizar a etapa, pois fico recebendo esse erro toda vez. Já tentei de toda forma encontrar onde estou deixando passar a diferença no valor, mas não consigo. Poderiam me ajudar?

Ambiente: https://alphabeto.vtexcommercestable.com.br
Etapas:

  1. Simulate Cart
{
   "items":[
      {
         "id":"2166",
         "quantity":1,
         "seller":"1"
      }
   ],
   "marketingData":null,
   "country":"BRA",
   "postalCode":"88501170"
}
  1. /api/checkout/pub/orderForm

  2. Add Items to Empty Order Form

{
	"orderItems": [
		{
			"id": "2166",
			"quantity": 1,
			"seller": "1",
			"price": 11995,
			"priceTags": [
				{
					"name": "discount@price-d4f8d095-0c61-4e51-b5cd-d711868b7541#712d81bd-4d02-41e0-b832-2c2287ad7579",
					"value": -4798,
					"rawValue": -47.98,
					"isPercentual": false,
					"identifier": null
				}
			]
		}
	]
}
  1. Add Client Data
{
   "documentType":"cpf",
   "email":"teste@gmail.com",
   "firstName":"teste",
   "lastName":"teste",
   "document":"07059827935",
   "phone":"(21) 32133-2133"
}
  1. Logistic Data
{
	"selectedAddresses": [
		{
			"addressType": "Residential",
			"receiverName": "teste teste",
			"postalCode": "88501-170",
			"city": "Lages",
			"state": "SC",
			"country": "BRA",
			"street": "Rua Rui Barbosa",
			"number": "474",
			"neighborhood": "Centro",
			"complement": "até 277/278",
			"reference": "Lages"
		}
	],
	"logisticsInfo": [
		{
			"itemIndex": 0,
			"selectedSla": "Jadlog",
			"price": 1617
		}
	]
}
  1. Place Order from Existing Cart
{
	"referenceId": "0de2de37b1b441afbbfb23eb28ca7782",
	"value": 8814,
	"referenceValue": 8814,
	"interestValue": 0
}
	"messages": [
		{
			"code": null,
			"text": "Valor do pagamento não confere com o valor esperado",
			"status": "error",
			"fields": {}
		}
	],

Diagrama apresentando o fluxo que estou aplicando:

image

1 Like

Olhando bem por cima parece que faltou o bloco paymentData.

Using APIs to place a regular order (vtex.com)

1 Like

Então, realmente não coloquei aqui no exemplo, mas tentei também adicionando o bloco:

{
	"paymentSystem": "1",
	"referenceValue": 8814,
	"value": 8814,
	"installments": 1
}

Acha que estou passando errado?

1 Like

Só para confirmar, qual a API que está sendo chamada?
Para facilitar o teste, veja se consegue tirar a promoção e voltar com ela quando conseguir inserir o primeiro pedido.

1 Like

Estou batendo na api/checkout/pub/orderForm/{orderFormId}/transaction [Place order from an existing cart]

Oks! Vou tentar tirar a promoção pra facilitar

1 Like
{
   "payments":[
      {
         "paymentSystem":"2",
         "referenceValue":4299,
         "value":4299,
         "installments":1
      }
   ]
}

Tenta adicionar o pagamento usando um array. Depois veja se o “payments” aparece dentro do orderForm.

image

1 Like
				"installments": [
					{
						"count": 1,
						"hasInterestRate": false,
						"interestRate": 0,
						"value": 8814,
						"total": 8814,
						"sellerMerchantInstallments": [
							{
								"id": "ALPHABETO",
								"count": 1,
								"hasInterestRate": false,
								"interestRate": 0,
								"value": 8814,
								"total": 8814
							}
						]
					},

Adicionou mas o erro persiste… Realmente não consigo entender em qual etapa o valor acaba divergindo. Conferi o form inteiro e testei os valores que aparecem, mas mesmo mudando de 88.14 pra outro não vai

Opa, que estranho, aqui aparece um erro, mas não é de valor e sim de recaptcha (que é outra história).

Tentar fazer mais uma coisa, coloca o parametro “selectedDeliveryChannel”: “delivery” do logisticsInfo.

“logisticsInfo”: [
{
“itemIndex”: 0,
“selectedSla”: “Normal”,
“selectedDeliveryChannel”: “delivery”,
“price”: 0
}
]

Uma coisa que pode ser feita é a seguinte.
Entra no site normalmente como um cliente, escolhe o produto, vai para o checkout, digita todos os dados como estão nas chamadas da API e lá na tela de pagamento antes de fechar o pedido pega o orderForm. Ai compara o orderForm que foi gerado no site com o seu que foi gerado via API

1 Like

Deu certo! Segui os passos e vi que era a forma como eu montava o paymentData mesmo

1 Like

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.