何使用JavaScript在网站上实现razorpay付款方式

时间:2020-05-02 07:24:19

标签: javascript razorpay

  var razorpay = new Razorpay({
key: "rzp_test_7Cox79AHI5xh6w",
}); 
razorpay.once('ready', function(response) {
console.log(response.methods);

  })

 var options = {
amount: 50000, 
currency: "INR",
receipt: "order_rcptid_11",
payment_capture: '0'
};
razorpay.orders.create(options, function(err, order) {
console.log(order);
});

razorpay.createPayment(options);

razorpay.on('payment.success', function(resp) {
console.log(resp.razorpay_payment_id),
console.log(resp.razorpay_order_id),
console.log(resp.razorpay_signature)}); 

 razorpay.on('payment.error', function(resp){alert(resp.error.description)}); 

我已应用此代码来实现razorpay的支付系统,但出现错误Uncaught TypeError:无法读取未定义的属性“ create”。请帮我解决这个问题

3 个答案:

答案 0 :(得分:0)

订单的创建需要在服务器端进行。在文档中有说明。客户端库不是用于此目的的,这就是orders对象上不存在razorpay且正以undefined出现的原因。

请参考以下链接以获取更多详细信息:-

https://razorpay.com/docs/payment-gateway/web-integration/custom/#step-4---create-an-order-in-your

答案 1 :(得分:0)

Razorpay付款流程是前端将其称为

var razorpay = new Razorpay(options);
razorpay.open();

看看这个https://razorpay.com/docs/payment-gateway/web-integration/standard/#manual-checkout_

会触发您在options中传递的处理程序,在处理程序函数中,您会得到razorpay_payment_id等。您将此发送到后端并在此处创建订单对象,然后使用razorpay_payment_id验证是否付款并相应地更新订单对象。

注意:您不必在前端创建订单即可在Razorpay上付款。您将使用razorpay_payment_id和您通过handler传递的options函数获得的其他信息在后端创建订单。

答案 2 :(得分:0)

在调用Razorpay构造函数之前,请确保已加载脚本。

const script = document.createElement('script');
script.src = 'https://checkout.razorpay.com/v1/checkout.js';
script.async = true;
document.body.appendChild(script);

或在您的HTML中添加

<script src="https://checkout.razorpay.com/v1/checkout.js"/>

此外,您将需要实现文档中提到的后端代码

Razorpay docs