微信支付 请求跟返回值的接收 微信支付也是发送广播,如果你们还有需求判断支付成功或者失败,可以在广播的intent中进行传参
/**
* 微信支付回调Activity
* @author ansen
* @create time 2015-08-29
*/
public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler{
private IWXAPI wxAPI;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
wxAPI = WXAPIFactory.createWXAPI(this, WeiXinPresenter.APP_ID);
wxAPI.handleIntent(getIntent(), this);
}
@Override
protected void onNewIntent(Intent intent){
super.onNewIntent(intent);
setIntent(intent);
wxAPI.handleIntent(intent, this);
}
@Override
public void onReq(BaseReq arg0) {
}
@Override
public void onResp(BaseResp resp) {
MLog.i("微信支付回调..", "ansen onResp");
if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX){//微信支付回调
if(resp.errCode==BaseResp.ErrCode.ERR_OK){//微信支付成功
Intent intent = new Intent();
intent.setAction(APIDefineConst.BROADCAST_ACTION_WEIXIN_PAY);
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this);
lbm.sendBroadcast(intent);
//成功
// Toast.makeText(this,R.string.wxpay_success, 0).show();
}else{
// Toast.makeText(this,R.string.wxpay_success, 0).show();
}
}
finish();
}
}
强调一点,一定要注意 接收微信的请求及返回值 的包名跟类名,包名是应用程序的包名+".wxapi" 类名必须是微信指定的类名 并且这两个Activity一定要在AndroidManifest.xml中注册,上传一张是我做的app中包名跟类名的截图

如何在activity中调用微信登陆
1).登陆广播监听内部类 如果接收到了广播就去获取微信token
private class WXEntryReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent){
MLog.i("WXEntryReceiver", "接收微信登陆广播");
if(MLog.debug)
showToast("接收微信登陆广播");
if(intent.getAction().equals(APIDefineConst.BROADCAST_ACTION_WEIXIN_TOKEN)){
int errCode = intent.getExtras().getInt("errCode");
if(MLog.debug)
System.out.println("获取错误码:"+errCode);
if(errCode==BaseResp.ErrCode.ERR_USER_CANCEL||errCode==BaseResp.ErrCode.ERR_AUTH_DENIED){
requestDataFinish();
}else{
String code = intent.getExtras().getString("code");
xinTestPresenter.getAccessToken(code);
}
}
}
}










