diff --git a/alipay_kit/lib/src/alipay_kit_method_channel.dart b/alipay_kit/lib/src/alipay_kit_method_channel.dart index 6c9bd82..b6033bc 100644 --- a/alipay_kit/lib/src/alipay_kit_method_channel.dart +++ b/alipay_kit/lib/src/alipay_kit_method_channel.dart @@ -50,12 +50,14 @@ class MethodChannelAlipayKit extends AlipayKitPlatform { Future pay({ required String orderInfo, bool isShowLoading = true, + bool sandbox = false /// 沙箱模式 }) { return methodChannel.invokeMethod( 'pay', { 'orderInfo': orderInfo, 'isShowLoading': isShowLoading, + 'sandbox': sandbox, }, ); } diff --git a/alipay_kit/lib/src/alipay_kit_platform_interface.dart b/alipay_kit/lib/src/alipay_kit_platform_interface.dart index d5faf51..0c27c59 100644 --- a/alipay_kit/lib/src/alipay_kit_platform_interface.dart +++ b/alipay_kit/lib/src/alipay_kit_platform_interface.dart @@ -47,6 +47,7 @@ abstract class AlipayKitPlatform extends PlatformInterface { Future pay({ required String orderInfo, bool isShowLoading = true, + bool sandbox = false /// 沙箱模式 }) { throw UnimplementedError( 'pay({required orderInfo, isShowLoading}) has not been implemented.'); @@ -55,9 +56,11 @@ abstract class AlipayKitPlatform extends PlatformInterface { /// 登录 Future auth({ required String authInfo, - bool isShowLoading = true, + bool isShowLoading = true }) { throw UnimplementedError( 'auth({required info, isShowLoading}) has not been implemented.'); } + + } diff --git a/alipay_kit_android/android/src/main/java/io/github/v7lin/alipay_kit/AlipayKitPlugin.java b/alipay_kit_android/android/src/main/java/io/github/v7lin/alipay_kit/AlipayKitPlugin.java index c8217e5..7c51865 100644 --- a/alipay_kit_android/android/src/main/java/io/github/v7lin/alipay_kit/AlipayKitPlugin.java +++ b/alipay_kit_android/android/src/main/java/io/github/v7lin/alipay_kit/AlipayKitPlugin.java @@ -8,6 +8,7 @@ import androidx.annotation.NonNull; +import com.alipay.sdk.app.EnvUtils; import com.alipay.sdk.app.AuthTask; import com.alipay.sdk.app.PayTask; @@ -88,14 +89,19 @@ public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) { } else if ("pay".equals(call.method)) { final String orderInfo = call.argument("orderInfo"); final boolean isShowLoading = call.argument("isShowLoading"); + final boolean sandbox = call.argument("sandbox"); final WeakReference activityRef = new WeakReference<>(activity); final WeakReference channelRef = new WeakReference<>(channel); + //noinspection deprecation new AsyncTask>() { @Override protected Map doInBackground(String... params) { final Activity activity = activityRef.get(); if (activity != null && !activity.isFinishing()) { + if(sandbox){ + EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX); + } final PayTask task = new PayTask(activity); return task.payV2(orderInfo, isShowLoading); }