android - 在paytm阶段环境中付款后android webview转到https://developer.paytm.com/txn-response
问题描述
我陷入了一个奇怪的境地,同时在 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"
}
}
}
// 结帐活动
@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);
}
完成支付 webview 后转到https://developer.paytm.com/txn-response。请看截图。
我不明白为什么会发生这种情况。请帮助,谢谢提前。
解决方案
您可以尝试根据支付网关的文档检查交易后的响应(使用测试 url),调用或处理可以附加到 POST 方法,因此结果中必须有一个回复您应该使用 GUI 在您的应用程序中进行管理,请查看https://developer.paytm.com/docs/authenticate-subscription/
推荐阅读
- php - TYPO3 中的数据库迁移
- sql-server - TSQL:计算离散时间序列的线性加权(移动)平均值
- javascript - 如何仅第一次调用函数 - JavaScript
- java - 从另一个类访问方法,NullPointerException
- python-3.6 - Python Selenium Webdriver 等到元素被加载
- javascript - Promise.all 中的多个 fetch() - 哪一个失败了?
- java - 如何在java中制作频率直方图
- arrays - 为什么在 Octave 中比较矩阵不被评估为布尔值?
- python - Numpy dot() 函数等效
- python-3.x - 如何按原样列出类属性?