我正在使用 flutter hyper pay 插件为 flutter 项目实现 hyper pay 支付网关。付款流程在 IOS 设备上运行良好。它不适用于 Android 设备发布版本,但可以在调试版本上正常工作。单击订阅按钮后会出现 Ready ui 用户界面,但在我插入卡详细信息并单击 Ready ui 上的支付按钮后,它给我付款结果错误作为结帐结果错误。任何人都可以给我解决这个问题吗?
import 'package:gym_app/services/initiation/hyperpay_readyui_service.dart';
import 'package:hyperpay_plugin/flutter_hyperpay.dart';
import '../../screens/demo/hyperpay_test.dart';
import '../initiation/payment_service.dart';
import '../service_locator.dart';
class HyperPayReadyUIServiceImplementation extends HyperPayReadyUIService {
late FlutterHyperPay flutterHyperPay;
final PaymentService _paymentService = getIt<PaymentService>();
HyperPayReadyUIServiceImplementation() {
flutterHyperPay = FlutterHyperPay(
shopperResultUrl: InAppPaymentSetting.shopperResultUrl,
//paymentMode: PaymentMode.test,
paymentMode: PaymentMode.live,
lang: InAppPaymentSetting.getLang(),
);
}
@override
dynamic payRequestNowReadyUI(
{required List<String> brandsName,
required String checkoutId,
required String entityId}) async {
PaymentResultData paymentResultData;
dynamic result;
try {
paymentResultData = await flutterHyperPay.readyUICards(
readyUI: ReadyUI(
brandsName: brandsName,
checkoutId: checkoutId,
shopperResultUrl: InAppPaymentSetting.shopperResultUrl,
merchantIdApplePayIOS: InAppPaymentSetting.merchantId,
countryCodeApplePayIOS: InAppPaymentSetting.countryCode,
companyNameApplePayIOS: "9R KSA",
themColorHexIOS: "#000000", // FOR IOS ONLY
setStorePaymentDetailsMode:
false // store payment details for future use
),
);
print('payRequestReady ui');
print(paymentResultData.paymentResult);
print(paymentResultData.errorString);
if (paymentResultData.paymentResult == PaymentResult.success ||
paymentResultData.paymentResult == PaymentResult.sync) {
print(checkoutId);
result = await _paymentService.getPaymentStatus(entityId, checkoutId);
return result;
} else {
print('Redy ui result error');
return null;
}
} catch (ex) {
print('Try catch Error payRequestNowReadyUI ${ex}');
}
}
}
我已检查 api 端点是否正确并且访问令牌是否正确。检查 id 获取过程是否正常。我还仔细检查了 build.gradle 中的 android 依赖项。最初,我认为在构建要发布的应用程序时,线缩小是导致此错误的原因,因此我将
minifyEnabled false
添加到我的 build.gradle 中,但它不起作用。
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.app"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdkVersion 21
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
viewBinding {
enabled = true
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
minifyEnabled false
signingConfig signingConfigs.debug
}
}
}
flutter {
source '../..'
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation(name: "oppwa.mobile-release", ext: 'aar')
debugImplementation(name: "ipworks3ds_sdk", ext: 'aar')
releaseImplementation(name: "ipworks3ds_sdk_deploy", ext: 'aar')
implementation "com.google.android.material:material:1.6.1"
implementation "androidx.appcompat:appcompat:1.5.1"
implementation 'com.google.android.gms:play-services-wallet:19.1.0'
implementation "androidx.browser:browser:1.4.0"
implementation 'com.google.code.gson:gson:2.8.8'
implementation 'com.android.support:support-v4:29.0.0'
implementation 'com.android.support:design:29.0.0'
implementation 'com.android.support:customtabs:29.0.0'
}
你有解决办法吗? 我也面临同样的问题