Closed josegoyo closed 3 years ago
Me parece que el error podría ser que estás especificando un source_id
y al mismo tiempo enviando un objeto card
, prueba enviando sólo uno; según la implementación que tengas.
El source_id
funciona cuando la tarjeta ya ha sido tokenizada antes y recibes el token en tu backend, y el objeto card
cuando recibes todos los datos de la tarjeta en tu backend.
Recuerda que si tu implementación es recibir los datos completos en el backend, debes tener la certificación PCI antes de salir a producción; de lo contrario OpenPay no aprobaría la implementación.
Personalmente prefiero utilizar el SDK que tienen para Javascript en el cliente y tokenizar las tarjetas usando esa librería, y después solamente enviar el token al backend. OpenPay se encarga del resto.
Estoy tratando de crear un cargo con el siguiente objeto:
{ "method": "card", "customer" : { "name" : "Juan", "last_name" : "Vazquez Juarez", "phone_number" : "4423456723", "email" : "juan.vazquez@empresa.com.mx" }, "card": { "card_number": "4111111111111111", "holder_name": "John Doe", "expiration_year": "20", "expiration_month": "12", "cvv2": "110" }, "device_session_id" : "00005", "source_id" : "00005", "amount" : 200.00, "description" : "Service Charge", "order_id" : "oid-00721" }
Pero al enviar los datos me regresa el siguiente mensaje:
{ "message": { "http_code": 400, "error_code": 1001, "category": "request", "description": "Please specify only one type of card", "request_id": "ce57b8f5-7ab3-430e-9df5-4238ab054146" } }
En el request agregue en el objeto de
card
el atributo"type": "debit"
haciendo un poco de énfasis al mensaje del response pero aun así me sigue regresando lo mismo, no se si me puedan ayudar con este tema.Gracias.