如何通过URL调用UPI支付应用程序

10
我是一名编程新手,我想创建一个HTML页面,其中有一些按钮可以调用流行的UPI支付应用程序,如谷歌支付,Paytm,PhonePe等,但我不知道如何调用这些应用程序并向它们传递URL。

upi://pay?pa=xyz@paytm&pn=Paytm%20Merchant&mc=abc&mode=02&orgid=000000&paytmqr=abcdefg&sign=abc+xyz/pqr/+stu

就像这样:

<a href="<protocol to invoke app with the upi url parameter>">
  Donate/Pay via this Payment App
</a>

我可以告诉你类似于Whatsapp这样的引用,如下:https://api.whatsapp.com/send?phone=<国家代码数字><10位手机号码> ,在验证此号码及其国家代码是否存在于WhatsApp用户列表后,可以通过该url中提供的电话号码开始聊天。

你从哪里得到的这个示例URL(UPI)? - Swetank Poddar
我注意到一些网站/移动应用程序会调用UPI支付应用程序来支付账单或充值或进行任何UPI支付,例如,我的Airtel应用程序可以调用Paytm和Google Pay向Airtel支付银行添加资金或在付款过程中使用。 - Sahyog Vishwakarma
这并不意味着他们使用URL来调用UPI。他们很可能有一个支付门户,用于启动UPI付款。没有“upi”协议。 - Swetank Poddar
在我的看法中,他们正在调用应用程序。Web只需通过询问UPI ID向UPI应用程序发出请求,但Airtel感谢应用程序只需打开我们选择的移动应用程序,无论是Google支付还是Paytm。 - Sahyog Vishwakarma
如果UPI未安装,那么它如何工作? - Shammas Pk
5个回答

24

我们可以使用锚点标签来调用UPI应用程序(GPay,PhonePay,PayTm,BHIMPay,AmazonPay或任何UPI应用程序)。

例如 -

<a href="upi://pay?pa=upiaddress@okhdfcbank&pn=JohnDoe&cu=INR">Buy Now</a>

为了进行UPI交易,我们可以使用以下字段:
字段 描述
pa 收款人地址或商家虚拟支付地址(VPA)。
pn 收款人姓名或商家名称。
mc 商家零售类别代码。
tr 交易参考ID。(特定于商家的ID。每个请求必须是唯一的。)
url 交易参考URL。
am 交易金额。(最多允许两位小数。这应该在details对象中设置,而不是supportedInstruments对象中。)
cu 货币代码。(这应该在details对象中设置,而不是supportedInstruments对象中。目前仅支持印度卢比(INR)。)
tid 由业务的支付服务提供商(PSP)生成的交易ID。
tn 交易备注。这是出现在Google Pay付款流程中的描述。(最大长度为80个字符)
gstBrkUp 货物和服务税的分项。这应该按照格式进行: "GST:金额"。
invoiceNo 发票号码。账单/发票的标识符。
invoiceDate 发票时间,采用RFC 3339格式。例如,IST时区的2017-02-15T16:20:30+05:30)。
gstIn 商家GSTIN。货物和服务税识别号。
有关支持字段的完整列表,请参阅NPCI UPI链接规范

1
如果UPI未安装,那么它如何工作? - Shammas Pk
1
实际上并不完全有效。支付后,显示“您已超过银行限额”,即使是1卢比的交易也是如此。另一方面,您可以转到gpay并手动支付,然后它就能正常工作。所以这个URL可能有问题。 - Shurvir Mori
@ShurvirMori 对于大多数情况,每笔交易的限额为1卢比,并且每天最多可以进行10笔交易。这是由银行设定的。请查看https://www.quora.com/What-is-the-solution-for-this-error-You-have-exceeded-the-maximum-transaction-amount-set-by-your-bank-z8 - Tirtharaj Ghosh
@TirtharajGhosh,1卢比的交易也无法进行。我已经尝试了1、10、50、100卢比的交易,但在GPay中无法进行,而同一家银行在PhonePay中可以正常工作。但是在GooglePay中,如果我手动尝试支付,则可以成功支付。所以这不是银行限制的问题。 - Shurvir Mori
@ShammasPk - 我认为这是故意的,经过设计的。如果链接包含am=(金额),大多数应用程序会拒绝该链接。但是,如果将带有金额的相同链接放入二维码中,并从应用程序中扫描,就会被接受。 - undefined
显示剩余4条评论

19

这段代码将在移动设备中打开所有的 UPI 应用程序。

<a href="upi://pay?pa=UPIID@oksbi&amp;pn=FNAME SNAME K&amp;cu=INR" class="upi-pay1">Pay Now !</a>

在链接中添加空格也不会破坏URL。

<a href="upi://pay?pa=UPIID@oksbi&amp;pn=JOHN BRITAS AK &amp;cu=INR" class="upi-pay1">Pay Now !</a>

2
非常感谢您,您能告诉我可以在URL中使用哪些参数,例如名称、消息和金额吗? - Sahyog Vishwakarma
1
您在此链接中输入的 UPI ID 是否与 Google Pay UP ID 相同?如果是,则可能无法在您的手机上使用。这将在其他人的手机上工作。此问题仅存在于 Google Play 上。 - AdDev
1
创建与您朋友的 UPI ID 的链接。之后在您的设备上点击此链接。然后您的 Google Pay 应用程序弹出窗口将正常工作! - AdDev
它是否也有账号和IFSC组合?而不是UPI ID。 - Yashwardhan Pauranik
2
使用链接进行付款仅适用于商家 UPI(在 PhonePe Business 上测试),而不适用于普通 UPI。 - Chintan Patel
显示剩余18条评论

2
我知道我回答晚了,但如果你想在按钮点击时打开特定的 UPI 应用程序,这绝对可以帮到你。
你可以按照上面提到的方法进行操作,稍作修改即可。
以下是各个 UPI 应用程序的包名列表:
- Google Pay (tez://upi/pay) - PhonePe (phonepe://pay) - 等等...
你可以嵌入一个新链接,如下所示: phonepe://pay?pa=upiaddress@okhdfcbank&pn=JohnDoe&cu=INR
这将打开该应用程序,而不是列出所有的 UPI 应用程序。
注意:
iOS 和 Android 应用程序的包深度链接可能会有所不同。

2
我正在使用UPI链接并从中创建QR码以进行扫描和付款功能。我不知道它是否对其他人有帮助,但如果有人使用Google Pay,则可以使用。
upi://pay?pa=${upiId}&pn=%20&tr=%20&am=${amount}&cu=INR

对于其他 UPI 应用程序,如 PhonePe、Paytm、Amazon Pay,所需参数为:

pa - vpa id 
am - amount(required, only if you want to receive a particular amount)

例如:

upi://pay?pa=${upiId}&am=${amount}&cu=INR

但是对于Google Pay,您还需要通过验证。

pn= which is merchant name 
tr= transaction id 

注意:如果您不知道商家名称和交易ID,可以将其留空,例如&pn=%20&tr=%20

这对我起作用了。


一切都正常运作,但当您付款时,他们会以“超过限制”或“不支持的付款方式”为由拒绝。 - undefined

0

此程序仅适用于商户账户。 您必须通过参数传递商户代码才能完成支付,否则将失败


1
请问您能提供更多信息吗?因为我的商户ID无法正常工作,我的意思是应用程序打开了GPAY和PAYTM,但交易失败了。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接