9e13566e8bdffa86e238ac6fff065bfd57e89e38.svn-base 3.98 KB
/*
 * 官网地站:http://www.ShareSDK.cn
 * 技术支持QQ: 4006852216
 * 官方微信:ShareSDK   (如果发布新版本的话,我们将会第一时间通过微信将版本更新内容推送给您。如果使用过程中有任何问题,也可以通过微信与我们取得联系,我们将会在24小时内给予回复)
 *
 * Copyright (c) 2013年 ShareSDK.cn. All rights reserved.
 */

package com.ivt.android.me.wxapi;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

import com.ivt.android.me.bean.WXUserEntity;
import com.ivt.android.me.bean.evenbus.CodeBean;
import com.ivt.android.me.constant.BaseInfo;
import com.ivt.android.me.constant.CodeUtils;
import com.ivt.android.me.utils.httputil.HttpUtils.HttpCallback;
import com.ivt.android.me.utils.httputil.JsonUtils;
import com.ivt.android.me.utils.publics.MyToastUtils;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
import com.tencent.mm.sdk.constants.ConstantsAPI;
import com.tencent.mm.sdk.modelbase.BaseReq;
import com.tencent.mm.sdk.modelbase.BaseResp;
import com.tencent.mm.sdk.modelmsg.SendAuth;
import com.tencent.mm.sdk.openapi.IWXAPI;
import com.tencent.mm.sdk.openapi.IWXAPIEventHandler;
import com.tencent.mm.sdk.openapi.WXAPIFactory;

import de.greenrobot.event.EventBus;

/** 微信客户端回调activity示例 */
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {

	private IWXAPI api;
	private CodeBean codes = new CodeBean();

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		api = WXAPIFactory.createWXAPI(this, BaseInfo.WEIXIN_APP_ID, false);
		api.handleIntent(getIntent(), this);
	}

	@Override
	public void onReq(BaseReq arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void onResp(BaseResp arg0) {
		// TODO Auto-generated method stub
		switch (arg0.errCode) {
		case BaseResp.ErrCode.ERR_OK:

			if (arg0.getType() == ConstantsAPI.COMMAND_SENDMESSAGE_TO_WX) {
				BaseInfo.IsliveShare = false;
				Toast.makeText(this, "分享成功", Toast.LENGTH_LONG).show();
				this.finish();
			} else if (arg0.getType() == ConstantsAPI.COMMAND_SENDAUTH) {
				String code = ((SendAuth.Resp) arg0).code;
				GetWeiopenid(code);
			}
//			if (BaseInfo.IsliveShare) {
//				BaseInfo.IsliveShare = false;
//				this.finish();
//			} else {
//
//			}
			break;
		case -6:
			codes.setCode(CodeUtils.LOGINWEIXINFA);
			EventBus.getDefault().post(codes);
			MyToastUtils.showToast(this, "不是正式环境");
			this.finish();
			break;

		case -2:
			codes.setCode(CodeUtils.LOGINWEIXINFA);
			EventBus.getDefault().post(codes);
			// MyToastUtils.showToast(this, "取消分享");
			this.finish();
			break;

		default:
			codes.setCode(CodeUtils.LOGINWEIXINFA);
			EventBus.getDefault().post(codes);
			this.finish();
			break;
		}
	}

	/**
	 * 获取微信信息
	 * 
	 */
	private void GetWeiopenid(String code) {
		HttpMethod requestMethod = HttpMethod.GET;
		String requestUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid="

//				+ "wxa249cfc8d884386e"
				+ "wx25baeb3cd821bac2"
				+ "&secret="
//				+ "4c13b114eb9c416b70b0102a87fd5632"
				+ "9fcb3ea4a0be054f924dd1ea506a0d0d"
				+ "&code="
				+ code
				+ "&grant_type=authorization_code";
		com.ivt.android.me.utils.httputil.HttpUtils.get(requestUrl, new HttpCallback() {
			@Override
			public void onSuccess(String data) {
				// TODO Auto-generated method stub
				WXUserEntity userb = JsonUtils.deserialize(data,
						WXUserEntity.class);
				String access_token = userb.getAccess_token();
				String openid = userb.getOpenid();
				codes.setOther(openid);
				codes.setCode(CodeUtils.LOGINWEIXINSU);
				EventBus.getDefault().post(codes);
				WXEntryActivity.this.finish();
			}

			@Override
			public void onError(String msg) {
				// TODO Auto-generated method stub
				super.onError(msg);
				codes.setCode(CodeUtils.LOGINWEIXINFA);
				EventBus.getDefault().post(codes);
				WXEntryActivity.this.finish();
			}
		});
	}
}