收藏
回答

微信支付成功或失败后不走回调是怎么回事?

1.WXEntryActivity 类

public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
 
    private static final String WECHAT_APPID = "我的appid";
    private IWXAPI api;
 
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        api = WXAPIFactory.createWXAPI(this, WECHAT_APPID);
        api.handleIntent(getIntent(), this);
    }
 
    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        api.handleIntent(intent, this);
    }
 
    @Override
    public void onReq(BaseReq baseReq) {
        Toast.makeText(this, "onReq  1500", Toast.LENGTH_SHORT).show();
    }
 
    @Override
    public void onResp(BaseResp baseResp) {
        ToastUtils.showShort("  微信支付返回码"+baseResp.errCode);
        LogUtils.d("1923  返回码" + baseResp.errCode);
        if (baseResp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("支付结果");
            builder.setMessage(String.valueOf(baseResp.errCode));
            builder.show();
        }
    }
}

2.支付代码:

private void wechatPay(WechatPayBean bean) {
        String appid = bean.getAppid();//appid
        String mch_id = bean.getMch_id();//商户号
        String prepay_id = bean.getPrepay_id();//预支付交易会话ID
        String nonce_str = bean.getNonce_str();//随机字符串
        String time_stamp = bean.getTime_stamp();//时间戳
//        String sign = bean.getSign();//签名
        IWXAPI api = WXAPIFactory.createWXAPI(OrderConfirmActivity.this, appid, false);//填写自己的APPIDapi.registerApp("wxAPPID");//填写自己的APPID,注册本身
        api.registerApp(appid);
        PayReq req = new PayReq();//PayReq就是订单信息对象
        req.appId = appid;//你的微信appid
        req.partnerId = mch_id;//商户号
        req.prepayId = prepay_id;//预支付交易会话ID
        req.nonceStr = nonce_str;//随机字符串
        req.timeStamp = time_stamp;//时间戳
        req.packageValue = "Sign=WXPay";//扩展字段,这里固定填写Sign=WXPay
        //todo:sign必须由appId等六个值拼接而成
        req.sign = bean.getSign();//签名
        api.sendReq(req);//将订单信息对象发送给微信服务器,即发送支付请求
req.timeStamp));
//        req.sign = getSign(list);//签名
    }

3.清单文件注册:

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


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

4 个回答

  • whyUnself
    whyUnself
    2020-04-24

    我也是支付成功但是没有回调。。。怎么办呢?


    2020-04-24
    有用
    回复
  • Kys_gao
    Kys_gao
    2020-03-19

    楼主解决了吗,遇到相同问题,一直未找打原因

    2020-03-19
    有用
    回复
  • 微信支付技术助手1
    微信支付技术助手1
    2019-11-26

    失败是没有回调的,只有支付成功才会有。

    2019-11-26
    有用
    回复 1
    • 宾_Android开发
      宾_Android开发
      2020-03-14
      我的花了好几分了,都成功了,也是没有任何回调,请帮忙解决一下吧?我每次有新项目集成微信支付,都会卡到支付回调的问题上,真的怕了!
      2020-03-14
      回复
  • 痛快科技
    痛快科技
    2019-11-26

    https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=23_2&index=2

    可以先自己验证一下

    2019-11-26
    有用
    回复 5
    • ☆兔子☆
      ☆兔子☆
      2019-11-26
      老哥,我这个是本地APP端的回调不走啊,支付是成功的,微信都已经扣款了
      2019-11-26
      回复
    • 痛快科技
      痛快科技
      2019-11-26回复☆兔子☆
      奥,以为是微信支付异步回调呢
      2019-11-26
      回复
    • ☆兔子☆
      ☆兔子☆
      2019-11-26回复痛快科技
      你觉得我这个问题产生的原因可能是什么?我半天没找到原因,也是按照官方集成步骤来的了
      2019-11-26
      回复
    • 痛快科技
      痛快科技
      2019-11-26回复☆兔子☆
      是否有其他报错信息
      2019-11-26
      回复
    • 喵喵喵?
      喵喵喵?
      2019-12-09回复☆兔子☆
      我也是,解决了吗
      2019-12-09
      回复
登录 后发表内容