Указанный идентификатор не существует razorpay в nodejs - PullRequest
0 голосов
/ 28 ноября 2018

Я внедряю платежный шлюз razorpay в моем приложении React.js с бэкэндом nodejs.

здесь frontend.jsx

razorpayHandler = () =>{
        const payment_amount  = this.props.TotalPrice;
        const backend_url = 'https://25234399bb.ngrok.io';
        const self = this;
        const options = {
        key: config.RAZOR_PAY_KEY,
        amount: payment_amount * 100,
        name: 'StanPlus',
        description: 'pay your ambulance fare',
        handler(response) {
            const paymentId = response.razorpay_payment_id;
            const url =  backend_url+'/razorpay/'+paymentId+'/'+payment_amount+'/'+self.id;
            console.log(paymentId)
            // Using my server endpoints to capture the payment
            fetch(url, {
            method: 'get',
            headers: {
                "Content-type": "application/x-www-form-urlencoded; charset=UTF-8"
            }
            })
            .then(resp =>  resp.json())
            .then(function (data) {
                    console.log(data)
            })
            .catch(function (error) {
                console.log('Request failed', error);
            });
        },
        theme: {
            color: '#40A9FF',
        },
        };
        const rzp1 = new window.Razorpay(options);

        rzp1.open();
    }

бэкэнд.js (nodejs)

var express = require('express');
var router = express.Router();
var config = require('../config');

const Razorpay = require('razorpay');
const instance = new Razorpay({
  key_id: config.razorpay_live_key,
  key_secret: config.razorpay_live_secret,
});

router.get('/:payment_id/:amount/:BID',function(req,res,next){
    const {payment_id } = req.params;
    const {BID} = req.params;
    const amount = Number(req.params.amount*100);
    instance.payments.capture(payment_id, amount).then((data) => {
        data.Bid = BID;
        res.json(data);
    }).catch((error) => {
        res.json(error);
    });
})
module.exports = router;

это показывает мне ошибку

"statusCode": 400, "error": {"code": "BAD_REQUEST_ERROR", "description":" Указанный идентификатор не существует "

, но если тот же код обрабатывается с использованием тестового ключа , он успешно завершен, но не работает с живым API.
здесь я передаю дополнительный параметр в бэкэнд, который нам нужен, но если удалить этот параметр, то он также не работает. Но с параметром он работает с тестовым API.
, когда мыотправить запрос к бэкэнду, он генерирует идентификатор и отправляет к бэкэнду также, но все равно он показывает Указанный идентификатор не существует .

1 Ответ

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

Я тоже сталкивался с этой ошибкой неделю назад.Эта ошибка появилась, когда мы заменили тестовые ключи на производственные ключи для окончательного платежа.

Поэтому я столкнулся с этой проблемой Указанный идентификатор не существует из-за несоответствия ключей Razorpay навнешняя сторона и внутренняя сторона (сторона node.js.)

Поэтому убедитесь, что у вас есть один и тот же ключ клиента и секрет рабочей среды как на внутренней стороне, так и на внешней стороне.

Дайте мне знать вкомментарии, если это все еще не решено.

...