Node.js Интеграция PayUMoney - response.headers.location не определен - PullRequest
0 голосов
/ 28 июня 2019

Пробовал 2 пакета Node.js:
https://www.npmjs.com/package/payumoney_nodejs
https://www.npmjs.com/package/payumoney-node

Отладка на локальном хосте.
Отлажено в файле index.js в node_modules в каждом пакете.

params {
  key: 'x1FanfbP',
  salt: 'Vs2GrDyaMQ',
  service_provider: 'payu_paisa',
  hash: '65f75ced566e2d76dbc6153a277c25f591fc3c0a00a8f51a0699f609d5cbbc94dc7acd5d3be5fe0c0a855c4c6dc7faef49d8b6a1d77dd09398058f800bab068d',
  firstname: '',
  lastname: '',
  email: 'xxxxxxxx@xxxxx.xxx',
  phone: XXXXXXXXXX,
  amount: '100',
  productinfo: '',
  txnid: '5b51d253-5d6e-4512-951a-cd6d05bf9e6b',
  surl: 'http://localhost:3000/member/contribution/success',
  furl: 'http://localhost:3000/member/contribution/failure'
}

request.post(this.payUmoneyURL, form: params, headers: this.headers }, 
    function(error, response, body) {
        if (!error) {
            var result = response.headers.location;
            callback(error, result);
        }
});


request.post(payment_url[this.mode] + API.makePayment, { form: params, headers: this.headers }, function(error, response, body) {
        if (!error) {
            var result = response.headers.location;
            callback(error, result);
        }
});

Ответ response.headers:

response.headers {
    date: 'Fri, 28 Jun 2019 12:06:35 GMT',
    server: 'Apache',
    'x-powered-by': 'PHP/7.2.14',
    p3p: 'CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"',
    'set-cookie': [ 'PHPSESSID=naopga57qf58vl0hdfj5krq4n5; path=/; domain=.payu.in' ],
    expires: 'Thu, 19 Nov 1981 08:52:00 GMT',
    'cache-control': 'no-store, no-cache, must-revalidate',
    pragma: 'no-cache',
    vary: 'Accept-Encoding',
    'content-length': '3129',
    connection: 'close',
    'content-type': 'text/html; charset=UTF-8'
}

Выше не имеет location ключ, как response.headers.location

Может кто-нибудь помочь узнать, почему location не возвращается? Это из-за разработки на локальной машине? Если да, то как проверить это на localhost?

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 06 июля 2019

Кажется, это была очень глупая ошибка, но я не знал, где искать ошибку в клавише response.

После просмотра всего объекта response обнаружен ключ body, отправленный в самый конец объекта response со строкой HTML. Этот HTML-код указывает, произошла ли какая-либо ошибка и что именно.

В моем случае это были пропущенные обязательные поля:

Error Reason
One or more mandatory parameters are missing in the transaction request.

Corrective Action
Please ensure that you send all mandatory parameters in the transaction request to PayU.

Mandatory parameters which must be sent in the transaction are: 
key, txnid, amount, productinfo, firstname, email, phone, surl, furl, hash.

The parameters which you have actually sent in the transaction are: 
key, txnid, amount, surl, hash, email, phone.

Mandatory parameter missing from your transaction request are: 
productinfo, firstname.

Please re-initiate the transaction with all the mandatory parameters.

После передачи данных для отсутствующих параметров, получил url в ключе response.headers.location, как и ожидалось.

Интеграция работает, как и ожидалось.

...