/** * 经销商物流退款-未收货 */ public function actionReturnposts() { $this->pageTitle = Yii::app()->name . '-' . "付款"; $returnID = $_GET['returnID']; if ($returnID) { $lists[] = 1; $model = PapReturnOrder::model()->updateBypk($returnID, array('Status' => 4, 'PayMethod' => 2)); if ($model) { $list = PapReturnGoods::model()->findAll("ReturnID=:ID", array(":ID" => $returnID)); foreach ($list as $v) { if (!in_array($v['OrderID'], $lists)) { $model = PapOrder::model()->updateByPk($v['OrderID'], array("ReturnStatus" => 4)); $lists[] = $v['OrderID']; } } //更改待审核提醒为已操作 RemindService::updateRemindStatus($returnID, 4); } $this->redirect(array('Index')); } else { throw new CHttpException(404, '页面不存在'); } }
public static function sendOrder($params, $ID, $OrganID) { $sql = "select * from pap_order t where t.SellerID = {$OrganID} and t.IsDelete=0 and Status=2 and t.ID in({$ID})"; $model = Yii::app()->papdb->createCommand($sql)->queryAll(); if (!$model) { return array('error' => 4, 'msg' => '发货失败,请稍后再试!'); } $goodsid = explode(',', $params['goodsid']); $pn = explode('|', $params['PN']); $idarr = explode(',', $ID); if (count($model) != count($idarr)) { return array('error' => 1, 'msg' => '发货失败,请稍后再试!'); } foreach ($model as $v) { // 如果是支付宝订单,则调用确认收货接口 $isAlipay = false; $alipayResult = false; $alipayError = ""; $paymentMethod = $v['Payment']; if ($paymentMethod == '1') { $isAlipay = true; // 订单交易号是否存在 if (!$v['AlipayTN']) { return array('error' => 2, 'msg' => '订单支付信息错误'); Yii::app()->end(); } $payment = Yii::app()->alipay; // 确认收货请求参数 $request = new AlipaySendConfirmRequest(); $request->trade_no = $v['AlipayTN']; if ($params['ShipSn']) { $request->invoice_no = $params['ShipSn']; } $request->logistics_name = $params['ShipLogis']; $request->transport_type = "EXPRESS"; // var_dump($request).'<br>'; //建立请求 $html_text = $payment->buildRequestHttp($request); //解析XML //注意:该功能PHP5环境及以上支持,需开通curl、SSL等PHP配置环境。建议本地调试时使用PHP开发软件 $doc = new DOMDocument(); $doc->loadXML($html_text); if (!empty($doc->getElementsByTagName("alipay")->item(0)->nodeValue)) { $alipay = $doc->getElementsByTagName("alipay")->item(0); //echo $alipay->nodeValue; $is_success = $alipay->getElementsByTagName("is_success")->item(0)->nodeValue; if ($is_success == 'T') { $alipayResult = true; } else { $alipayResult = false; $alipayError = $alipay->getElementsByTagName("error")->item(0)->nodeValue; } } // 记录日志 $userId = Yii::app()->user->id; $payment->put_send_goods_log($v, $request->getParams(), $html_text, $alipayResult, $userId); } // 如果是支付宝,并且支付宝接口返回成功 或者 不是支付宝,保存物流信息 $bool = false; if (!$isAlipay || $isAlipay && $alipayResult) { $bool = PapOrder::model()->updateByPk($v['ID'], array('Status' => 3, 'UpdateTime' => time(), 'DeliveryTime' => time(), 'ShipSn' => $params['ShipSn'], 'ShipLogis' => $params['ShipLogis'], 'PayStatus' => $isAlipay === true ? 'WAIT_BUYER_CONFIRM_GOODS' : '')); if ($bool) { //更新待发货提醒状态 RemindService::updateRemindStatus($v['ID'], 2, $v['SellerID']); //待收货提醒给修理厂 $params = array('OrganID' => $v['BuyerID'], 'OrganType' => 3, 'HandleID' => $v['ID']); $params['type'] = array('name' => 'DD', 'key' => 2); RemindService::sendRemind($params, $v); } } else { return array('error' => 3, 'msg' => '支付宝接口繁忙,请重新发货!'); } } //订单商品 if ($goodsid && $pn) { foreach ($goodsid as $k => $v) { if (preg_match('/^[A-Za-z0-9][A-Za-z0-9,,-]*$/', $pn[$k])) { PapOrderGoods::model()->updateByPk($v, array('PN' => $pn[$k], 'UpdateTime' => time())); } } } return array('success' => 1); //$userid = RemindService::getUserID($model[0]['BuyerID']); // return array('success' => 1, 'userid' => $userid); }
/** * 响应嘉配订单支付通知 * * @author Garbin * @param int $order_id * @param array $notify_result * @return bool */ public static function respondNotify($order_id, $notify_result) { $where = "ID = {$order_id}"; //$data = array('RefundStatus' => $notify_result['trade_status']); // $orderdata=array('ReturnStatus'=>'1','Status' => $notify_result['target']); switch ($notify_result['target']) { case RORDER_READY: $where .= ' AND Status <= ' . RORDER_PENDING; $data['AlipayTN'] = $notify_result['trade_no']; $data['Status'] = RORDER_READY; break; case RORDER_PENDING: // 付款, 待发货 $where .= ' AND Status <= ' . RORDER_PENDING; $data['AlipayTN'] = $notify_result['trade_no']; $data['Status'] = RORDER_PENDING; $data['CreateTime'] = time(); //更改提醒状态为已操作 $returninfo = PapReturnOrder::model()->findByPk($order_id); RemindService::updateRemindStatus($order_id, 4, $returninfo['DealerID']); //发送待发货提醒给修理厂 $params = array('OrganID' => $returninfo['ServiceID'], 'OrganType' => 3, 'HandleID' => $order_id); $params['type'] = array('name' => 'THD', 'key' => 5); RemindService::sendRemind($params, $returninfo); break; case RORDER_ACCEPTED: // 待收货 $where .= ' AND Status <= ' . RORDER_ACCEPTED; $where .= ' AND Status >= ' . RORDER_PENDING; $data['Status'] = RORDER_ACCEPTED; $data['DeliveryTime'] = time(); break; case RORDER_ABNORMAL: //已收货,完成 $where .= ' AND Status <= ' . RORDER_ABNORMAL; $where .= ' AND Status >= ' . RORDER_ACCEPTED; $data['Status'] = RORDER_ABNORMAL; $return = PapReturnGoods::model()->find('ReturnID=:returnID', array(':returnID' => $order_id)); if ($return) { $orderID = $return['OrderID']; if ($orderID) { $wheres = "ID = {$orderID}"; PapOrder::model()->updateAll(array('ReturnStatus' => 4), $wheres); } } break; // case RORDER_READY_PAYPAL://退款 待付款 // $where .= ' AND Status = ' . RORDER_READY_PAYPA; // $data['Status']=RORDER_READY_PAYPAL; // break; // case RORDER_PAYPAL_FINISHED://退款完成 // $where .= ' AND Status =' .RORDER_PAYPAL_FINISHED; // $data['Status']=RORDER_PAYPAL_FINISHED; // break; } //PapReturnOrder::model()->updateByPk($order_id,$data) //PapReturnOrder::model()->updateAll($data, $where) if (PapReturnOrder::model()->updateAll($data, $where)) { return true; } else { return false; } }
public static function confirmgoods($orderid) { $update = PapOrder::model()->updateByPk($orderid, array('Status' => '9', 'PayTime' => time(), 'ReceiptTime' => time(), 'UpdateTime' => time()), 'IsDelete=0'); if ($update) { //更新待收货提醒状态 RemindService::updateRemindStatus($orderid, 2); //嘉配积分 $order = PapOrder::model()->findByPk($orderid); $Param = array(); if ($order) { $Param['OrderID'] = $orderid; //订单ID $Param['OrganID'] = $order['BuyerID']; //购买方机构ID $Param['TotalAmount'] = $order['TotalAmount']; //订单总金额 self::saveIntegral($Param); } } return $update; }
public function actionCancelOrder() { $orderid = Yii::app()->request->getParam('orderid'); $OrganID = Yii::app()->user->getOrganID(); $result = PapOrder::model()->updateByPk($orderid, array('Status' => '10', 'UpdateTime' => time()), "BuyerID = {$OrganID} and ((Payment=1 and Status=1) or (Payment=2 and Status=2))"); if ($result) { //更改待付款、待发货提醒状态 RemindService::updateRemindStatus($orderid, '1,2', $OrganID = 'no'); echo json_encode(array('success' => '1')); } else { echo json_encode(array('error' => '1', 'msg' => '取消订单失败,请稍后再试!')); } }
public function actionAddreturnorder() { if (!$_POST['Goods']) { $this->redirect(array('index')); } $goodsArr = explode(',', $_POST['Goods']); $sql = 'insert into `pap_return_goods` values'; $idStr = '('; foreach ($goodsArr as $v) { $g = explode('-', $v); $idStr .= $g[0] . ','; //(455, if (!$g[6]) { //如果该商品版本就空 $g[6] = 'NULL'; } $sql .= "(NULL,{$g['0']},{$g['1']},'ReturnID',{$g['2']},{$g['3']},{$g['4']},'',{$g['5']},{$g['6']}),"; } $idStr = substr($idStr, 0, -1) . ')'; $c = new CDbCriteria(); $c->addCondition("ID in {$idStr} and ReturnStatus=0", 'AND'); $m = PapOrder::model()->findAll($c); if (!$m) { echo json_encode(array('error' => '提交退货单失败,请先刷新订单列表!')); exit; } $organID = Yii::app()->user->getOrganID(); $model = new PapReturnOrder(); $model->ReturnNO = 'THD' . ReturnorderService::gen_order_sn(); $model->DealerID = $m[0]['SellerID']; $model->ServiceID = $organID; $model->Status = 1; //待审核 $model->CreateTime = time(); $model->Price = $_POST['Price']; $model->LogtigCompany = '顺丰'; $model->Result = $_POST['Reseaon']; $model->Type = $m[0]['Status'] == 9 ? 2 : 1; $model->ReturnNumber = 1; $model->save(); if (!$model->save()) { echo json_encode(array('error' => '提交退货单失败,请稍后再试!')); exit; } $id = $model->attributes['ID']; $editSql = "update `pap_order` set ReturnStatus=1 where ID in {$idStr}"; $sql = str_replace('ReturnID', $id, substr($sql, 0, -1)); // echo $sql; // exit; $ins = Yii::app()->papdb->createCommand($sql)->execute(); $edt = Yii::app()->papdb->createCommand($editSql)->execute(); //更新待收货提醒状态 RemindService::updateRemindStatus($idStr, 2, $organID); //发送待审核提醒给经销商 $params = array('OrganID' => $model['DealerID'], 'OrganType' => 2, 'HandleID' => $id); $params['type'] = array('name' => 'THD', 'key' => 4); RemindService::sendRemind($params); if ($ins && $edt) { echo json_encode(array('success' => 1)); } }