在RazorpayCheckout.open razorpay网关上对本机版本apk崩溃做出反应

时间:2019-09-17 12:36:23

标签: android react-native razorpay

我是本机和支付网关的新手,并创建了一个Android应用, 我在用     “ react”:“ 16.9.0”,     “ react-native”:“ 0.60.5”,     “ react-native-razorpay”:“ ^ 2.1.30”,

我也使用了react-native链接react-native-razorpay链接了

,导入的软件包为

从“ react-native-razorpay”导入RazorpayCheckout;

,呼叫网关为:

    RazorpayCheckout.open(options).then((data) => {
       .............
        alert(`Success: ${JSON.stringify(data)}`);
    }).catch((error) => {
        alert(`Error: ${JSON.stringify(error)}`);
    });

当我在调试模式下运行应用程序时代码有效,但是当我使用以下命令创建apk时 bundleRelease和assembleRelease。

apk可以正常工作,直到我尝试付款。

我的结论:当apk转到RazorpayCheckout.open函数时,调用应用程序崩溃。我不知道如何调试它并在这里陷入僵局。

2 个答案:

答案 0 :(得分:0)

我还面临着与取消Razor薪酬或其成功的应用程序崩溃而没有任何日志时相同的问题。

解决方案很简单:-

1步

中创建一个proguard-rules.pro文件名
android>app
that should be : android/app/proguard-rules.pro
then paste below code inside proguard-rules.pro file

-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}

-keepattributes JavascriptInterface
-keepattributes *Annotation*

-dontwarn com.razorpay.**
-keep class com.razorpay.** {*;}

-optimizations !method/inlining/*

-keepclasseswithmembers class * {
  public void onPayment*(...);
}

2步 转到android> app> build.gradle并找到buildTypes 在buildTypes> release内部添加一些行

buildTypes {
    release {
        // TODO: Add your own signing config for the release build.
        // Signing with the debug keys for now, so `flutter run --release` works.
        signingConfig signingConfigs.debug
        minifyEnabled true
        useProguard true 
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

3步

如果要在调试模式下运行APK,请执行与调试步骤2相同的操作

答案 1 :(得分:0)

我遇到了同样的问题。我只是禁用了progaurd规则。 enableProguardInReleaseBuilds = false