增加H5调用原生支付方法
This commit is contained in:
@@ -2,22 +2,15 @@ package com.nnbc123.core.pay;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alipay.sdk.app.PayTask;
|
||||
import com.tencent.mm.opensdk.constants.Build;
|
||||
import com.tencent.mm.opensdk.constants.ConstantsAPI;
|
||||
import com.tencent.mm.opensdk.modelbase.BaseReq;
|
||||
import com.tencent.mm.opensdk.modelbase.BaseResp;
|
||||
import com.tencent.mm.opensdk.modelbiz.WXLaunchMiniProgram;
|
||||
import com.tencent.mm.opensdk.modelpay.PayReq;
|
||||
import com.tencent.mm.opensdk.openapi.IWXAPI;
|
||||
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
|
||||
import com.tencent.mm.opensdk.openapi.WXAPIFactory;
|
||||
import com.nnbc123.xchat_android_constants.XChatConstants;
|
||||
import com.nnbc123.core.BuildConfig;
|
||||
import com.nnbc123.core.Constants;
|
||||
import com.nnbc123.core.auth.AuthModel;
|
||||
@@ -41,6 +34,16 @@ import com.nnbc123.core.pay.view.IPaymentView;
|
||||
import com.nnbc123.core.utils.net.RxHelper;
|
||||
import com.nnbc123.library.utils.ListUtils;
|
||||
import com.nnbc123.library.utils.SingleToastUtil;
|
||||
import com.nnbc123.xchat_android_constants.XChatConstants;
|
||||
import com.tencent.mm.opensdk.constants.Build;
|
||||
import com.tencent.mm.opensdk.constants.ConstantsAPI;
|
||||
import com.tencent.mm.opensdk.modelbase.BaseReq;
|
||||
import com.tencent.mm.opensdk.modelbase.BaseResp;
|
||||
import com.tencent.mm.opensdk.modelbiz.WXLaunchMiniProgram;
|
||||
import com.tencent.mm.opensdk.modelpay.PayReq;
|
||||
import com.tencent.mm.opensdk.openapi.IWXAPI;
|
||||
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
|
||||
import com.tencent.mm.opensdk.openapi.WXAPIFactory;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
@@ -61,6 +64,7 @@ public class PaymentActivity extends Activity
|
||||
|
||||
public static final int REQUEST_CODE_PAY = 1000;
|
||||
public static final String KEY_CHANNEL = "key_channel";
|
||||
public static final String KEY_TAROT_JSON = "key_tarot_json";
|
||||
public static final String KEY_CHARGE_PRODUCT_ID = "key_charge_product_id";
|
||||
public static final String KEY_PAY_RESULT = "key_pay_result";
|
||||
public static final String KEY_WANNA_GET_ORDER = "key_wanna_get_order";
|
||||
@@ -72,6 +76,13 @@ public class PaymentActivity extends Activity
|
||||
private String paymentPassword;
|
||||
private volatile IWXAPI api;
|
||||
|
||||
public static void start(Context context, String tarotJson) {
|
||||
Intent intent = new Intent(context, PaymentActivity.class);
|
||||
intent.putExtra(KEY_TAROT_JSON, tarotJson);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
|
||||
public static void startToPay(Activity context, String channel, String paymentPassword) {
|
||||
Intent intent = new Intent(context, PaymentActivity.class);
|
||||
intent.putExtra(KEY_CHANNEL, channel);
|
||||
@@ -94,6 +105,11 @@ public class PaymentActivity extends Activity
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
if (getIntent() != null) {
|
||||
String tarotJson = getIntent().getStringExtra(KEY_TAROT_JSON);
|
||||
if (!TextUtils.isEmpty(tarotJson)) {
|
||||
requestWeChatPay(tarotJson);
|
||||
return;
|
||||
}
|
||||
this.channel = getIntent().getStringExtra(KEY_CHANNEL);
|
||||
this.chargeProdId = getIntent().getStringExtra(KEY_CHARGE_PRODUCT_ID);
|
||||
this.wannaGetOrder = getIntent().getBooleanExtra(KEY_WANNA_GET_ORDER, true);
|
||||
@@ -156,6 +172,37 @@ public class PaymentActivity extends Activity
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发起充值(塔罗微信原生支付)
|
||||
*/
|
||||
@SuppressLint("CheckResult")
|
||||
public void requestWeChatPay(String tarotJson) {
|
||||
WeChatAppParam data = JSON.parseObject(tarotJson, WeChatAppParam.class);
|
||||
api = WXAPIFactory.createWXAPI(this, data.getAppId());
|
||||
api.registerApp(data.getAppId());
|
||||
api.handleIntent(getIntent(), PaymentActivity.this);
|
||||
if (!api.isWXAppInstalled()) {
|
||||
SingleToastUtil.showToast("未安装微信");
|
||||
finish();
|
||||
}
|
||||
boolean isPaySupported = api.getWXAppSupportAPI() >= Build.PAY_SUPPORTED_SDK_INT;
|
||||
if (!isPaySupported) {
|
||||
SingleToastUtil.showToast("不支持的微信版本");
|
||||
finish();
|
||||
}
|
||||
// 拉起微信,直接支付
|
||||
PayReq req = new PayReq();
|
||||
req.appId = data.getAppId();
|
||||
req.partnerId = data.getPartnerId();
|
||||
req.prepayId = data.getPrepayId();
|
||||
req.packageValue = data.getPackageValue();
|
||||
req.nonceStr = data.getNonceStr();
|
||||
req.timeStamp = data.getTimestamp();
|
||||
req.sign = data.getSign();
|
||||
api.sendReq(req);
|
||||
finish();
|
||||
}
|
||||
|
||||
/**
|
||||
* 发起充值(银联支付), 下单
|
||||
*
|
||||
|
Reference in New Issue
Block a user