21,886
社区成员
发帖
与我相关
我的任务
分享
<?xml version="1.0" encoding="UTF-8"?>
<Message>
<Version>版本号</Version>
<Token></Token>
<Type>REQUEST</Type>
<Seq>序列号</Seq>
<Body>
<Operation order="1" name="Login">
<SDO_User>
<UserName>用户名</UserName>
<Pwd>口令</Pwd>
</SDO_User >
</Operation>
</Body>
</Message>
//$package是php关联数组,包含你请求时需要的参数。array2xml是将php参数转为xml的函数。
$dat = array2xml($package);
//服务器请求
$response = ihttp_request('https://api.mch.weixin.qq.com/pay/unifiedorder', $dat);
function array2xml($arr, $level = 1) {
$s = $level == 1 ? "<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 $level == 1 ? $s . "</xml>" : $s;
}
//xml转为php对象
$xml = @simplexml_load_string(trim($response['content']), 'SimpleXMLElement', LIBXML_NOCDATA);
//xml转为php数组
//$xml = (array)$xml;