本文整理汇总了PHP中common\models\Order::chkOrder方法的典型用法代码示例。如果您正苦于以下问题:PHP Order::chkOrder方法的具体用法?PHP Order::chkOrder怎么用?PHP Order::chkOrder使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类common\models\Order
的用法示例。
在下文中一共展示了Order::chkOrder方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: actionYadopay
public function actionYadopay()
{
\Yii::info('start', 'app/payments/yad');
$r = new Request();
$param = $r->post();
$code = 0;
$err_msg = null;
$order = null;
if (!$this->checkMD5($param)) {
// кривой md5
$code = 1;
//$err_msg = '';
} else {
$order = Order::chkOrder($param['orderNumber'], $param['customerNumber']);
if ($order) {
// ордер нашелся
if ($order->price < $param['orderSumAmount'] * 100) {
// и даже сумма норм
if ($param['action'] == 'paymentAviso' && !$order->closed_at) {
// это уже сам платеж и ордер не закрыт еще
// значит надо закрыть
$order->price = $param['orderSumAmount'] * 100;
$order->closed_at = new Expression('NOW()');
if ($order->validate() && $order->save()) {
// ok, все сохранилось
} else {
// что-то пошло не так
$code = 200;
$err_msg = array_values($order->errors)[0][0];
//vd($order->errors);
}
}
} else {
// сумма неправильная
$err_msg = 'Неверная сумма';
}
} else {
// нет такого ордера
$err_msg = 'Платеж не найден';
}
}
if (!$code && $err_msg) {
$code = 100;
}
// \Yii::$app->response->format = \yii\web\Response::FORMAT_XML;
$response = \Yii::$app->response;
$response->format = Response::FORMAT_RAW;
$response->getHeaders()->set('Content-Type', 'application/xml; charset=utf-8');
// return $this->render('sitemap');
return $this->buildResponse($param['action'], $param['invoiceId'], $code, $err_msg);
return $this->render('yadopay', ['response' => ['action' => $param['action'], 'invoiceId' => $param['invoiceId'], 'code' => $code, 'msg' => $err_msg, 'shopId' => $this->shopId], 'rrr' => ['param' => $param, 'order' => $order]]);
}