直接上過程
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; } } } }