美文网首页
微信授权登录WXPayEntryActivity不回调问题

微信授权登录WXPayEntryActivity不回调问题

作者: 谁动了我的奶酪_9f00 | 来源:发表于2020-11-09 17:31 被阅读0次

集成微信授权登录时,遇到WXPayEntryActivity不回调问题。需要注意以下几个问题。
(1)WXPayEntryActivity名称不可以改变。
(2)对于package name 和applicationId不一样的。需要在创建和applicationId相同的文件目录。

<activity
    android:name="${applicationId}.wxapi.WXEntryActivity"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:exported="true"
    android:taskAffinity="${applicationId}"
    android:launchMode="singleTask">
</activity>

(3)对于多个不同的applicationId的。首先想到可以建立多个文件夹,然后在不同文件夹中放WXPayEntryActivity,并且继承统一的基类,在基类中处理回调。但是太麻烦了。
可以使用 activity-aliastargetActivity 属性。如下面代码所示。真正处理的是PbWXEntryHandleActivity,可以放在任意文件夹。“${applicationId}.wxapi.WXEntryActivity“只是个名称,不需要创建对应类。

<!--微信授权登录回调-->
<activity
    android:name=".wxapi.PbWXEntryHandleActivity"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:exported="true"
    android:taskAffinity="${applicationId}"
    android:launchMode="singleTask">
</activity>

<activity-alias
    android:name="${applicationId}.wxapi.WXEntryActivity"
    android:exported="true"
    android:screenOrientation="portrait"
    android:targetActivity=".wxapi.PbWXEntryHandleActivity"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:taskAffinity="${applicationId}"
    />

顺便给出PbWXEntryHandleActivity 的代码。

/**
 * Time:2020/10/23
 * Author:
 * Description: 微信回调的activity
 */
public class PbWXEntryHandleActivity extends Activity implements IWXAPIEventHandler {
    private static String TAG = "WXPbLogin";
    private IWXAPI api;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //替换为正确的wxAppId
        String wxAppID ="wx1234567890";
        api = WXAPIFactory.createWXAPI(this, wxAppID, true);
        try {
            Intent intent = getIntent();
            api.handleIntent(intent, this);
        } catch (Exception e) {
            e.printStackTrace();
        }
        Log.d(TAG, "onCreate: ");
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        api.handleIntent(intent, this);
        Log.d(TAG, "onNewIntent: ");
    }

    @Override
    public void onReq(BaseReq req) {
    
    }

    @Override
    public void onResp(BaseResp resp) {
        Log.d(TAG, "onResp: ");
        int result = 0;
        switch (resp.errCode) {
        case BaseResp.ErrCode.ERR_OK:
            //发送成功
            result = R.string.errcode_success;
            break;
        case BaseResp.ErrCode.ERR_USER_CANCEL:
            //发送取消
            result = R.string.errcode_cancel;
            break;
        case BaseResp.ErrCode.ERR_AUTH_DENIED:
            //发送被拒绝
            result = R.string.errcode_deny;
            break;
        case BaseResp.ErrCode.ERR_UNSUPPORT:
            //不支持错误
            result = R.string.errcode_unsupported;
            break;
        default:
            //发送返回
            result = R.string.errcode_unknown;
            break;
            }
        
        Toast.makeText(mContext, mContext.getString(result) + ", type=" + resp.getType(), Toast.LENGTH_SHORT).show();
        Log.d(TAG, "onResp: "+mContext.getString(result) + ", type=" + resp.getType());
        finish();
    }
}

相关文章

  • 微信授权登录WXPayEntryActivity不回调问题

    集成微信授权登录时,遇到WXPayEntryActivity不回调问题。需要注意以下几个问题。(1)WXPayEn...

  • 解决微信授权登陆重复回调的问题

    有个问题要记录一下,就是微信授权登录之后重复回调的问题。 微信授权的流程是这样: 1.用户在微信里打开链接A,微信...

  • 微信支付问题

    关于微信支付成功后不能成功回调WXPayEntryActivity的问题 1.检查AndroidManifest....

  • 友盟授权登录bug

    在友盟授权登录页面,如果手机打开了微信分身,有两个微信,授权登录页面点取消会不走UMAuthListener回调。...

  • 微信支付开发前准备(laravel版)

    1、配置公众号:1、微信授权登录授权域名设置,开发者中心-》功能列表-》网页授权登录2、公众号分享安全回调URL设...

  • uniapp中微信授权登录

    该开始微信授权登录可以,后来又不行了,点击微信授权登录没有反应,在设置微信登录的按钮中添加 微信授权登录 监听 g...

  • ios 微信登录授权成功后没有回调?

    做微信授权登录的时候,遇到了几个问题,现在列出来,也许对新手有帮助。 1、授权成功没有回调 首先要在AppDele...

  • php 微信授权登录 40029错误

    php 微信授权登录 40029错误 授权登录是微信高级api,个人开发可以使用微信测试账号进行开发。在授权的过程...

  • iOS微信App支付

    微信支付的难点在于微信商户平台配置数据签名 原生客户端调用微信支付非常简单,代码如下: 回调方法: 微信授权登录 ...

  • Android 开发遇到的问题列表

    待解决 1、微信登录问题,未打包时候APP微信登录回调:说的是签名错误,打包后使用APP微信登录正常 已解决 一、...

网友评论

      本文标题:微信授权登录WXPayEntryActivity不回调问题

      本文链接:https://www.haomeiwen.com/subject/qqzlbktx.html