微信支付官方给的回调 demo,其中查询订单部分可以去掉么?
//TODO 1、进行参数校验
if(!array_key_exists("return_code", $data)
||(array_key_exists("return_code", $data) && $data['return_code'] != "SUCCESS")) {
//TODO失败,不是支付成功的通知
//如果有需要可以做失败时候的一些清理处理,并且做一些监控
$msg = "报文异常";
return false;
}
if(!array_key_exists("transaction_id", $data)){
$msg = "输入参数不正确";
return false;
}
//TODO 2、进行签名验证
try {
$checkResult = $objData->CheckSign($config);
if($checkResult == false){
//签名错误
Log::error("签名错误...");
return false;
}
} catch(Exception $e) {
Log::error(json_encode($e));
}
//TODO 3、处理业务逻辑
Log::debug("call back:" . json_encode($data));
$notfiyOutput = array();
//查询订单,判断订单真实性
if(!$this->Queryorder($data["transaction_id"],$type)){
$msg = "订单查询失败";
return false;
}
查询订单这块,服务器不知道为啥curl特别慢,有时候还报28的错误,感觉支付宝的回调验证没这么复杂吧?不知道这块是否可以删除掉,现在的业务逻辑有点慢。。。
可以,签名正确后,可以处理自己的业务逻辑。
确认支付金额与订单金额是否一致,并把支付编号保存到数据库中就可以。