收藏
回答

android 微信支付没回调,微信登陆,分享都有回调

android 微信支付没回调,微信登陆,分享都有回调
微信支付成功后  WXEntryActivity的onCreate 都没有进去,咋整啊?

微信登陆,分享回调都正常啊,配置是没问题的吧。

用的最新的sdk
implementation 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:5.3.1'


public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
    private IWXAPI api;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        Log.e("ssss---onCreate--1", Config.APP_ID);
        super.onCreate(savedInstanceState);
        Log.e("ssss---onCreate", Config.APP_ID);
        api = WXAPIFactory.createWXAPI(this, null);
        api.registerApp(Config.APP_ID);
        //不写没有回调
        api.handleIntent(getIntent(), this);
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        Log.e("ssss-------", "onNewIntent");
        setIntent(intent);
        api.handleIntent(intent, this);
    }

    @Override
    public void onReq(BaseReq baseReq) {
        Log.e("ssss---1", "req" + baseReq.openId);
    }

    @Override
    public void onResp(BaseResp baseResp) {
        Log.e("ssss---2", "onResp");
        switch (baseResp.errCode) {
            case BaseResp.ErrCode.ERR_OK:
                if (baseResp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
                    ToastUtil.showShort(WXEntryActivity.this, "支付成功");
                    Log.e("ssss", "支付成功11");
                } else if (baseResp.getType() == 2) {
                    //分享
                    ToastUtil.showShort(WXEntryActivity.this, "分享成功");
                    Log.e("ssss", "分享成功11");
                } else if (baseResp.getType() == 1) {
                    ToastUtil.showShort(WXEntryActivity.this, "授权成功");
                    //登录
                    String code = ((SendAuth.Resp) baseResp).code;
                    Log.e("ssss", "授权成功11"+code );
                }
                break;
            case BaseResp.ErrCode.ERR_USER_CANCEL:
                //用户取消
                if (baseResp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
                    ToastUtil.showShort(WXEntryActivity.this, "取消支付");
                } else if (baseResp.getType() == ConstantsAPI.COMMAND_SENDMESSAGE_TO_WX) {
                    ToastUtil.showShort(WXEntryActivity.this, "取消分享");
                }
                break;
            case BaseResp.ErrCode.ERR_AUTH_DENIED:

                break;
            case BaseResp.ErrCode.ERR_UNSUPPORT:

                break;
        }

    }

回答关注问题邀请回答
收藏

3 个回答

  • 骑着导弹追蜗牛
    骑着导弹追蜗牛
    2020-07-06
    微信登陆和微信支付不是同一个Activity 也把我坑惨了没注意看  登陆是WXEntryActivity  而支付是WXPayEntryActivity 
    


    2020-07-06
    有用 4
    回复 2
    • 流云
      流云
      2020-12-30
      难兄难弟啊,我们的app接的微信支付也是突然就没有回调了,之前的支付回调和登录回调都是放在WXEntryActivity可以正常回调,现在对类名也有要求,支付回调要放在WXPayEntryActivity里面,好坑爹
      2020-12-30
      回复
    • 潘家全
      潘家全
      2022-04-14回复流云
      也碰到了,提供的 demo 3年不更新了。里面也是没有WXPayEntryActivity这个类,只有WXEntryActivity,被坑了(✿◡‿◡)
      2022-04-14
      回复
  • Mart Sleep Meditates
    Mart Sleep Meditates
    2022-05-16

    答案:

    https://github.com/yorkie/react-native-wechat/issues/152#issuecomment-1127581996
    
    <application
        android:name="com.xyz.abcMainApplication"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher_foreground"
        android:label="@string/app_name"
        android:usesCleartextTraffic="true"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Fuckyou" >
        <activity
            android:launchMode="singleTask"
            android:exported="true"
            android:screenOrientation="portrait"
            android:theme="@style/HiddenTitleTheme"
            android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".wxapi.WXEntryActivity"
            android:exported="true"
            android:launchMode="singleTask"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name=".wxapi.WXPayEntryActivity"
            android:exported="true"
            android:launchMode="singleTask"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>
    


    2022-05-16
    有用
    回复
  • 微信支付技术助手7
    微信支付技术助手7
    2019-03-22

    您好,按照以下几点检查,

    1,检查回调url是否正确,回调url是不能带参数的,请注意。

    2,是否有按照文档要求正确返回参数<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>给到微信。

    3,是否开启了防火墙把微信的通知给屏蔽了。

    4,是否响应超时。

    5,是否正确使用post请求。

    6,回调url修改成http协议试试。


    2019-03-22
    有用
    回复 3
    • byc...
      byc...
      2019-03-22

      回答的什么?我app里支付成功了,WXEntryActivity  没有回调啊

      WXEntryActivity  配置正确的吧,因为微信登陆,分享都有回调

      2019-03-22
      回复
    • 微信支付技术助手7
      微信支付技术助手7
      2019-03-26回复byc...

      您好,我以为您说的是回调出错呢,WXEntryActivity  没有回调应该是代码上的问题,您可以参考一下官方demo,这个需要开发者自己开发。

      2019-03-26
      回复
    • 许庆军
      许庆军
      2020-07-02回复微信支付技术助手7
      你好,我也遇到这个问题了,你最终查到是什么原因
      2020-07-02
      回复
登录 后发表内容