public function actionIndex() { U::W([__METHOD__, $_GET, $_POST]); //$this->layout = false; $this->layout = 'wapy'; $alipay_config = Alipay::getAlipayConfig(); $alipayNotify = new AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyReturn(); if (!$verify_result) { Alipay::logResult(['Alipaycallback error', __METHOD__, $_GET, $_POST]); //return 'Alipaycallback error'; } $result = $_GET['result']; if ($result != 'success') { Alipay::logResult(['Pay error', __METHOD__, $_GET, $_POST]); return 'Pay error'; } $oid = $_GET['out_trade_no']; $model = MOrder::findOne($oid); if ($model === null) { U::W(['Invalid oid', $_GET, $_POST]); return "Invalid oid"; } $model->pay_kind = MOrder::PAY_KIND_ALIWAP; $model->aliwap_trade_no = $_GET['trade_no']; $model->status = MOrder::STATUS_SUCCEEDED; if (!$model->save(false)) { U::W(['save db error', $_GET, $_POST, $model->getErrors()]); return 'system error'; } //return 'Pay OK'; return $this->render('index', ['gh_id' => $model->gh_id, 'openid' => $model->openid]); }
public function actionIndex() { U::W([__METHOD__, $_GET, $_POST]); $this->layout = false; $alipay_config = Alipay::getAlipayConfig(); $alipayNotify = new AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyNotify(); if (!$verify_result) { Alipay::logResult(['Alipaynotify sign error', __METHOD__, $_GET, $_POST]); return "fail"; } if ($alipay_config['sign_type'] == 'MD5') { $respObject = @simplexml_load_string($_POST['notify_data']); } else { if ($alipay_config['sign_type'] == '0001') { $respObject = @simplexml_load_string($alipayNotify->decrypt($_POST['notify_data'])); } else { Alipay::logResult(['Alipaynotify sign_type error', __METHOD__, $_GET, $_POST]); } } $arr = json_decode(json_encode($respObject), true); U::W($arr); $oid = $arr['out_trade_no']; $model = MOrder::findOne($oid); if ($model === null) { U::W(['Invalid oid', $_GET, $_POST, $arr]); return "success"; } $model->pay_kind = MOrder::PAY_KIND_ALIWAP; $model->aliwap_trade_no = $arr['trade_no']; $model->aliwap_total_fee = $arr['total_fee']; $model->aliwap_trade_status = $arr['trade_status']; $model->aliwap_buyer_email = $arr['buyer_email']; $model->aliwap_quantity = $arr['quantity']; $model->aliwap_gmt_payment = $arr['gmt_payment']; if ($arr['trade_status'] == 'TRADE_FINISHED' || $arr['trade_status'] == 'TRADE_SUCCESS') { $model->status = MOrder::STATUS_SUCCEEDED; } else { U::W(['trade_status is not TRADE_FINISHED', $_GET, $_POST, $arr]); } if (!$model->save(false)) { U::W(['save db error', $_GET, $_POST, $arr, $model->getErrors()]); } return "success"; }
public function NotifyProcess($data, &$msg) { //U::W([__METHOD__, $data, $msg]); $notfiyOutput = array(); if (!array_key_exists("transaction_id", $data)) { $msg = "输入参数不正确"; return false; } if (!$this->Queryorder($data["transaction_id"])) { $msg = "订单查询失败"; return false; } $order = MOrder::findOne($data["out_trade_no"]); $status_old = $order->status; $pay_kind_old = $order->pay_kind; $order->status = MOrder::STATUS_PAID; $order->partner = $data['mch_id']; $order->time_end = $data['time_end']; $order->total_fee = $data['total_fee']; $order->transaction_id = $data['transaction_id']; $order->appid_recv = $data['appid']; $order->openid_recv = $data['openid']; $order->issubscribe_recv = $data['is_subscribe']; $order->pay_kind = MOrder::PAY_KIND_WECHAT; if ($order->save(false)) { $orderTrail = new MOrderTrail(); $orderTrail->oid = $order->oid; $orderTrail->status_old = $status_old; $orderTrail->status_new = $order->status; $orderTrail->pay_kind_old = $pay_kind_old; $orderTrail->pay_kind_new = $order->pay_kind; $orderTrail->save(false); } return true; }
protected function findModel($id) { if (($model = MOrder::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
public function actionClientOrder($gh_id, $openid, $backwards = true, $pop = false) { if (!$backwards) { \app\models\utils\BrowserHistory::delete($gh_id, $openid); \app\models\utils\BrowserHistory::push($gh_id, $openid); } else { if ($pop) { \app\models\utils\BrowserHistory::pop($gh_id, $openid); } else { \app\models\utils\BrowserHistory::push($gh_id, $openid); } } $wx_user = \app\models\MUser::findOne(['gh_id' => $gh_id, 'openid' => $openid]); $this->layout = false; $office_id = $_GET['office_id']; $office = MOffice::findOne(['office_id' => $office_id]); $staff_id = $_GET['staff_id']; $staff = MStaff::findOne(['staff_id' => $staff_id]); $oid = $_GET['oid']; $order = MOrder::findOne(['oid' => $oid]); return $this->render('client-order', ['wx_user' => $wx_user, 'backwards' => $backwards, 'office' => $office, 'staff' => $staff, 'order' => $order]); }
public function actionOrderinfotest() { $this->layout = 'wapy'; $gh_id = U::getSessionParam('gh_id'); $openid = U::getSessionParam('openid'); $oid = '55306A960191B'; $model = MOrder::findOne($oid); $item = MItem::findOne(['gh_id' => $gh_id, 'cid' => $model->cid]); $input = new WxPayUnifiedOrder(); $input->SetBody("test"); $input->SetAttach("test"); $input->SetOut_trade_no(WxPayConfig::MCHID . date("YmdHis")); $input->SetTotal_fee("1"); $input->SetTime_start(date("YmdHis")); $input->SetTime_expire(date("YmdHis", time() + 600)); $input->SetGoods_tag("test"); $input->SetNotify_url("http://wosotech.com/wx/web/wxpaynotify.php"); $input->SetTrade_type("JSAPI"); $input->SetOpenid($openid); $unifiedOrder = WxPayApi::unifiedOrder($input); U::W($unifiedOrder); $jsApiParameters = $this->GetJsApiParameters($unifiedOrder); U::W($jsApiParameters); return $this->render('orderinfo', ['gh_id' => $gh_id, 'openid' => $openid, 'model' => $model, 'item' => $item, 'jsApiParameters' => $jsApiParameters]); }
static function getItemTitle($oid) { $order = MOrder::findOne(['oid' => $oid]); return $order->title; }