印度收款跳转UPI应用支付的实现方式解析
概述:
做印度支付的朋友都知道,无论是印度的个人UPI账户还是企业UPI账户,都支持通过构建UPI支付链接的形式动态的构建二维码让其他印度UPI应用进行扫码支付。这样充值会员在扫码之后就能直接点击按钮支付(无需再输入收款用户信息、金额)。
当然,二维码形式的支付虽然能够满足一部分PC端充值用户的需求,但如果是移动端呢。聪明的朋友可能会说,在进入支付页面之后可以截屏支付页面,再在UPI应用里面通过相册扫码的显示进行支付。这就和支付宝支付相册扫码支付一样的原理。
支付程序和支付通道供应商肯定是致力于最大程度上改善用户体验,通过二维码的方式来同样应用于移动端让会员通过相册扫码支付的方式来实现肯定不十分合理。无论是会员还是支付通道商肯定是希望能通过点击一个按钮拉起UPI应用,然后点击确认便能丝滑实现支付。
下面我们详细解析实现拉起UPI应用来实现支付的几种常见技术方式。
方式一:通过UPI URI Scheme直接拉起UPI应用
和上篇笔者上篇提到的《印度UPI支付之二维码生成规则》一样的原理,用于构建二维码的字符串同样也可以作为URI Scheme使用,通过构建一个按钮或是超链接,让用户直接点击这个构建的URI Scheme,点击之后,用户移动端设备上便会弹出一个选择UPI应用的弹窗,用户在此弹窗选择准备用于支付的UPI应用便可简单完成支付。
用于构建URI Scheme的参数解释在上一篇文章中笔者已经提到,根据文章提到的格式组织参数即可。
方式二:使用 UPI Deep Linking
如果您是一位安卓或者IOS原生APP开发者,也可以通过在您的APP上使用原生跳转来跳转到UPI应用进行支付。安卓使用Intent/IOS使用openURL。这对于原生APP开发者来说相信很简单。
以下是简单的案例代码:
安卓:Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("upi://pay?pa=merchant@upi&pn=MerchantName&am=10.00&cu=INR&tn=Order Payment"));
intent.setPackage("com.google.android.apps.nbu.paisa.user"); // 指定 Google Pay
startActivityForResult(intent, 1);
IOS:
if let url = URL(string: "upi://pay?pa=merchant@upi&pn=MerchantName&am=10.00&cu=INR") {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
方式三:通过支付网关获取Deep Link再进行跳转支付
这种方式笔者觉得有点多余,但确实是市面上主流正规应用的支付方式,通过申请官方支付网关,如:Razorpay UPI、Cashfree UPI、PayU UPI等。创建UPI支付请求,网关会返回一个支付链接,再通过JS跳转或用户点击跳转的方式跳转到UPI应用来进行支付。
个人认为,第三种支付方式毫无技术含量,就不多加介绍了。
评论
发表评论