无感五 2019-11-15 01:01 采纳率: 50%
浏览 515
已采纳

小程序支付完之后通知回调接受失败

已经支付成功,但是回调函数得时候出错
图片说明

图片说明

yml回调域名配置
图片说明

回调代码

 public void notify(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String wxRetXml = PaymentUtils.getRequestData(request);
        Map<String, String> wxRetMap = PaymentUtils.xmlToMap(wxRetXml);
        Assert.notNull(wxRetMap, ExceptionMessage.XML_DATA_INCORRECTNESS.getMessage());

        // 当返回的return_code为SUCCESS则回调成功
        if ("SUCCESS".equalsIgnoreCase(wxRetMap.get("return_code"))) {
            // 通知微信收到回调
            String resXml = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
            BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
            out.write(resXml.getBytes());
            out.flush();
            out.close();

            // TODO 保存订单流水 具体细节待实现
           // orderBillService.save(new OrderBill());

            log.info("notify success"+"通知结束");
        } else {
            log.error("notify failed");
        }
    }

小程序代码

wx.request({
              url: 'http://127.0.0.1:8080/api/wx/pay/notify',
              method: 'GET',
              header: {
                'Authorization': 'bearer ' + this.data.token.data.access_token,
                "Content-Type": "application/x-www-form-urlencoded"
              },
              success: res => {
                console.log('支付完成后返回的', res)
              }

            })
  • 写回答

2条回答 默认 最新

  • java小臣 2019-11-15 16:45
    关注

    你这个回调方法写得有问题吧,我之前写的微信支付是先要对微信返回信息做签名检验的,检验通过而且result_code为SUCCESS,是不用给微信服务器返回信息的;如果检验不通过,则返回签名验证错误对应的字符串;如果检验通过,但返回不是SUCESS,那就返回支付失败对应的字符串

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况