已提供客户信息,Razorpay付款链接仍要求手动输入手机号
解决Razorpay付款链接已传客户手机号仍需手动输入的问题
问题原因
你当前仅在customer字段中传入了客户信息,但Razorpay的付款页面预填表单需要通过**prefill字段**来指定,customer字段仅用于后台关联客户记录,不会自动填充到付款页面的输入框中。
修复方案
在paymentLinkOptions中添加prefill对象,将需要预填的姓名、邮箱、手机号信息填入其中,付款页面就会自动加载这些信息,不再要求手动输入。
修改后的代码
const Razorpay = require('razorpay'); const instance = new Razorpay({ key_id: 'your_key_id', key_secret: 'your_key_secret', }); const paymentLinkOptions = { amount: 5000, // Amount in smallest currency unit currency: 'INR', description: 'Test Payment', customer: { name: 'John Doe', email: 'john.doe@example.com', contact: '+919876543210', // Phone number }, prefill: { // 添加该字段实现付款页面信息预填 name: 'John Doe', email: 'john.doe@example.com', contact: '+919876543210' }, notify: { sms: true, email: true, }, callback_url: 'https://example.com/callback', callback_method: 'get', }; instance.paymentLink.create(paymentLinkOptions) .then((paymentLink) => { console.log('Payment Link:', paymentLink); }) .catch((error) => { console.error('Error creating payment link:', error); });
额外注意事项
- 确保
prefill中的手机号格式符合要求:需包含国家码(如+91),无空格或特殊字符。 - 若问题仍存在,可检查Razorpay后台的付款页面配置,确认是否开启了强制手动输入手机号的额外验证规则。
内容的提问来源于stack exchange,提问作者Felix Christo
相关产品推荐
相关产品推荐

