📅  最后修改于: 2023-12-03 15:33:25.571000             🧑  作者: Mango
Paytm是印度一家著名的支付公司,它提供了支付网关的解决方案,包括提供多种支付方式和安全的支付服务。本文将介绍如何在Android Studio中集成Paytm支付网关。
在开始开发之前,需要完成以下准备工作:
首先,您需要将Paytm SDK添加到您的项目中。您可以通过以下方式添加它:
1.打开Module级别build.gradle文件,并将以下依赖项添加到该文件中:
dependencies {
implementation 'com.paytm:pgplussdk:1.3.3'
}
2.在使用Paytm SDK之前,必须在您的AndroidManifest.xml文件中添加以下权限:
<uses-permission android:name="android.permission.INTERNET"/>
3.您还需要在AndroidManifest.xml文件中添加以下元素:
<activity
android:name="com.paytm.pgsdk.PaytmPGActivity"
android:configChanges="keyboardHidden|orientation|keyboard"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
在创建订单之前,您必须准备必要的数据来给Paytm提供:
//商家的帐户ID和商家的密钥
String merchant_id = "merchant_id";
String merchant_key = "merchant_key";
//交易金额和订单号
String amount = "10";
String orderId = "order_id_" + System.currentTimeMillis();
//客户ID、客户邮箱、客户手机号码
String customerId = "customer_id";
String customerEmail = "customer_email";
String customerPhone = "customer_phone";
//回调URL
String callbackUrl = "https://securegw.paytm.in/theia/paytmCallback?ORDER_ID=" + orderId;
接下来,您需要使用这些数据来创建一个订单请求。
PaytmPGService service = PaytmPGService.getProductionService(); //或PaytmPGService.getStagingService(),如果您希望使用Paytm的测试环境,请使用该方法。
Map<String, String> paramMap = new HashMap<>();
//中文这里加了别名
paramMap.put("商户ID", merchant_id);
paramMap.put("订单ID", orderId);
paramMap.put("金额", amount);
paramMap.put("回调URL", callbackUrl);
paramMap.put("请求EXPIRY时间", "180");
paramMap.put("请求模式", "正式");
paramMap.put("流程类型", "默认");
paramMap.put("主题", "测试");
paramMap.put("商户密钥", merchant_key);
paramMap.put("渠道ID", "WAP");
paramMap.put("行业类型 ID", "Retail");
paramMap.put("网站", "APP_PAY");
paramMap.put("请求类型", "DEFAULT");
paramMap.put("客户ID", customerId);
paramMap.put("客户邮箱", customerEmail);
paramMap.put("客户手机号码", customerPhone);
PaytmOrder order = new PaytmOrder(paramMap);
service.initialize(order, null);
service.startPaymentTransaction(this, true, true, new PaytmPaymentTransactionCallback() {
@Override
public void onTransactionResponse(Bundle inResponse) {
//处理订单支付结果
}
@Override
public void networkNotAvailable() {
//网络不可用
}
@Override
public void clientAuthenticationFailed(String inErrorMessage) {
//用户认证失败
}
@Override
public void someUIErrorOccurred(String inErrorMessage) {
//支付UI错误
}
@Override
public void onErrorLoadingWebPage(int iniErrorCode, String inErrorMessage, String inFailingUrl) {
//加载Web页面出错
}
@Override
public void onBackPressedCancelTransaction() {
//用户取消支付
}
@Override
public void onTransactionCancel(String inErrorMessage, Bundle inResponse) {
//订单取消
}
});
当用户完成Paytm支付时,Paytm将通过callbackURL发送响应,您需要在与callbackURL相同的活动中处理该响应,以便了解订单支付的结果。
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
if (bundle != null) {
for (String key : bundle.keySet()) {
Log.d(TAG, key + " - " + bundle.getString(key));
}
}
根据OrderStatus,您可以知道订单是否被支付。
String orderStatus = bundle.getString("STATUS");
if (orderStatus.equals("TXN_SUCCESS")) {
//订单被支付
} else {
//订单未被支付
}
通过本文,您已经了解了如何使用Paytm支付网关SDK在Android Studio中实现支付。希望这篇文章能够帮助您在Paytm支付网关中继续开发。