Commit 8bad6034 authored by zhz's avatar zhz

Merge branch 'master_dev' of git.shenbd.com:qm-develop/shenbd into zhz

parents c5698a74 a54236a9
...@@ -26,8 +26,8 @@ class TencentPay { ...@@ -26,8 +26,8 @@ class TencentPay {
protected $prepay_id =''; protected $prepay_id ='';
protected $tradeType = ''; protected $tradeType = '';
public $data;//接收到的数据,类型为关联数组 public $data;//接收到的数据,类型为关联数组
var $returnParameters;//返回参数,类型为关联数组 public $returnParameters;//返回参数,类型为关联数组
var $parameters;//请求参数,类型为关联数组 public $parameters;//请求参数,类型为关联数组
public function setRequestParams($orderInfo){ public function setRequestParams($orderInfo){
$pay_sn = $orderInfo['paySn']; $pay_sn = $orderInfo['paySn'];
...@@ -158,7 +158,11 @@ class TencentPay { ...@@ -158,7 +158,11 @@ class TencentPay {
{ {
if($signType=='MD5'){ if($signType=='MD5'){
//echo '加签参数:'.json_encode($this->parameters)."\n"; //echo '加签参数:'.json_encode($this->parameters)."\n";
$this->parameters["sign"] = $this->getSign($this->parameters);//签名 if(empty($this->parameters)){
echo 234234;exit;
}
$tempParam = $this->parameters;
$this->parameters["sign"] = $this->getSign($tempParam);//签名
}else{ }else{
$this->parameters["sign"] = $this->getHMACSHA1Sign($this->parameters,'sha256'); $this->parameters["sign"] = $this->getHMACSHA1Sign($this->parameters,'sha256');
} }
...@@ -280,6 +284,9 @@ class TencentPay { ...@@ -280,6 +284,9 @@ class TencentPay {
*/ */
public function getSign($Obj) public function getSign($Obj)
{ {
/*if(empty($Obj)){
$Obj = $this->parameters;
}*/
foreach ($Obj as $k => $v) foreach ($Obj as $k => $v)
{ {
$Parameters[$k] = $v; $Parameters[$k] = $v;
...@@ -287,11 +294,11 @@ class TencentPay { ...@@ -287,11 +294,11 @@ class TencentPay {
//签名步骤一:按字典序排序参数 //签名步骤一:按字典序排序参数
ksort($Parameters); ksort($Parameters);
$String = $this->formatBizQueryParaMap($Parameters, false); $String = $this->formatBizQueryParaMap($Parameters, false);
$String = $String."&key=".$this->key; $String = $String."&key=".$this->key;
$String = str_replace(array("\r\n", "\r", "\n"," "), "", $String); $String = str_replace(array("\r\n", "\r", "\n"," "), "", $String);
$String = md5($String); $String = md5($String);
$result_ = strtoupper($String); $result_ = strtoupper($String);
//echo "\r\n sign:"."$result_";
return $result_; return $result_;
} }
......
...@@ -91,7 +91,6 @@ class WxLitePay extends \Payment\TencentPay{ ...@@ -91,7 +91,6 @@ class WxLitePay extends \Payment\TencentPay{
$this->parameters['out_trade_no'] = $param['outTradeNo']; $this->parameters['out_trade_no'] = $param['outTradeNo'];
$this->parameters['out_refund_no'] = $param['refundOrderNo']; $this->parameters['out_refund_no'] = $param['refundOrderNo'];
$xml = $this->createXml(); $xml = $this->createXml();
$response = $this->postXmlSSLCurl($xml, $this->refundUrl, 6); $response = $this->postXmlSSLCurl($xml, $this->refundUrl, 6);
$values = $this->xmlToArray($response); $values = $this->xmlToArray($response);
......
...@@ -895,7 +895,8 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -895,7 +895,8 @@ class OrderServiceModel extends \Business\AbstractModel
// } // }
// } // }
$orderInfo['refundOrderNo']=$refundSn; $orderInfo['refundOrderNo']=$refundSn;
if($refundReturnDao->refundMoney($orderInfo)){ $refundRes=$refundReturnDao->refundMoney($orderInfo);
if($refundRes){
$where['order_id']=$orderInfo['orderId']; $where['order_id']=$orderInfo['orderId'];
//$orderGoodsUpdateData['refund_state_name']='退款成功'; //$orderGoodsUpdateData['refund_state_name']='退款成功';
$orderGoodsUpdateData['is_refund']=1; $orderGoodsUpdateData['is_refund']=1;
...@@ -906,6 +907,7 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -906,6 +907,7 @@ class OrderServiceModel extends \Business\AbstractModel
echo $refundReturnDao->errorMessage."orderId:".$orderId; echo $refundReturnDao->errorMessage."orderId:".$orderId;
return false; return false;
} }
$orderDao->update(array('order_id' =>$orderInfo['orderId']),array('order_note'=>$refundReturnDao->errorMessage));
} }
...@@ -985,13 +987,16 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -985,13 +987,16 @@ class OrderServiceModel extends \Business\AbstractModel
} }
file_put_contents($this->baseDir . \Our\PathConst::orderCancelTime, $endTime); file_put_contents($this->baseDir . \Our\PathConst::orderCancelTime, $endTime);
} }
public function changeOrderStatusSecond() public function changeOrderStatusSecond($bTime=false)
{ {
$orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName); $orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName);
$endTime = file_get_contents($this->baseDir . \Our\PathConst::orderCloseWaitRecieveOrder); $endTime = file_get_contents($this->baseDir . \Our\PathConst::orderCloseWaitRecieveOrder);
$endTime = $endTime ? $endTime : ApiConst::zero; $endTime = $endTime ? $endTime : ApiConst::zero;
$beginTime = $endTime - ApiConst::halfDaySecond; $beginTime = $endTime - ApiConst::tenDaySecond;
$storeDao=\DAO\StoreModel::getInstance(); $storeDao=\DAO\StoreModel::getInstance();
if($bTime){
$beginTime=0;
}
// $beginTime=0; // $beginTime=0;
$orders = $orderDao->getMustCecelRecieveOrders($beginTime, $endTime, $orderDao->getOrderDetailField()); $orders = $orderDao->getMustCecelRecieveOrders($beginTime, $endTime, $orderDao->getOrderDetailField());
$newOrders=array(); $newOrders=array();
...@@ -1085,10 +1090,12 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -1085,10 +1090,12 @@ class OrderServiceModel extends \Business\AbstractModel
if ($order['paymentTime'] > ApiConst::zero && in_array($order['paymentType'], ArrayConst::orderPayTypeOnlines)) { if ($order['paymentTime'] > ApiConst::zero && in_array($order['paymentType'], ArrayConst::orderPayTypeOnlines)) {
$isRefunMoney= $this->changeOrderStateCancelUnconditional($order); $isRefunMoney= $this->changeOrderStateCancelUnconditional($order);
if(!$isRefunMoney){ if(!$isRefunMoney){
$orderDao->db->doRollback(); $orderDao->db->doRollback();
continue; continue;
} }
} }
array_push($orderIds,$order['orderId']); array_push($orderIds,$order['orderId']);
$this->updateOrderGoodsStoregeByOrderIds($orderIds); $this->updateOrderGoodsStoregeByOrderIds($orderIds);
array_push($newOrders,$order); array_push($newOrders,$order);
...@@ -1097,6 +1104,7 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -1097,6 +1104,7 @@ class OrderServiceModel extends \Business\AbstractModel
$orderDao->deleteOrderCache($order['buyerId'],(string)$order['orderId'],$order['storeId'],true); $orderDao->deleteOrderCache($order['buyerId'],(string)$order['orderId'],$order['storeId'],true);
$storeDao->deleteStoreCache($order['storeId'],$order['orderId']); $storeDao->deleteStoreCache($order['storeId'],$order['orderId']);
$push=\Our\Push::getInstance(); $push=\Our\Push::getInstance();
echo json_encode($order);
$pushData=array('storeId'=>$order['storeId'], $pushData=array('storeId'=>$order['storeId'],
'type'=>ApiConst::messageWaitReceive, 'type'=>ApiConst::messageWaitReceive,
'waitReceiveCount'=>ApiConst::reduceOne, 'waitReceiveCount'=>ApiConst::reduceOne,
......
...@@ -1007,7 +1007,7 @@ class OrderModel extends \DAO\AbstractModel ...@@ -1007,7 +1007,7 @@ class OrderModel extends \DAO\AbstractModel
public function getMustCecelRecieveOrders($beginTime=ApiConst::zero, $endTime, $field = '*') public function getMustCecelRecieveOrders($beginTime=ApiConst::zero, $endTime, $field = '*')
{ {
$this->setDb($this->dbName); $this->setDb($this->dbName);
$where=Common::format(" add_time between {0} and {1} and order_state={2}",$beginTime,$endTime,ApiConst::orderStateWaitConfirm); $where=Common::format(" order_state={2} and add_time between {0} and {1} ",$beginTime,$endTime,ApiConst::orderStateWaitConfirm);
$list = $this->db->select($field)->from($this->_tableName)->where($where)->order('add_time','desc')->fetchAll(); $list = $this->db->select($field)->from($this->_tableName)->where($where)->order('add_time','desc')->fetchAll();
return $list; return $list;
} }
......
...@@ -474,6 +474,7 @@ class RefundReturnModel extends \DAO\AbstractModel ...@@ -474,6 +474,7 @@ class RefundReturnModel extends \DAO\AbstractModel
$param['refundFee'] = $orderInfo['orderAmount'];//全额退款 $param['refundFee'] = $orderInfo['orderAmount'];//全额退款
$param['storeId'] = $orderInfo['storeId']; $param['storeId'] = $orderInfo['storeId'];
$param['buyerId'] = $orderInfo['buyerId']; $param['buyerId'] = $orderInfo['buyerId'];
if (CURRENTVERSION != \Our\NameConst::versionDefault && in_array(intval($orderInfo['paymentType']), array(\Our\ApiConst::wxAppPayType, \Our\ApiConst::wxProgram))) { if (CURRENTVERSION != \Our\NameConst::versionDefault && in_array(intval($orderInfo['paymentType']), array(\Our\ApiConst::wxAppPayType, \Our\ApiConst::wxProgram))) {
$mchIdArray = \DAO\StoreModel::getInstance()->getStoreWxMchId($param['storeId']); $mchIdArray = \DAO\StoreModel::getInstance()->getStoreWxMchId($param['storeId']);
if ($mchIdArray['errorCode'] > 0) { if ($mchIdArray['errorCode'] > 0) {
...@@ -483,17 +484,23 @@ class RefundReturnModel extends \DAO\AbstractModel ...@@ -483,17 +484,23 @@ class RefundReturnModel extends \DAO\AbstractModel
$param['subMchId'] = $mchIdArray['mchId']; $param['subMchId'] = $mchIdArray['mchId'];
} }
if (intval($orderInfo['paymentType']) == ApiConst::wxAppPayType) { if (intval($orderInfo['paymentType']) == ApiConst::wxAppPayType) {
$wxpay = \Payment\WxPay::getInstance(); $wxpay = new \Payment\WxPay();
//unset($param['subMchId']); //unset($param['subMchId']);
$refund_return = $wxpay->refund($param); $refund_return = $wxpay->refund($param);
unset($wxpay);
$this->errorMessage = "微信返回:" . json_encode($refund_return); $this->errorMessage = "微信返回:" . json_encode($refund_return);
if (!($refund_return['return_code'] == 'SUCCESS' && $refund_return['result_code'] == 'SUCCESS')) { if (!($refund_return['return_code'] == 'SUCCESS' && $refund_return['result_code'] == 'SUCCESS')) {
if($refund_return['err_code_des']=='订单已全额退款' || $refund_return['err_code_des']=='订单已Q68额退款'){
$this->errorMessage = date('Y-m-d') . $refund_return['err_code_des'] . $orderInfo['orderId'] . "\r\n";
return true;
}
$this->errorMessage = date('Y-m-d') . '微信退款操作执行失败!' . $orderInfo['orderId'] . "\r\n"; $this->errorMessage = date('Y-m-d') . '微信退款操作执行失败!' . $orderInfo['orderId'] . "\r\n";
return false; return false;
} }
} else if (intval($orderInfo['paymentType']) == ApiConst::alipay) { } else if (intval($orderInfo['paymentType']) == ApiConst::alipay) {
$aliPay = \Payment\Alipay::getInstance(); $aliPay = new \Payment\Alipay();
$return = $aliPay->refund($param); $return = $aliPay->refund($param);
unset($aliPay);
$this->errorMessage = "支付宝返回:" . json_encode($return); $this->errorMessage = "支付宝返回:" . json_encode($return);
$resultCode = $return->code; $resultCode = $return->code;
if (!empty($resultCode) && $resultCode == ApiConst::alipayRefundSuccess) { if (!empty($resultCode) && $resultCode == ApiConst::alipayRefundSuccess) {
...@@ -503,13 +510,20 @@ class RefundReturnModel extends \DAO\AbstractModel ...@@ -503,13 +510,20 @@ class RefundReturnModel extends \DAO\AbstractModel
return false; return false;
} }
} else if (intval($orderInfo['paymentType']) == ApiConst::wxProgram) { } else if (intval($orderInfo['paymentType']) == ApiConst::wxProgram) {
$wxpay = \Payment\WxLitePay::getInstance(); $wxpay = new \Payment\WxLitePay();
$refund_return = $wxpay->refund($param); $refund_return = $wxpay->refund($param);
unset($wxpay);
$this->errorMessage = "微信返回:" . json_encode($refund_return)."\r\n";
if (!($refund_return['return_code'] == 'SUCCESS' && $refund_return['result_code'] == 'SUCCESS')) { if (!($refund_return['return_code'] == 'SUCCESS' && $refund_return['result_code'] == 'SUCCESS')) {
if($refund_return['err_code_des']=='订单已全额退款' || $refund_return['err_code_des']=='订单已Q68额退款'){
$this->errorMessage = date('Y-m-d') . $refund_return['err_code_des'] . $orderInfo['orderId'] . "\r\n";
return true;
}
$this->errorMessage = date('Y-m-d') . '微信退款操作执行失败!' . $orderInfo['orderId'] . "\r\n"; $this->errorMessage = date('Y-m-d') . '微信退款操作执行失败!' . $orderInfo['orderId'] . "\r\n";
return false; return false;
} }
} }
return true; return true;
} }
......
...@@ -61,7 +61,7 @@ class cliOrderClose extends basecli ...@@ -61,7 +61,7 @@ class cliOrderClose extends basecli
echo '****create dir fail ****'; echo '****create dir fail ****';
exit; exit;
} }
$this->lockFileName = $lockDir .DS.'close.locks'; $this->lockFileName = $lockDir .DS.'closeSecond.locks';
if( file_exists( $this->lockFileName ) ) if( file_exists( $this->lockFileName ) )
{ {
$stat = stat($this->lockFileName); $stat = stat($this->lockFileName);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment