最近项目用到微信支付,企业打款到个人微信账户余额,需要个人在提交结算时授权微信登陆,以获取openid,用于企业打款,许久没有撸微信第三方的我吓得赶紧把流程都记录一下
上图基本都是资料填写,申请支付权限,话就不多说了,下面先开始微信授权登录吧
1.
在AndroidManifest 里面WXEntryActivity注册 此处注意实在报名下新建 wxapi文件夹 再新建 WXEntryActivity
2.WXEntryActivity的代码
public class WXEntryActivity extends BaseActivity implements IWXAPIEventHandler {
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();
}
}
3.在需要微信授权登录的activity或者fragment里面 :
private IWXAPI iwxapi;
在onCreate 初始化initView 再在里面
iwxapi = WXAPIFactory.createWXAPI(getActivity(),Constants.APPID, true);
iwxapi.registerApp(Constants.APPID);
如图:
4.点击授权时调取toWxLogn:
5.在WXEntryActivity 可以看出我用的是eventbus 将数据回传的,所以下面需要定义接收
6.获取授权再获取openid
7.补充两个实体类
OK,到此微信授权登录 获取openId就结束了,微信支付还在撸码中,好了之后再整理一下。