Android调用微信登陆、分享、支付

2019-12-10 19:36:20于海丽

微信登陆以及分享 请求跟返回值的接收   我这边登陆.分享的状态都是发送广播出去,然后结束当前的Activity.

/** 
 * 微信登陆分享回调Activity 
 * @author ansen 
 * @create time 2015-05-25 
 */ 
public class WXEntryActivity extends Activity implements IWXAPIEventHandler{ 
  private IWXAPI wxAPI; 
   
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if(MLog.debug) 
      System.out.println("WXEntryActivity onCreate"); 
     
    wxAPI = WXAPIFactory.createWXAPI(this,WeiXinPresenter.APP_ID,true); 
    wxAPI.registerApp(WeiXinPresenter.APP_ID); 
     
    wxAPI.handleIntent(getIntent(), this); 
  } 
  @Override 
  protected void onNewIntent(Intent intent){ 
    super.onNewIntent(intent); 
    wxAPI.handleIntent(getIntent(),this); 
    if(MLog.debug) 
      System.out.println("WXEntryActivity onNewIntent"); 
  } 
  @Override 
  public void onReq(BaseReq arg0) { 
    if(MLog.debug) 
      System.out.println("WXEntryActivity onReq:"+arg0); 
    if(MLog.debug) 
      Toast.makeText(this, "onReq 方法运行", 0).show(); 
  }  
  @Override 
  public void onResp(BaseResp resp){ 
    MLog.d("ansen", "onResp....."); 
    if(MLog.debug) 
      Toast.makeText(this,"onResp 方法运行", 0).show(); 
    if(resp.getType()==ConstantsAPI.COMMAND_SENDMESSAGE_TO_WX){//分享 
      switch (resp.errCode){ 
      case BaseResp.ErrCode.ERR_OK: 
          if(MLog.debug) 
            Toast.makeText(WXEntryActivity.this, "分享成功!", Toast.LENGTH_SHORT).show(); 
        break; 
      case BaseResp.ErrCode.ERR_USER_CANCEL: 
//        Toast.makeText(WXEntryActivity.this, "分享取消!", Toast.LENGTH_SHORT).show(); 
        break; 
      case BaseResp.ErrCode.ERR_AUTH_DENIED: 
         
        break; 
      } 
      Intent intent = new Intent(); 
      intent.setAction(APIDefineConst.BROADCAST_ACTION_WEIXIN_SHARE); 
        LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this); 
        lbm.sendBroadcast(intent); 
    }else if(resp.getType()==ConstantsAPI.COMMAND_SENDAUTH){//登陆发送广播 
        SendAuth.Resp authResp = (Resp) resp; 
      String code = authResp.code; 
      Intent intent = new Intent(); 
      intent.setAction(APIDefineConst.BROADCAST_ACTION_WEIXIN_TOKEN); 
      intent.putExtra("errCode", authResp.errCode); 
      if (authResp.errCode == BaseResp.ErrCode.ERR_OK){//用户同意 
          intent.putExtra("code", code); 
      }   
        if(MLog.debug) 
          Toast.makeText(this, "WXEntryActivity 发送登陆广播!!!!", 0).show(); 
        if (android.os.Build.VERSION.SDK_INT >= 12) { 
           intent.setFlags(32);//3.1以后的版本需要设置Intent.FLAG_INCLUDE_STOPPED_PACKAGES 
        } 
        LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(this); 
        lbm.sendBroadcast(intent); 
    } 
    finish(); 
  } 
}