📜  Android中的UPI付款集成(1)

📅  最后修改于: 2023-12-03 14:59:17.213000             🧑  作者: Mango

Android中的UPI付款集成

Unified Payments Interface(UPI)是印度国家支付公司推出的实时支付系统,旨在实现快速、安全和轻松的付款,支持从一个银行帐户转移资金到另一个银行帐户。

在Android应用程序中,可以使用UPI付款进行在线交易。以下是一些步骤和代码片段,可帮助程序员实现UPI付款集成。

步骤
  1. 首先,请确保您的应用程序已获得正确的权限,包括以下权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
  1. 在您的应用程序中集成UPI SDK。这将包括以下库:
implementation 'com.google.android.gms:play-services-wallet:16.0.1'
implementation 'com.phonepe.android:UPI:1.1'
  1. 接下来,您需要在您的应用程序中定义一个支付请求。这将包括以下参数:
String upi = "upi://pay";
String payeeAddress = "payeeaddress@upi";
String payeeName = "payeename";
String amount = "amount";
String transactionRefId = "txn-ref-id";
String currency = "INR";
String note = "note";
  1. 然后,您需要构建一个Intent对象来发起支付请求:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(upi));
intent.setPackage("com.phonepe.app");
intent.putExtra(Intent.EXTRA_SUBJECT, payeeName);
intent.putExtra("pa", payeeAddress);
intent.putExtra("pn", payeeName);
intent.putExtra("am", amount);
intent.putExtra("tr", transactionRefId);
intent.putExtra("cu", currency);
intent.putExtra("tn", note);
  1. 最后,您需要通过调用startActivityForResult()方法启动Intent。这将显示选定的付款应用程序(如PhonePe):
startActivityForResult(intent, UPI_PAYMENT);
  1. 在用户完成付款后,您将收到一个回调:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
 super.onActivityResult(requestCode, resultCode, data);
 if (requestCode == UPI_PAYMENT) {
    if ((RESULT_OK == resultCode) || (resultCode == 11)) {
        if (data != null) {
            String trxt = data.getStringExtra("response");
            Log.d("UPI", "onActivityResult: "+trxt);
            ArrayList<String> dataList = new ArrayList<>();
            dataList.add(trxt);
            upiPaymentDataOperation(dataList);
        } else {
            Log.d("UPI", "onActivityResult: "+ "Return data is null");
            ArrayList<String> dataList = new ArrayList<>();
            dataList.add("nothing");
            upiPaymentDataOperation(dataList);
        }
    } else {
        Log.d("UPI", "onActivityResult: "+ "Return data is null");
        ArrayList<String> dataList = new ArrayList<>();
        dataList.add("nothing");
        upiPaymentDataOperation(dataList);
    }
 }
}
结论

通过上述步骤, 您将能够在您的Android应用程序中集成UPI付款功能,这将帮助您的用户进行在线购买和转账。