Почему я получаю ошибку “Кустомер Нот Found”, попробовав платежи с сохраняемыми карточками?

Я тестирую платежи с сохраняемой карточкой. Каждый раз, когда я пробую производить оплату на моем сервере (node.js) я получаю ошибку MercadoPago 2002: Customer not found. Ошибка только происходит, когда я занимаю карточку, как сохраняемая, однако, если я использую ту же карточку вводя ее в компьютер вручную, это не происходит.

Это данные, которых послало для создание оплаты:

var payment = {
binary_mode : true,
description : req.body.eventInfo.title,
transaction_amount : req.body.paymentInfo.total,
payment_method_id : req.body.paymentInfo.paymentMethod,
issuer_id : req.body.paymentInfo.issuer,
token : req.body.paymentInfo.token,
installments : req.body.paymentInfo.installments,
payer : {
  email : req.body.userInfo.email
}

front-end, который я использую, - Android и не производит никакой ошибки.
Карточка доказательства, которое я использую, - предоставляемые MercadoPago.

Уже я прогулялся по всей документации MercadoPago и я ничего не нашел полезным.


EDIT: Я продолжил с моими доказательствами и понял, что я должен добавлять идентификацию Customer в запросе, чтобы создавать оплату. Сейчас вопрос - что customer_id это String (Эдж. "244287696-igVP5aqibPydEp") и запрос требует, чем в поле payer.id разместился Integer. Уже пробуйте используя первые числа идентификации (Эдж. 244287696) но он возвращает мне ту же ошибку "Customer not found".

Я сделал ту же процедуру с сохраняемой карточкой, и с одной введенной вручную, оба тот же результат. Действительно документация очень бедная и я не нахожу решение еще.


EDIT 2: В конце концов я нашел разум проблемы и решения. Благодаря @hdlopez из-за Вашего ответа, я продолжил тестировать посылать customer_id как String и очевидно он возвратил мне следующую ошибку:

Error: The next fields are failing n validation: ".payer.id": should be integer.
     at Object.requestManager.buildRequest (/app/node_modules/mercadopago/lib/request-manager.js:270:17)
     at Object.<anonymous> (/app/node_modules/mercadopago/lib/request-manager.js:302:18)
     at Promise._execute (/app/node_modules/bluebird/js/release/debuggability.js:300:9)
     at Promise._resolveFromExecutor (/app/node_modules/bluebird/js/release/promise.js:481:18)
     at new Promise (/app/node_modules/bluebird/js/release/promise.js:77:14)
     at Object.requestManager.exec (/app/node_modules/mercadopago/lib/request-manager.js:296:10)
     at /app/node_modules/mercadopago/lib/request-manager.js:106:31
     at tryCatcher (/app/node_modules/bluebird/js/release/util.js:16:23)
     at Promise._settlePromiseFromHandler (/app/node_modules/bluebird/js/release/promise.js:510:31)
     at Promise._settlePromise (/app/node_modules/bluebird/js/release/promise.js:567:18)
     at Promise._settlePromiseCtx (/app/node_modules/bluebird/js/release/promise.js:604:10)
     at Async._drainQueue (/app/node_modules/bluebird/js/release/async.js:138:12)
     at Async._drainQueues (/app/node_modules/bluebird/js/release/async.js:143:10)
     at Immediate.Async.drainQueues (/app/node_modules/bluebird/js/release/async.js:17:14)
     at runCallback (timers.js:649:20)
     at tryOnImmediate (timers.js:622:5)

На которое я не обратил внимание, дело в том, что это ошибка SDK MercadoPago, не ошибка, возвращенная Вашим API. Тогда я протестировал делать request ручного способа с клиентом REST. Я это сделал со следующими данными о доказательстве:

{
    "transaction_amount": 100,
    "token": "274ea...",
    "description": "Title of what you are paying for",
    "payment_method_id" : "master",
    "installments": 1,
    "payer": {
        "id": "244287696-igVP5aqibPydEp"
    }
}

И он возвратил мне оплату правильно без какой-либо ошибки. Как временное решение я использую клиент HTTP REST на моем сервере, чтобы посылать запрос об оплате.

Ошибка происходит с SDK MercadoPago "px-nodejs-1.0.0" и я увижу, как я могу влечь за собой этот вирус.

2
задан 18.02.2017, 23:55
0 ответов

Vamos a ver si te puedo ayudar. Vamos punto por punto:

Alta de Tarjeta (создание клиента)

Una vez creado el заказчик como dice la документация puedes asociarle una tarjeta par toti to un token de tarjeta ( карточный токен ). En este Punto, член Совета по делам женщин, являющийся символом Таржеты Хаяс Ингресадо Эль Номбре Дуэ Диньо де ла Тарджета (имя владельца карты). Hay veces que esto puede dar проблемы, без необходимости, pero es una buena práctica. el id . Идентификационный номер счета карты жетон карты . Este token es el que enviarás en el pago.

Respecto al payer.id que deb enviar en el pago, no en encontrado donde dice que este campo es integer. Intenta en eniar campo el customer_id que имеет mencionado, ej: "244287696-igVP5aqibPydEp"

var payment = {
  binary_mode : true,
  description : req.body.eventInfo.title,
  transaction_amount : req.body.paymentInfo.total,
  payment_method_id : req.body.paymentInfo.paymentMethod,
  issuer_id : req.body.paymentInfo.issuer,
  token : req.body.paymentInfo.token,
  installments : req.body.paymentInfo.installments,
  payer : {
    id: "244287696-igVP5aqibPydEp"// Customer ID del payer
    email : req.body.userInfo.email
  }

Espero sea de ayuda.

Салудос

2
ответ дан 03.12.2019, 17:01
  • 1
    Спасибо @hdlopez Encontré что ошибка случается из-за SDK MercadoPago для node.js. Я буду использовать клиент REST, чтобы создавать платежи правильно. –  18.02.2017, 23:57

Теги

Похожие вопросы