<?php
function https_request($url, $data = null)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
if (!empty($data)) {//如果有数据传入数据
curl_setopt($curl, CURLOPT_POST, 1);//CURLOPT_POST 模拟post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);//传入数据
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
$ArrayField = [
'version' => '1.0.0', //固定值
'memberid' => '10001', //商户编号
'orderid' => "2020022637021582687627", //要查询的订单号
'notifyurl' => 'http://xxx.xxx.com/notifyurl.php',
'signmethod' => 'md5', //加密方式 固定值
];
ksort($ArrayField); //按照参数名ASCII码从小到大排序
$md5key = '2JXQBG13TAUNKRYVME'; //md5密钥
$stringA = "";
foreach($ArrayField as $key => $value){
$stringA .= $key."=".$value."&";
}
$stringA = substr($stringA,0,-1); //去掉最后一个 & 字符
$ArrayField["sign"] = strtoupper(md5($stringA.$md5key)); //拼接密钥后,md5加密后转为大写
$ArrayField["query"] = 'query'; //加上查询标识字段
$tjurl = 'http://main.lanmaopay.com/Pay.html';
$json = https_request($url,$ArrayField);
$ArrayField = json_decode($json,true) //查询响应时获取回调参数, json字符串转换为数组
$sign = $ArrayField["sign"];
unset($ArrayField["sign"]);
$md5key = '2JXQBG13TAUNKRYVME'; //密钥
ksort($ArrayField); //按照参数名ASCII码从小到大排序
$stringA = "";
foreach($ArrayField as $key => $value){
$stringA .= $key."=".$value."&";
}
$stringA = substr($stringA,0,-1); //去掉最后一个 & 字符
$signValue = strtoupper(md5($stringA.$md5key)); //拼接密钥后,md5加密后转为大写
if($sign == $signValue && $ArrayField['status'] == 'success'){
// 查询到订单的状态是成功的
}else{
var_dump($ArrayField);
}
?>