webman微信支付回调WxPayApi(3.0.10)客户端无法获取到XML

jones

项目中使用的微信支付SDK为3.0.10,支付也成功了,但总是收到微信后台发来的回调请求。
分析后发现,原因是客户端收不到

WxpayApi::replyNotify($xml); //客户端收不到该内容

该表态方法内容如下

/**
     * 直接输出xml
     * @param string $xml
     */
    public static function replyNotify($xml)
    {
        echo $xml;
    }

webman在response中对XML有何过滤逻辑么?怎么解决返回xml的问题呢?

1215 2 0
2个回答

sm2010

WxpayApi::replyNotify($xml); 改成 return xml($xml); 试下。

或者直接 return $xml; 应该也行

liziyu

微信支付SDK v3.0版的支付通知好像不是 xml了吧,好像是 json格式数据,你看下文档。

https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_4_5.shtml

  • jones 2022-06-01

    在TP框架下,这个微信支付SDK工作正常,迁移到webman,不想再整其它的新版本了,只想从根本上解决这个xml返回的问题

  • jones 2022-06-01

    您提到的文档中写道:接收成功:HTTP应答状态码需返回200或204,无需返回应答报文。
    而我遇到的问题是回调时没有获取xml文件的内容,但状态码仍然是200,微信服务器应该不再重复回调才对呀,为什么还是在不断回调呢?困惑……

  • liziyu 2022-06-01

    微信支付在3.0这个版中,支付通知已经与2.0不同了,不再是xml格式的应答了,是json格式的,你打印看下就明白了!

    不断回调通知,根本原因是它没有收到你的应答确认!
    ^_^

  • jones 2022-06-01

    感谢您的耐心指点,我用的WxPayAPI里写着public static $VERSION = "3.0.10"; 但实际代码中又是在返回xml 这让我很晕,微信支付究竟有多少个SDK呀 @_@

  • liziyu 2022-06-01

    官方看到的大版本就两个,建议看下文档,3.0版本的变化还是挺大的!

年代过于久远,无法发表回答
🔝