1

我是 react-native 和支付网关的新手并创建了一个 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)}`);
    });

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

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

我的结论:当 apk 进入 RazorpayCheckout.open 函数调用应用程序崩溃时。我不知道如何调试它并在这里陷入死胡同。

4

2 回答 2

0

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

于 2020-07-07T12:38:01.963 回答
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>release 中找到 buildTypes 添加一些行

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 步相同的操作

于 2020-06-18T12:39:41.350 回答