Commit 3305b7a0 authored by liuyuzhen's avatar liuyuzhen

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

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