印度市场是独一无二的UPI 实现Google Pay
一、官网地址(科学上网)
官方对接文档 https://developers.google.com/pay/india/api/android/googlepay-business 官方Dome–GitHub地址 https://github.com/googletez/inapp-payment-samples
二、实现主代码(集成简单)
String GOOGLE_PAY_PACKAGE_NAME = "com.google.android.apps.nbu.paisa.user"; int GOOGLE_PAY_REQUEST_CODE = 123; Uri uri = new Uri.Builder() .scheme("upi") .authority("pay") .appendQueryParameter("pa", "your-merchant-vpa@xxx") .appendQueryParameter("pn", "your-merchant-name") .appendQueryParameter("mc", "your-merchant-code") .appendQueryParameter("tr", "your-transaction-ref-id") .appendQueryParameter("tn", "your-transaction-note") .appendQueryParameter("am", "your-order-amount") .appendQueryParameter("cu", "INR") .appendQueryParameter("url", "your-transaction-url") .build(); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(uri); intent.setPackage(GOOGLE_PAY_PACKAGE_NAME); activity.startActivityForResult(intent, GOOGLE_PAY_REQUEST_CODE);
Uri uri = new Uri.Builder() .scheme("upi") .authority("pay") .appendQueryParameter("pa", "您的商家-vpa@xxx") ////用户支付的账户 .appendQueryParameter("pn", "您的商家名称") // 支付显示的名称 .appendQueryParameter("mc", "您的商业代码") .appendQueryParameter("tr", "您的交易参考号")// 理解为订单ID .appendQueryParameter("tn", "您的交易记录") .appendQueryParameter("am", "您的订单-amoun") // 交易金额 .appendQueryParameter("cu", "INR") //固定 .appendQueryParameter("url", "您的交易网站") .build();
支付错误的原因 Google Pay会自己显示 支付错误数据 txnId=&responseCode=ZD&Status=FAILURE&txnRef=123456789 支付成功数据 txnId=ICI5749db96b6ed47f1bc469c80981f9387&responseCode=0&Status=SUCCESS&txnRef=123456789 private void googlePayResult(Intent data){ if (data != null) { String response = data.getStringExtra("response"); Map<String,String> payMap = new HashMap<>(); if (!TextUtils.isEmpty(response)){ String[] responses = response.split("&"); for (int i=0;i<responses.length;i ){ String[] re = responses[i].split("="); if (re.length == 2){ payMap.put(re[0],re[1]); } } } String status = payMap.get("Status"); if (!TextUtils.isEmpty(status) && TextUtils.equals("success", status.toLowerCase())) { String txnId = payMap.get("txnId"); String orderId = payMap.get("txnRef"); Logger.logE("google_pay==== success"); //TODO 去后台检查金额 ToastUtils.showSystemToast(R.string.wallet_pay_succ_tips); } else { showFinalFailDialog(""); } } else { showFinalFailDialog(""); } }
三、遇到坑(最难解决的卡)
1、配置Google Pay for Business
先决条件 必须接受商业渠道UPI并经NPCI /银行验证为商家。 确保你在银行使用UPI ID接受付款所需的详细信息。 确保你拥有银行提供的所有必要的API,检查付款状态。 请注意,每笔交易都应该使用唯一的交易ID。
一定要有权提前配置好自己UPI ID 需要审核几天~~~~~配置地址
2.测试(血的教训)
~印度 Google Pay~
使用印度Google Pay账户必须配置好: 1. 安装Google Pay的手机 2. Google Pay账号 3. 印度手机号 4. 绑定到手机号码的可以打开UPI的银行卡 5. 手机插卡,登录Google Pay,激活绑定银行卡UPI
账号准备好以后,测试会非常顺溜,祝你成功
希望能帮助你遇到同样的问题。 如有建议和意见,请及时沟通。