diff --git a/android/build.gradle b/android/build.gradle
index baca716..5b47a45 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -73,6 +73,10 @@ repositories {
dependencies {
//noinspection GradleDynamicVersion
implementation 'com.facebook.react:react-native:+' // From node_modules
+
+ // 支付宝 SDK AAR 包所需的配置
+ // implementation (name: 'alipaySdk-15.7.7-20200702160044', ext: 'aar')
+ implementation fileTree(dir: "libs", include: ["*.aar"])
}
def configureReactNativePom(def pom) {
diff --git a/android/libs/alipaySdk-15.7.7-20200702160044.aar b/android/libs/alipaySdk-15.7.7-20200702160044.aar
new file mode 100644
index 0000000..4b93f2c
Binary files /dev/null and b/android/libs/alipaySdk-15.7.7-20200702160044.aar differ
diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml
index c8c443d..e599a7b 100644
--- a/android/src/main/AndroidManifest.xml
+++ b/android/src/main/AndroidManifest.xml
@@ -1,4 +1,7 @@
+
+
+
diff --git a/android/src/main/java/com/uiwjs/AlipayModule.java b/android/src/main/java/com/uiwjs/AlipayModule.java
index 2098962..d030791 100644
--- a/android/src/main/java/com/uiwjs/AlipayModule.java
+++ b/android/src/main/java/com/uiwjs/AlipayModule.java
@@ -1,10 +1,18 @@
package com.uiwjs;
+import com.alipay.sdk.app.AuthTask;
+import com.alipay.sdk.app.PayTask;
+import com.alipay.sdk.app.EnvUtils;
+import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
+import com.facebook.react.bridge.ReadableMap;
+import com.facebook.react.bridge.WritableMap;
import com.facebook.react.bridge.Callback;
+import java.util.Map;
+
public class AlipayModule extends ReactContextBaseJavaModule {
private final ReactApplicationContext reactContext;
@@ -19,9 +27,37 @@ public class AlipayModule extends ReactContextBaseJavaModule {
return "Alipay";
}
+ // @ReactMethod
+ // public void sampleMethod(String stringArgument, int numberArgument, Callback callback) {
+ // // TODO: Implement some actually useful functionality
+ // callback.invoke("Received numberArgument: " + numberArgument + " stringArgument: " + stringArgument);
+ // }
+
@ReactMethod
- public void sampleMethod(String stringArgument, int numberArgument, Callback callback) {
- // TODO: Implement some actually useful functionality
- callback.invoke("Received numberArgument: " + numberArgument + " stringArgument: " + stringArgument);
+ public void setAlipaySandbox(Boolean isSandbox) {
+ if (isSandbox) {
+ EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX);
+ } else {
+ EnvUtils.setEnv(EnvUtils.EnvEnum.ONLINE);
+ }
}
+ @ReactMethod
+ public void alipay(final String orderInfo, final Callback promise) {
+ Runnable payRunnable = new Runnable() {
+ @Override
+ public void run() {
+ PayTask alipay = new PayTask(getCurrentActivity());
+ Map result = alipay.payV2(orderInfo, true);
+ WritableMap map = Arguments.createMap();
+ map.putString("memo", result.get("memo"));
+ map.putString("result", result.get("result"));
+ map.putString("resultStatus", result.get("resultStatus"));
+ promise.invoke(map);
+ }
+ };
+ // 必须异步调用
+ Thread payThread = new Thread(payRunnable);
+ payThread.start();
+ }
+
}