集成微信不回调WXEntryActivity中的onReq和onResp方法

集成的详细步骤请参考:https://blog.csdn.net/qq_40803752/article/details/78616477

先说一下我遇到的问题,我是集成微信登录,微信客户端拉起来了也授权了,但是返回要应用的时候不回调WXEntryActivity中的onReq和onResp方法。

我的问题是在WXEntryActivity中没有加入这句话:

api.handleIntent(getIntent(), this);

详细代码:

public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
    private IWXAPI api;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 通过WXAPIFactory工厂,获取IWXAPI的实例
        api = WXAPIFactory.createWXAPI(this,"wx68419cafec22c652",true);
        // 将应用的appId注册到微信
        api.registerApp("wx68419cafec22c652");
        api.handleIntent(getIntent(), this);
    }

    @Override
    public void onReq(BaseReq baseReq) {
        System.out.println("-----onReq:"+baseReq.toString());
        System.out.println("-----onReq:"+baseReq.toString());
    }

    @Override
    public void onResp(BaseResp baseResp) {
        System.out.println("-----onResp:"+baseResp.toString());
        System.out.println("-----onResp:"+baseResp.toString());
    }
}

我的问题通过以上方式解决了,在这个过程中我还尝试了很多其他方法,

如:

第一种:

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

在清单文件中配置微信的activity时,要加入android:exported="true"这句话

 

第二种:

这个wxapi目录要对上,在你注册微信appid时候的包名下,比如你注册的包名是com.haha 那这个wxapi就应该在com.haha下

----------------------------------------------------------------------------------------------------------------------------------------------------------------

补充:今天又出现了回调不走WXEntryActivity中的onReq和onResp方法的现象。而且出现白屏现象,白屏现象解决就是在AndroidManifest.xml清单文件中配置WXEntryActivity 节点的android:theme="@android:style/Theme.Translucent.NoTitleBar"属性就ok了。

先说一下这次不回调onReq和onResp方法的原因,是因为我在WXEntryActivity中的onCreate方法不对,上个图看一下就知道了

正常应该用下面图中这个只带一个参数的onCreate方法

到此不回调onReq和onResp的问题就解决了。

具体也不知道怎么搞得会出现该问题,可能是因为之前倒工程时大意了。

补充时间 2020年7月10日14:02:21

微信SDK支付回调WXPayEntryActivity主要是通过发送广播的方式实现的。 在微信支付完成后,微信SDK会将支付结果回调到你在微信支付时指定的回调Activity,这个Activity就是WXPayEntryActivity。在WXPayEntryActivity,你需要重写`onResp`方法来接收微信支付的结果。 具体而言,`onResp`方法接收一个`BaseResp`对象,该对象包含了微信支付的结果信息。在`onResp`方法,你可以根据支付结果的状态,进行相应的处理。例如,如果支付成功,你可以跳转到支付成功的页面,如果支付失败,你可以提示用户支付失败并让用户重新支付。 另外,为了将支付结果传递到你的其他组件,你还需要在`onResp`方法发送广播。具体而言,你需要创建一个Intent对象,并将支付结果放入Intent,然后通过`sendBroadcast`方法将Intent发送出去。在其他组件,你可以注册一个BroadcastReceiver来接收这个广播,并根据支付结果的状态进行相应的业务处理。 在微信SDK,发送支付结果广播的代码如下: ```java Intent intent = new Intent(ACTION_PAY_RESULT); intent.putExtra(EXTRA_PAY_RESULT, resp.errCode); sendBroadcast(intent); ``` 其,`ACTION_PAY_RESULT`是广播的Action,`EXTRA_PAY_RESULT`是支付结果的Extra字段。在你的组件,你需要注册一个BroadcastReceiver,并监听`ACTION_PAY_RESULT`这个Action,当收到这个广播时,你就可以根据`EXTRA_PAY_RESULT`字段来处理支付结果了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Granger_g

大爷,赏小女子口饭吃如何?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值