/**
* @RequestMapping(route="order_notify",method={RequestMethod::POST,RequestMethod::GET,RequestMethod::PUT})
* 订单回调
*/
public function order_notify()
{
$response = Context::get()->getResponse();
$request = Context::get()->getRequest();
$data = $request->getRawBody();
$resHandler = new WxClientResponseHandler();
$resHandler->setContent($data);
if ($resHandler->getParameter('return_code') == 'SUCCESS' && $resHandler->getParameter('result_code') == 'SUCCESS') {
$orderSn = $resHandler->getParameter('out_trade_no');//获取订单号
$order = Db::table('order')->first();
if (!$order) {
$return = ['return_code' => 'FAIL', 'return_msg' => '没有需要支付的订单!'];
return $resHandler->arr2xml($return);
} else {
if ($resHandler->getParameter('total_fee') / 100 != $order['order_price']) {
$return = ['return_code' => 'FAIL', 'return_msg' => '金额有误!'];
return $this->arr2xml($return);
} else {
Db::table('order')->update(['order_pay_status'=>'done']);
$return = ['return_code' => 'SUCCESS', 'return_msg' => 'OK'];
return $this->arr2xml($return);
}
}
} else {
$return = ['return_code' => 'FAIL', 'return_msg' => $resHandler->getParameter('return_msg')];
return $this->arr2xml($return);
}
}