最近項目用到微信支付,企業打款到我的微信帳戶餘額,須要我的在提交結算時受權微信登錄,以獲取openid,用於企業打款,許久沒有擼微信第三方的我嚇得趕忙把流程都記錄一下api
上圖基本都是資料填寫,申請支付權限,話就很少說了,下面先開始微信受權登陸吧bash
1.在AndroidManifest 裏面WXEntryActivity註冊 此處注意實在報名下新建 wxapi文件夾 再新建 WXEntryActivity微信
2.WXEntryActivity的代碼ide
public class WXEntryActivity extends BaseActivity implements IWXAPIEventHandler {post
private IWXAPI wxAPI;微信支付
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LogUtil.e("TAG","來了");
//接收到登陸的intent傳遞handleIntent方法,處理結果
wxAPI = WXAPIFactory.createWXAPI(this,Constants.APPID,true);
wxAPI.registerApp(Constants.APPID);
wxAPI.handleIntent(getIntent(), this);
}
@Override
protected void onNewIntent(Intent intent){
super.onNewIntent(intent);
wxAPI.handleIntent(getIntent(),this);
LogUtil.e("TAG","WXEntryActivity onNewIntent");
}
@Override
public void onReq(BaseReq arg0) {
LogUtil.e("ansen","WXEntryActivity onReq:"+arg0);
}
@Override
public void onResp(BaseResp resp){
if(resp.getType()==ConstantsAPI.COMMAND_SENDAUTH){//登錄
LogUtil.e("TAG", "微信登陸操做.....");
SendAuth.Resp authResp = (SendAuth.Resp) resp;
WeiXin weiXin=new WeiXin(1,resp.errCode,authResp.code);
EventBus.getDefault().post(weiXin);
}
finish();
}
複製代碼
}this
3.在須要微信受權登陸的activity或者fragment裏面 :
private IWXAPI iwxapi;
在onCreate 初始化initView 再在裏面
iwxapi = WXAPIFactory.createWXAPI(getActivity(),Constants.APPID, true);
iwxapi.registerApp(Constants.APPID);
如圖:spa
4.點擊受權時調取toWxLogn:3d
5.在WXEntryActivity 能夠看出我用的是eventbus 將數據回傳的,因此下面須要定義接收code
6.獲取受權再獲取openid
7.補充兩個實體類
OK,到此微信受權登陸 獲取openId就結束了,微信支付還在擼碼中,好了以後再整理一下。