PHP原生xml和数组互转(微信支付签名算法)
Posted PHP后端开发|产品运营推广
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP原生xml和数组互转(微信支付签名算法)相关的知识,希望对你有一定的参考价值。
数组转XML
publicfunction arrayToXml($arr) { $xml ="<xml>"; foreach($arr as $key => $val){ if(is_numeric($val)){ $xml .="<". $key .">". $val ."</". $key .">"; }else $xml .="<". $key ."><![CDATA[". $val ."]]></". $key .">"; } $xml .="</xml>"; return $xml; }
XML转数组
publicfunction xmltoarray($xml) { //禁止引用外部xml实体 libxml_disable_entity_loader(true); $xmlstring = simplexml_load_string($xml,‘SimpleXMLElement‘, LIBXML_NOCDATA); $val = json_decode(json_encode($xmlstring),true); return $val; }
微信支付签名sign算法
//生成签名 //$data参与签名的关联数组,$key商户appkey publicfunction createSign(array $data,string $key) { ksort($data); //参与签名的数组重新按升序排列 $str =‘‘; foreach($data as $k => $v){ $str .= $k .‘=‘. $v .‘&‘; //数组转换成URL参数形式 } $str .=‘key=‘. $key; //拼接商户秘钥 return strtoupper(md5($str)); //MD5加密并转换成大写字母 }
以上是关于PHP原生xml和数组互转(微信支付签名算法)的主要内容,如果未能解决你的问题,请参考以下文章