异步回调验签示例


PHP验签示例

//安全过滤自行处理,这里只进行赋值。
$param = $_POST;

//取出返回sign
$result = $param('sign');

//将参数以ASCII升序排序
ksort($param);

//新建一个变量,用于保存待签名字符串
$signStr = "";

//循环数组,将非空数据和sign字段剔除,拼接待签名字符串
foreach($param as $key => $val){
    if(!empty($val) && $key !='sign'){
        $signStr .= $key."=".$val;
    }
}

//将Token拼接到待签名字符串最后
$signStr .= '082b96077abdf3ac6f163e7299303f3b';

//计算MD5值,强转为小写,即为最终sign
$sign = strtolower(md5($signStr));

//校验计算的sign与返回sign是否相同
if ($sign == $result_sign){
    //校验成功,执行业务逻辑。
}else{
    //校验失败,不进行任何操作。
}

//打印success,万迪支付将不再继续通知。
echo 'success';