收藏
回答

支付结果正常通知了,如何回复微信成功的xml呢

后端怎么把这一段成功的xml返回给微信呢?

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

3 个回答

  • 大山
    大山
    2020-11-28

    php 可以这样写

    function array2xml($arr, $level = 1) {
        $s = 1 == $level ? '<xml>' : '';
        foreach ($arr as $tagname => $value) {
            if (is_numeric($tagname)) {
                $tagname = $value['TagName'];
                unset($value['TagName']);
            }
            if (!is_array($value)) {
                $s .= "<{$tagname}>" . (!is_numeric($value) ? '<![CDATA[' : '') . $value . (!is_numeric($value) ? ']]>' : '') . "</{$tagname}>";
            } else {
                $s .= "<{$tagname}>" . array2xml($value, $level + 1) . "</{$tagname}>";
            }
        }
        $s = preg_replace("/([\x01-\x08\x0b-\x0c\x0e-\x1f])+/", ' ', $s);
    
        return 1 == $level ? $s . '</xml>' : $s;
    }
    $result = array(
        'return_code' => 'SUCCESS',
        'return_msg' => 'OK'
    );
    echo array2xml($result);
    exit;
    
    2020-11-28
    有用 2
    回复
  • 俊
    2020-11-28

    java

    @RequestMapping(produce="xml/utf-8")有个类似的名字,让返回变成xml

    2020-11-28
    有用
    回复
  • 老张
    老张
    2020-11-28

    从你上一次的同一个问题,我判断你搞错了,你居然在找微信提供的API接口,然后想通过访问这个API,发送这段XML。

    不是这样的逻辑。

    既然你说支付结果正常通知了,那说明你在notify_url的后台进程里已经接收到了微信支付的成功通知,你在这个进程的后面加上一句返回这段XML就行了。

    如果要问具体代码,取决于你后台的语言是什么,楼下的是php,还有nodejs、java,

    2020-11-28
    有用
    回复 1
    • 🌟
      🌟
      2020-11-30
      一开始理解错了,已搞定,谢谢
      2020-11-30
      回复
登录 后发表内容
问题标签