1
0
Code Issues Pull Requests Packages Projects Releases Wiki Activity GitHub Gitee

feat(android): 在Android 端实现支付。

This commit is contained in:
jaywcjlove 2020-07-07 22:46:38 +08:00
parent 98f50d4d5a
commit 24180c67d6
4 changed files with 46 additions and 3 deletions

View File

@ -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) {

Binary file not shown.

View File

@ -1,4 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.uiwjs">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
</manifest>

View File

@ -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<String, String> 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();
}
}