美文网首页
Google Pay India(UPI) 印度

Google Pay India(UPI) 印度

作者: _xiangpan | 来源:发表于2020-10-09 19:23 被阅读0次

    印度市场独有的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 需要审核好几天~~~~~配置地址

    配置UPI ID

    2、测试(血的教训)

    1. 一定要下载印度版本的Google Pay~~~印度 Google Pay~~~


    image.png
    更新后的Google Pay

    2.使用正确的Google Pay 账户

     使用印度Google Pay账号一定要配置好的东西:
        1. 安装Google Pay的手机
        2. Google Pay账号
        3. 印度手机号
        4. 与该手机号绑定的能开通UPI的银行卡
        5. 手机插卡,登录Google Pay,绑定银行卡,激活UPI
    
    

    账号准备好以后,测试会非常顺溜,祝你成功


    希望可以帮助遇到同样问题的你😁😁😁😁
    如有建议和意见,请及时沟通。

    相关文章

      网友评论

          本文标题:Google Pay India(UPI) 印度

          本文链接:https://www.haomeiwen.com/subject/vhxrpktx.html