【问题标题】:After payment in paytm stage environment android webview goes to https://developer.paytm.com/txn-response在paytm阶段环境中付款后android webview转到https://developer.paytm.com/txn-response
【发布时间】: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


    【解决方案1】:

    您可以尝试根据支付网关的文档检查交易后的响应(使用测试 url),调用或处理可以附加到 POST 方法,因此必须有一个回复您应该在应用程序中管理的结果可能使用 GUI,检查 https://developer.paytm.com/docs/authenticate-subscription/

    【讨论】:

    • 我正在正确地获得签名和校验和,并且由于initialTransaction api而获得响应代码为0000(成功)的txnToken,进程从developer.paytm.com/docs/all-in-one-sdk开始问题是在我没有得到响应之后,之前此 webview 转到 developer.paytm.com/txn-response(从控制台找到的 URL)。
    • 好的,如果有管理员的仪表板,你能看到交易成功还是失败?如果成功,您应该编程重定向回主屏幕,或者重定向到不同的屏幕或小部件(我猜是出于用户体验的目的)
    猜你喜欢
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 2018-01-07
    • 2013-12-31
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    相关资源
    最近更新 更多