微信支付接入
首先,在android/src/main/java
@Override
public String getName() {
return "AliPay";
}
@SuppressLint("HandlerLeak")
private Handler mHandler = new Handler(Looper.getMainLooper()) {
@SuppressWarnings("unised")
public void handleMessage(Message msg) {
switch (msg.what){
case SDK_PAY_FLAG: {
@SuppressWarnings("unchecked")
PayResult payResult = new PayResult((Map) msg.obj);
String resultInfo = payResult.getResult();
String resultStatus = payResult.getResultStatus();
AliPay.promise.resolve(resultStatus);
break;
}
default:
break;
}
}
};
@ReactMethod
public void payV2(String orderInfo, Promise promise) {
AliPay.promise = promise;
final Runnable payRunnable = new Runnable() {
@Override
public void run() {
PayTask alipay = new PayTask(getCurrentActivity());
Map result = alipay.payV2(orderInfo, true);
Log.i("msp", result.toString());
Message msg = new Message();
msg.what = SDK_PAY_FLAG;
msg.obj = result;
mHandler.sendMessage(msg);
}
};
Thread payThread = new Thread(payRunnable);
payThread.start();
}
}
新增 PayResult.java
package com.xxx.pay.alipay;
import java.util.Map;
import android.text.TextUtils;
public class PayResult {
private String resultStatus;
private String result;
private String memo;
public PayResult(Map rawResult) {
if (rawResult == null) {
return;
}
for (String key : rawResult.keySet()) {
if (TextUtils.equals(key, "resultStatus")) {
resultStatus = rawResult.get(key);
} else if (TextUtils.equals(key, "result")) {
result = rawResult.get(key);
} else if (TextUtils.equals(key, "memo")) {
memo = rawResult.get(key);
}
}
}
@Override
public String toString() {
return "resultStatus={" + resultStatus + "};memo={" + memo
+ "};result={" + result + "}";
}
public String getResultStatus() {
return resultStatus;
}
public String getMemo() {
return memo;
}
public String getResult() {
return result;
}
}
在pay下面的PayPackage中添加配置
import com.reactnativepay.pay.alipay.AliPay;
// ...other code
modules.add(new AliPay(reactContext)); // alipay
// ...other code