【发布时间】:2021-11-03 05:04:34
【问题描述】:
在 Android 应用程序上集成 paytm 支付网关时,我陷入了一个奇怪的境地。使用 appinvokesdk。在 webview 重定向到支付网关后,我完成了支付成功,它转到 https://developer.paytm.com/txn-response 并卡住了,而不是转到 onActivityResult。
下面是我的代码。
// 应用分级
implementation 'com.paytm.appinvokesdk:appinvokesdk:1.6.0'
// 项目分级
allprojects {
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }
maven {
url "https://artifactory.paytm.in/libs-release-local"
}
}
}
// CheckoutActivity
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.i(TAG ,"onActivityResult - resultCode " + resultCode);
if (requestCode == PaytmRequestCode && data != null) {
Bundle bundle = data.getExtras();
if (bundle != null) {
for (String key : bundle.keySet()) {
Log.i(PG_TAG, key + " : " + (bundle.get(key) != null ? bundle.get(key) : "NULL"));
}
}
/*if(bundle.get("STATUS").toString().equals("TXN_SUCCESS")) {
processing_app_payment(bundle);
}*/
Log.e(PG_TAG, "data - " + data.getStringExtra("nativeSdkForMerchantMessage"));
Log.e(PG_TAG, "data response - " + data.getStringExtra("response"));
//General.showToast(mContext, data.getStringExtra("nativeSdkForMerchantMessage") + data.getStringExtra("response"));
} else {
General.showToast(mContext, "Payment Failed");
}
}
我正在打电话……
public void initializePaytmPayment(String txn_token, String callbackurl, String id, String order_ref, String net_order_total) {
String paymentUrl = "";
if(PAYTM_ENVIRONMENT.equals("TEST")) {
paymentUrl = "https://securegw-stage.paytm.in/theia/api/v1/showPaymentPage";
}
if(PAYTM_ENVIRONMENT.equals("PROD")) {
paymentUrl = "https://securegw.paytm.in/theia/api/v1/showPaymentPage";
}
PaytmOrder paytmOrder = new PaytmOrder(order_ref, PAYTM_MERCHANT_MID, txn_token, net_order_total, callbackurl);
TransactionManager transactionManager = new TransactionManager(paytmOrder, new PaytmPaymentTransactionCallback() {
@Override
public void onTransactionResponse(@Nullable @org.jetbrains.annotations.Nullable Bundle bundle) {
General.showToast(mContext, "Payment Transaction response " + bundle.toString());
}
@Override
public void networkNotAvailable() {
General.showToast(mContext, "networkNotAvailable");
}
@Override
public void onErrorProceed(String s) {
General.showToast(mContext, "onErrorProceed - " + s.toString());
}
@Override
public void clientAuthenticationFailed(String s) {
General.showToast(mContext, "clientAuthenticationFailed - " + s.toString());
}
@Override
public void someUIErrorOccurred(String s) {
General.showToast(mContext, "someUIErrorOccurred - " + s.toString());
}
@Override
public void onErrorLoadingWebPage(int i, String s, String s1) {
General.showToast(mContext, "onErrorLoadingWebPage - " + s.toString() + ", " + s1.toString());
}
@Override
public void onBackPressedCancelTransaction() {
General.showToast(mContext, "Back Pressed or Cancelled Transaction");
}
@Override
public void onTransactionCancel(String s, Bundle bundle) {
General.showToast(mContext, "onTransactionCancel - " + s.toString() + ", " + bundle.toString());
}
});
//transactionManager.setAppInvokeEnabled(false);
transactionManager.setShowPaymentUrl(paymentUrl);
transactionManager.startTransaction(this, PaytmRequestCode);
}
在付款后浏览到https://developer.paytm.com/txn-response。请看截图。
我不明白为什么会发生这种情况。请帮忙,谢谢。
【问题讨论】:
标签: android payment-gateway paytm