关于Android微信支付回调不执行的问题

如果排除appid、包名等问题、那就是你文件目录的包名不对,比如说你项目的文件目录层级为

com/xxxxx/project

但是你的微信开放平台注册的报名为com.xxxxx.www,那么哪怕你applicationId是和微信开放平台一致的,微信回调也不会生肖,因为微信回调是根据包名来调用你的activity的。

微信回调会找你的com.xxxxx.www.wxapi.WXPayEntryActivity,然而,你目录和你的包名,并不一致,所以回调就无法正常被唤起。

解决方案:

1、将你的目录包名改成和开放平台一致的。

2、使用activity-alias 给你的回调activity创建别名,可以这样写

<activity
            android:name=".wxapi.WXPayEntryActivity"
            android:exported="true"
            android:launchMode="singleTop">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="你的appid" />
            </intent-filter>
        </activity>
        <activity-alias
            android:name="${applicationId}.wxapi.WXPayEntryActivity"
            android:exported="true"
            android:targetActivity=".wxapi.WXPayEntryActivity" />