Commit 2e3d26c8 authored by wwccw0591's avatar wwccw0591

pc

parent c0a653b4
...@@ -117,7 +117,7 @@ class ApiConst ...@@ -117,7 +117,7 @@ class ApiConst
const deleteStateOne = 1; const deleteStateOne = 1;
const deleteStateZero = 0; const deleteStateZero = 0;
const deleteStateTwo = 2; const deleteStateTwo = 2;
const orderStateWaitConfirmBeyond = 300; const orderStateWaitConfirmBeyond = 600;
const orderCancelBeyondTime=600; const orderCancelBeyondTime=600;
const orderWaitRecieveTwentyFourHours = 86400; const orderWaitRecieveTwentyFourHours = 86400;
...@@ -183,6 +183,8 @@ class ApiConst ...@@ -183,6 +183,8 @@ class ApiConst
const alipay = 3; const alipay = 3;
const tenpay = 4; const tenpay = 4;
const wxProgram=5; const wxProgram=5;
const alipayRefundSuccess=10000;
//配送方式 //配送方式
const bySelf = 0; const bySelf = 0;
const bySeller = 1; const bySeller = 1;
......
...@@ -272,13 +272,22 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -272,13 +272,22 @@ class OrderServiceModel extends \Business\AbstractModel
public function cancel($orderId, $memberId = false) public function cancel($orderId, $memberId = false)
{ {
$orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName); $orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName);
$memberDao = \DAO\MemberModel::getInstance(DbNameConst::masterDBConnectName); $refundReturnDao = \DAO\Order\RefundReturnModel::getInstance(DbNameConst::masterDBConnectName);
$order = $orderDao->findByOrderId($orderId); $orderGoodsDao = \DAO\Order\OrderGoodsModel::getInstance(DbNameConst::masterDBConnectName);
$order = $orderDao->findByOrderId($orderId,$orderDao->getOrderDetailField());
//判断订单目前状态是否允许取消 //判断订单目前状态是否允许取消
$isAllowCancel = $orderDao->isAllowCancel($order); $isAllowCancel = $orderDao->isAllowCancel($order);
if ($isAllowCancel) { if ($isAllowCancel) {
$res = $orderDao->updateStatusByOrderId($orderId, ApiConst::orderStateCancel); $res = $orderDao->updateStatusByOrderId($orderId, ApiConst::orderStateCancel);
if ($res) { if ($res) {
$order['refundOrderNo']=$refundReturnDao->getRefundsn($order['storeId']);
$resultRefund=$refundReturnDao->refundMoney($order);
if($resultRefund){
$where['order_id']=$order['orderId'];
//$orderGoodsUpdateData['refund_state_name']='退款成功';
$orderGoodsUpdateData['is_refund']=1;
$orderGoodsDao->update($where,$orderGoodsUpdateData);
}
if ($memberId) { if ($memberId) {
$orderDao->deleteOrderCache($memberId, $orderId, $order['store_id']); $orderDao->deleteOrderCache($memberId, $orderId, $order['store_id']);
// $memberDao->fromOrderStateToOrderState($memberId,$order['order_state'],ApiConst::orderStateCancel); // $memberDao->fromOrderStateToOrderState($memberId,$order['order_state'],ApiConst::orderStateCancel);
...@@ -397,7 +406,9 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -397,7 +406,9 @@ class OrderServiceModel extends \Business\AbstractModel
$push->sendTcpMessage(); $push->sendTcpMessage();
file_put_contents($savePath, TIMESTAMP); file_put_contents($savePath, TIMESTAMP);
} }
public function refundReturnMessage(){
}
public function changeOrderStateCancelUnconditional($orderInfo) public function changeOrderStateCancelUnconditional($orderInfo)
{ {
$orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName); $orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName);
...@@ -432,39 +443,46 @@ class OrderServiceModel extends \Business\AbstractModel ...@@ -432,39 +443,46 @@ class OrderServiceModel extends \Business\AbstractModel
if (!$res) { if (!$res) {
echo '退款记录:' . json_encode($orderInfo) . '写入失败!!' . "\r\n"; echo '退款记录:' . json_encode($orderInfo) . '写入失败!!' . "\r\n";
}else{ }else{
$param['refundOrderNo'] = $refundSn; // $param['refundOrderNo'] = $refundSn;
//这个有可能多次退款的时候要变 // //这个有可能多次退款的时候要变
$param['outTradeNo'] = $orderInfo['paySn']; // $param['outTradeNo'] = $orderInfo['paySn'];
$param['totalFee'] = $orderInfo['orderAmount']; // $param['totalFee'] = $orderInfo['orderAmount'];
$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 (intval($orderInfo['paymentType']) == ApiConst::wxAppPayType) { // if (intval($orderInfo['paymentType']) == ApiConst::wxAppPayType) {
$wxpay = \Payment\WxPay::getInstance(); // $wxpay = \Payment\WxPay::getInstance();
$refund_return = $wxpay->refund($param); // $refund_return = $wxpay->refund($param);
echo "微信返回:".json_encode($refund_return); // echo "微信返回:".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')) {
echo '微信退款操作执行失败!'.$orderInfo['orderId']."\r\n"; // echo '微信退款操作执行失败!'.$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=\Payment\Alipay::getInstance();
$return = $aliPay->refund($param); // $return = $aliPay->refund($param);
echo "支付宝返回:".json_encode($return); // echo "支付宝返回:".json_encode($return);
$resultCode = $return->code; // $resultCode = $return->code;
if(!empty($resultCode)&&$resultCode == 10000){ // if(!empty($resultCode)&&$resultCode == 10000){
return true; // return true;
} else { // } else {
echo '支付宝退款操作执行失败:'.$orderInfo['orderId']."\r\n"; // echo '支付宝退款操作执行失败:'.$orderInfo['orderId']."\r\n";
return false; // return false;
} // }
// }
$orderInfo['refundOrderNo']=$refundSn;
if($refundReturnDao->refundMoney($orderInfo)){
$where['order_id']=$orderInfo['orderId'];
//$orderGoodsUpdateData['refund_state_name']='退款成功';
$orderGoodsUpdateData['is_refund']=1;
$orderGoodsDao->update($where,$orderGoodsUpdateData);
echo " 退款操作操作成功:".$orderId;
return true;
}else{
echo $refundReturnDao->errorMessage;
} }
$where['order_id']=$orderInfo['orderId'];$orderGoodsUpdateData['refund_state_name']='退款成功';
$orderGoodsUpdateData['refund_id']=1;
$orderGoodsDao->update($where,$orderGoodsUpdateData);
echo " 退款操作操作成功:".$orderId;
return true;
} }
......
...@@ -133,7 +133,10 @@ class OrderModel extends \DAO\AbstractModel ...@@ -133,7 +133,10 @@ class OrderModel extends \DAO\AbstractModel
//判断订单是否允许取消 //判断订单是否允许取消
public function isAllowCancel($order) public function isAllowCancel($order)
{ {
if ($order['order_state'] == ApiConst::orderStateWaitPay || $order['order_state'] == ApiConst::orderStateWaitConfirm || (($order['order_state'] == ApiConst::orderStateWaitSend || $order['order_state'] == ApiConst::orderStateWaitRecieve) && $order['is_receive_payment'] == ApiConst::noreceivePayment)) { if ($order['orderState'] == ApiConst::orderStateWaitPay || $order['orderState'] == ApiConst::orderStateWaitConfirm || (($order['orderState'] == ApiConst::orderStateWaitSend || $order['orderState'] == ApiConst::orderStateWaitRecieve) && $order['isReceivePayment'] == ApiConst::noreceivePayment)) {
if(($order['paymentTime']+ApiConst::tenMinSecond)<TIMESTAMP && $order['paymentTime']>ApiConst::zero ){
return false;
}
return true; return true;
} else { } else {
return false; return false;
...@@ -542,7 +545,9 @@ class OrderModel extends \DAO\AbstractModel ...@@ -542,7 +545,9 @@ class OrderModel extends \DAO\AbstractModel
return $this->getStoreDetailText($order); return $this->getStoreDetailText($order);
} }
} }
public function refundReturn($order){
}
//获得退款状态 //获得退款状态
public function getRefundText($order) public function getRefundText($order)
{ {
......
...@@ -12,6 +12,7 @@ use Our\DescribeConst; ...@@ -12,6 +12,7 @@ use Our\DescribeConst;
use Our\ImageConst; use Our\ImageConst;
use Our\ImageUtil; use Our\ImageUtil;
use Our\OrderConst; use Our\OrderConst;
use Payment\Alipay;
class RefundReturnModel extends \DAO\AbstractModel { class RefundReturnModel extends \DAO\AbstractModel {
...@@ -30,6 +31,7 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -30,6 +31,7 @@ class RefundReturnModel extends \DAO\AbstractModel {
* @var string * @var string
*/ */
protected $_primaryKey = 'refund_id'; protected $_primaryKey = 'refund_id';
public $errorMessage='';
public function init(){ public function init(){
} }
...@@ -256,6 +258,36 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -256,6 +258,36 @@ class RefundReturnModel extends \DAO\AbstractModel {
return $picsRes; return $picsRes;
} }
public function refundMoney($orderInfo){
$param['refundOrderNo'] = !empty($orderInfo['refundOrderNo'])?$orderInfo['refundOrderNo']:$this->getRefundsn($orderInfo['storeId']);
//这个有可能多次退款的时候要变
$param['outTradeNo'] = $orderInfo['paySn'];
$param['totalFee'] = $orderInfo['orderAmount'];
$param['refundFee'] = $orderInfo['orderAmount'];//全额退款
$param['storeId']=$orderInfo['storeId'];
$param['buyerId']=$orderInfo['buyerId'];
if (intval($orderInfo['paymentType']) == ApiConst::wxAppPayType) {
$wxpay = \Payment\WxPay::getInstance();
$refund_return = $wxpay->refund($param);
$this->errorMessage= "微信返回:".json_encode($refund_return);
if (!($refund_return['return_code'] == 'SUCCESS' && $refund_return['result_code'] == 'SUCCESS')) {
$this->errorMessage='微信退款操作执行失败!'.$orderInfo['orderId']."\r\n";
return false;
}
} else if (intval($orderInfo['paymentType']) == ApiConst::alipay) {
$aliPay=\Payment\Alipay::getInstance();
$return = $aliPay->refund($param);
$this->errorMessage="支付宝返回:".json_encode($return);
$resultCode = $return->code;
if(!empty($resultCode)&&$resultCode ==ApiConst::alipayRefundSuccess ){
return true;
} else {
$this->errorMessage= '支付宝退款操作执行失败:'.$orderInfo['orderId']."\r\n";
return false;
}
}
}
/** /**
* 增加退款退货 * 增加退款退货
* *
......
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