Return 导航在 Razorpay 支付网关的钱包中不起作用

Return navigation is not working in wallets for Razorpay payment gateway

我已经使用 RazorPay Android SDK 作为我产品的支付网关。我已经按照他们描述的那样实施了正确的代码,该代码在卡支付的实时模式下运行良好。但是像 PhonePe 和 GPay 这样的钱包会出现问题。

问题是当用户选择任何钱包时,它会以适当的金额浏览钱包。然后用户可以从 RazorPay 仪表板中填充的钱包中支付金额。但是在从钱包支付金额后,流程会自动导航到我的应用程序的支付页面,我在该页面上实现了 RazorPay onSuccess 和 onFailour 方法,而不是支付流程停留在钱包本身,所以我无法使用更新我的服务器付款详情,也无法更新付款 UI。

我已在下面添加了我为付款实施的代码。

chackout = new Checkout();
    chackout.setKeyID(razorpayKey);
    try {
        JSONObject options = new JSONObject();
        options.put("name", "Company");
        options.put("description", "Advance for "+mBookings.getPartyName());
        options.put("currency", "INR");
        options.put("amount", finalAdvAmount);
        options.put("send_sms_hash",true);

        JSONObject preFill = new JSONObject();
        preFill.put("email", ud.getUserMailId());
        preFill.put("contact", mBookings.getBookingPersonPhoneNumber());
        options.put("prefill", preFill);

        chackout.open(this, options);
    } catch (Exception e) {
        AppUtils.showSnackBar(this, "There is some issues when starting payment. Please try 
         after sometimes");

    }

我还实现了 PaymentResultWithDataListener,通过它我也可以处理 onSuccessonFailour 方法。

有人遇到过同样的问题吗?

您提供的代码无关紧要;回调监听器才是最重要的。在 Activity(您也没有提供)中注册这些回调时,当前显示的 Fragment 并不重要。您所需要的只是 ActivityNavController 的句柄 - 以便它可以在回调时导航。最终你需要检查显示的是哪个 Fragment - 然后只触发相应的 NavAction - 因为并非每个 NavAction 都不适用于每个 Fragment (除非全局) .

经过长时间的努力,我得到了工作正常的答案。要使用任何钱包,如 phonePe 或 GPay,我们需要在清单中使用 <queries> 和它们的包,并使用适当的导航意图。 如下所示:

<queries>
    <!--google pay-->
    <package android:name="com.google.android.apps.nbu.paisa.user"/>
    <!--phonePe-->
    <package android:name="com.phonepe.app"/>
    <intent>
        <action android:name="android.intent.action.SEND"/>

    </intent>
    <intent>
        <action android:name="com.google.android.youtube.api.service.START" />
    </intent>
</queries>