//
//
//
//
//
//
//
//
//
//
//
//
//
// 1
//
//
// ';
if(!$xml){exit;}
$input = new WxPayOrderQuery();
$result =$input->FromXml($xml);
$config = new WxPayConfig();
$_sign=$result['sign'];
unset($result['sign']);
$sign = $this->getSign($result, $config);
if($_sign==$sign && array_key_exists("return_code", $result) && array_key_exists("result_code", $result) && $result["return_code"] == "SUCCESS" && $result["result_code"] == "SUCCESS"){
$fee=$result['total_fee']/100;
model('UserRecharge')->pay_notify_success($result['out_trade_no'],$fee);
exit('');
//TS
// $out_trade_no=$result['out_trade_no'];
// $fee=$result['total_fee']/100;
// $transaction_id=$result['transaction_id'];
// $order=DB::name('order')->where(['order_no'=>$out_trade_no, 'status'=>1, 'price'=>$fee,])->find();
// //$order=DB::name('order')->where(['order_no'=>$orderid, 'status'=>1, ])->find();
// if(isset($order['id'])){
// //业务逻辑
// $arr['status']=2;
// $arr['paytime']=time();
// $res=DB::name('order')->where('id',$order['id'])->update($arr);
// if($res){
// //增加用户米钻及充值记录
// userStoreInc($order['user_id'],$order['mizuan'],11,'mizuan');
// exit('OK');
// }
// }
// exit('fail');
}
}
private function getSign($params, $config) {
ksort($params); //将参数数组按照参数名ASCII码从小到大排序
foreach ($params as $key => $item) {
if (!empty($item)) { //剔除参数值为空的参数
$newArr[] = $key.'='.$item; // 整合新的参数数组
}
}
$stringA = implode("&", $newArr); //使用 & 符号连接参数
$stringSignTemp = $stringA."&key=".$config->GetKey(); //拼接key
if($config->GetSignType() == "MD5"){
$stringSignTemp = md5($stringSignTemp);
} else if($config->GetSignType() == "HMAC-SHA256") {
$stringSignTemp = hash_hmac("sha256",$stringSignTemp ,$config->GetKey());
} else {
throw new WxPayException("签名类型不支持!");
}
$sign = strtoupper($stringSignTemp); //将所有字符转换为大写
return $sign;
}
}