直接上过程
1到微信开放平台下载sdk 后放到libs目录下
2在build.gradle中添加依赖
compile files('libs/libammsdk.jar')
3后台设置 将应用包名和应用签名填上即可,应用签名可以通过签名工具获取(获取签名时必须是正式打包的apk)
4注册APPI
wxapi = WXAPIFactory.createWXAPI(mContext, null);
5将该app注册到微信
wxapi.registerApp(appid);
6调起微信支付PayReq payReq = new PayReq(); payReq.appId=appid; payReq.partnerId= partnerid; payReq.prepayId = prepayid; payReq.nonceStr = noncestr; payReq.timeStamp= timestamp; payReq.packageValue="Sign=WXPay"; payReq.sign = sign; wxapi.sendReq(payReq); // finish();packageValue的值雨java关键字冲突,需要写死
7支付结果回调
在包名下建一个包命名为wxapi 将WXPayEntryActivity放到里面,在onResp()方法中做支付结果的回到处理
package com.dangshang.guangjiebuyer.wxapi; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import com.dangshang.guangjiebuyer.R; 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.openapi.IWXAPI; import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler; import com.tencent.mm.opensdk.openapi.WXAPIFactory; import activity.Order.AllOrder; import activity.SureOrderActivity; import utils.JumperUtils; import utils.ToastUtils; /** * Created by Yanchengkun on 2017/10/13. */ public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler { private IWXAPI api; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pay); api= WXAPIFactory.createWXAPI(this, SureOrderActivity.appid); api.handleIntent(getIntent(), this); api.registerApp(SureOrderActivity.appid); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); api.handleIntent(intent, this); } @Override public void onReq(BaseReq baseReq) { // api= WXAPIFactory.createWXAPI(this, SureOrderActivity.appid); api.handleIntent(getIntent(), this); } @Override public void onResp(BaseResp baseResp) { // Log.d(TAG, "onPayFinish, errCode = " + baseResp.errCode); // ToastUtils.makeTextShort(WXPayEntryActivity.this,baseResp.errCode+""); if (baseResp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) { //根据下面的errCode表中 switch一下即可 // 如果是0的话,就是成功,然后这里去服务器查询具体的支付结果,注意服务器查询的支付结果才是可靠地支付结果 // AlertDialog.Builder builder = new AlertDialog.Builder(this); // builder.setTitle("提示"); // if (baseResp.errCode==0){ // builder.setMessage("支付成功"); // }else if (baseResp.errCode==-2){ // builder.setMessage("取消支付"); // } // // builder.show(); switch (baseResp.errCode){ case 0: //WXPayEntryActivity.this.finish();//处理该界面finish,用该方法 break; case -1: break; case -2: break; } } } }