php获取通过http协议post提交过来xml数据及解析xml

查看:87
本文介绍了php获取通过http协议post提交过来xml数据及解析xml的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

php怎么获取接口返回的xml数据及解析xml

直接接收感觉会有风险,应该怎么做才安全

主要是接收数据的时候怎么做验证才安全

解决方案

$xml = file_get_contents("php://input");
libxml_disable_entity_loader(true);
$res = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);

print_r($res);
//关于验证参考微信支付,参数中增加sign
/**
 * 获取参数签名
 * @param  Array  要传递的参数数组
 * @param  String  秘钥
 * @return String 通过计算得到的签名
 */
function getSign($params,$key) {
    ksort($params);        
    foreach ($params as $key => $item) {
        if (!empty($item)) {         
            $newArr[] = $key.'='.$item;     
        }
    }
    $stringA = implode("&", $newArr);
    $stringSignTemp = $stringA."&key=".$key;      
    $stringSignTemp = md5($stringSignTemp);     
    $sign = strtoupper($stringSignTemp);
    return $sign;
}
$s = $res['sign'];
unset($res['sign']);
$sign = getSign($res,$key);
if($sign === $s) {
    return true;
}
return false;

这篇关于php获取通过http协议post提交过来xml数据及解析xml的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆