Как изменить файл Razorpay.js, чтобы мой код работал?

Я интегрирую Razorpay для обработки платежей и использую node-JS sdk.

См. эту ссылку для справки: https://github.com/razorpay/razorpay-node/blob/master/examples/index.js.

Теперь я пытаюсь зафиксировать платеж, который был авторизован с использованием моих облачных функций Firebase. Обратитесь к строке 32 в ссылке, которой я поделился выше.

Позвольте мне показать вам облачную функцию, которую я написал:

exports.CapturePayment = functions.database.ref('payment_id').onWrite((event) => {

  const payment_id = event.data.val();

  // Capture a particular payment
rzp.payments.capture(payment_id, 1000).then((data) => {
  event.data.ref.child('status').set("paid");
  // success
}).catch((error) => {
  // error
});

});

Когда я запускаю его, я получаю эту ошибку:

https://imgur.com/a/h2iG2uf

Я приложил скриншоты моего файла razorpay.js и файла index.js. Может ли кто-нибудь указать на мою ошибку и помочь мне заставить ее работать?

razorpay.js: https://imgur.com/GU0LP1u index.js: https://imgur.com/a/TYizcSu

PS: я очень новичок в Node.JS, поэтому я думаю, что это может быть синтаксическая ошибка.

Обновление 1: я изменил объявление переменной среды на `

let rzp = new Razorpay({
  key_id: process.env.KEY_ID || "rzp_test_T1334114312"  , // your `KEY_ID`
  key_secret: process.env.KEY_SECRET || "K7W234fdsCt4dE12341" // your `KEY_SECRET`
})`

и я все еще получаю ту же ошибку.


person Arjun Ram    schedule 20.05.2018    source источник
comment
Пожалуйста, не публикуйте свой ключ и секрет публично, они конфиденциальны, любой может получить доступ к вашей учетной записи с этими учетными данными.   -  person Arjun Komath    schedule 20.05.2018
comment
Никогда не размещайте скриншоты, если их можно избежать. Гораздо лучше вырезать и вставить сообщение об ошибке в сам пост.   -  person Jeremy J Starcher    schedule 20.05.2018
comment
Ключ и секрет, которые я разместил, изменены/поддельны. Извините, что не публикую скриншоты, обязательно сделаю это в следующий раз!   -  person Arjun Ram    schedule 20.05.2018


Ответы (2)


Вам необходимо инициализировать RazorPay SDK с помощью key_id и key_secret. Вы можете либо установить переменную среды, либо напрямую передать значения, как показано ниже.

process.env - это переменные окружения, их нужно настроить. Вы не просто заменяете их в коде (что я и видел на скриншоте).

let rzp = new Razorpay({
  key_id: process.env.KEY_ID || "<your actual key id>", 
  key_secret: process.env.KEY_SECRET || "<your actual key secret>" 
})

Вот почему он выдает ошибку, что key_id отсутствует.

person Arjun Komath    schedule 20.05.2018
comment
Я внес изменения, и я все еще получаю ту же ошибку! - person Arjun Ram; 20.05.2018
comment
let rzp = new Razorpay({ key_id: process.env.KEY_ID || rzp_test_T1334114312 , // ваш KEY_ID key_secret: process.env.KEY_SECRET || K7W234fdsCt4dE12341 // ваш KEY_SECRET }) - person Arjun Ram; 20.05.2018
comment
Это не имеет смысла, так как ошибка возникает при очень простой проверке строки. Вы изменяли какие-либо файлы SDK? - person Arjun Komath; 20.05.2018
comment
Нет, я не! Нужно ли что-то менять в файле razorpay.js, где возникает ошибка? В частности, в «функции Razorpay ()»? - person Arjun Ram; 20.05.2018
comment
Все, что я сделал, это сначала набрал «npm i install» в командной строке. Затем перейдите в соответствующую папку и введите npm install. Вот и все! Внутри ничего не трогал! - person Arjun Ram; 20.05.2018
comment
Нет, файлы SDK изменять не следует. - person Arjun Komath; 20.05.2018
comment
Давайте продолжим это обсуждение в чате. - person Arjun Ram; 20.05.2018

Оказывается, это была простая синтаксическая ошибка при объявлении переменных среды. Мне просто нужно было объявить это следующим образом:

process.env.KEY_ID = 'randomstring1'; process.env.KEY_SECRET = 'randomstring2';

и это работает!

person Arjun Ram    schedule 21.05.2018