此方法为后台生产预付款信息前段调取支付
话不多说直接上代码:
public void toPayWeChat(Context mContext, PayReq mRequest) {
IWXAPI msgApi = WXAPIFactory.createWXAPI(mContext, null);
boolean isRegister = msgApi.registerApp(AppConfig.APP_ID);
msgApi.sendReq(mRequest);
}
public PayReq WxOrderInfo(WxPayBean mBeen) {
PayReq payReq = new PayReq();
if (mBeen != null) {
payReq.appId = mBeen.getAppid();
payReq.partnerId = mBeen.getPartnerid();
payReq.prepayId = mBeen.getPrepayid();
payReq.nonceStr = mBeen.getNoncestr();
payReq.timeStamp = mBeen.getTimestamp();
payReq.packageValue = mBeen.getPackageX();
payReq.sign = mBeen.getSign();
return payReq;
}
return null;
}
从后台获取一个预支付信息mBeen,直接使用toPayWeChat(this,WxOrderInfo(mBeen))调取微信支付。
关于许多同学说微信测试必须要正式签名打包才能使用,在Android studio上开发也是可以解决的,android studio开发debug包他默认了一个keystore,只需把这个默认路径修改为正式签名文件,就可调取微信,方法:
android {
compileSdkVersion 25
buildToolsVersion “25.0.2”
defaultConfig {
minSdkVersion 18
targetSdkVersion 25
versionCode 1
versionName "1"
}
signingConfigs {
debug {
storeFile file("正式签名文件")//keystore的路径 测试环境调取微信
storePassword "签名密码"
keyAlias "别名"
keyPassword "别名密码"
}
}
}