|
|
@@ -570,16 +570,13 @@ class OrderService extends BaseService
|
|
|
//退款订单
|
|
|
public static function refund($order, $post)
|
|
|
{
|
|
|
-
|
|
|
- //订单状态变更 refund = 2
|
|
|
$orderId = $order['id'];
|
|
|
-
|
|
|
$order = OrderClass::getLockById($orderId);
|
|
|
if (empty($order)) {
|
|
|
util::fail('没有找到订单');
|
|
|
}
|
|
|
-// $order->refund = 2;
|
|
|
-// $order->save();
|
|
|
+ $order->refund = 2;
|
|
|
+ $order->save();
|
|
|
|
|
|
$purchaseId = $order->purchaseId;
|
|
|
$cg = PurchaseClass::getLockById($purchaseId);
|
|
|
@@ -595,20 +592,20 @@ class OrderService extends BaseService
|
|
|
$post['relateOrderSn'] = $order->orderSn;
|
|
|
$refundOrder = RefundOrderClass::addOrder($post);
|
|
|
|
|
|
- //退钱(根据订单的支付类型 payWay)
|
|
|
$payWay = $order['payWay'];
|
|
|
+ //微信退钱
|
|
|
if ($payWay == dict::getDict('payWay', 'wxPay')) {
|
|
|
- //微信
|
|
|
|
|
|
ini_set('date.timezone', 'Asia/Shanghai');
|
|
|
- error_reporting(E_ERROR);
|
|
|
$wx = Yii::getAlias("@vendor/wxPayApi_v3.0.10");
|
|
|
require_once($wx . '/lib/WxPay.Api.php');
|
|
|
require_once($wx . '/example/WxPay.Config.php');
|
|
|
|
|
|
-
|
|
|
- $total_fee = $cg->realPrice * 100;
|
|
|
- $refund_fee = 1;
|
|
|
+ $totalFee = $cg->realPrice * 100;
|
|
|
+ $refundFee = $refundOrder['refundPrice'] ?? 0;
|
|
|
+ if (is_numeric($refundFee) == false || $refundFee <= 0) {
|
|
|
+ util::fail('退款金额有问题');
|
|
|
+ }
|
|
|
|
|
|
$refundOrderSn = $refundOrder['orderSn'];
|
|
|
|
|
|
@@ -617,12 +614,10 @@ class OrderService extends BaseService
|
|
|
$appId = $merchantExt['miniAppId'] ?? '';
|
|
|
$key = $merchantExt['wxPayKey'] ?? '';
|
|
|
|
|
|
- Yii::info($mid . ' ' . $appId . ' 88888 ');
|
|
|
-
|
|
|
$input = new \WxPayRefund();
|
|
|
$input->SetTransaction_id($transaction_id);
|
|
|
- $input->SetTotal_fee($total_fee);
|
|
|
- $input->SetRefund_fee($refund_fee);
|
|
|
+ $input->SetTotal_fee($totalFee);
|
|
|
+ $input->SetRefund_fee($refundFee);
|
|
|
|
|
|
$config = new \WxPayConfig();
|
|
|
$config->SetAppId($appId);
|
|
|
@@ -631,8 +626,34 @@ class OrderService extends BaseService
|
|
|
|
|
|
$input->SetOut_refund_no($refundOrderSn);
|
|
|
$input->SetOp_user_id($mid);
|
|
|
- print_r(\WxPayApi::refund($config, $input));
|
|
|
-
|
|
|
+ $return = \WxPayApi::refund($config, $input);
|
|
|
+
|
|
|
+ /**
|
|
|
+ Array
|
|
|
+ (
|
|
|
+ [appid] => wxe4675bab299a52f7
|
|
|
+ [cash_fee] => 30
|
|
|
+ [cash_refund_fee] => 1
|
|
|
+ [coupon_refund_count] => 0
|
|
|
+ [coupon_refund_fee] => 0
|
|
|
+ [mch_id] => 1606749059
|
|
|
+ [nonce_str] => H8c0xDd05StJKsZH
|
|
|
+ [out_refund_no] => TK_CS26316910
|
|
|
+ [out_trade_no] => CG_CS26317630
|
|
|
+ [refund_channel] => Array
|
|
|
+ (
|
|
|
+ )
|
|
|
+
|
|
|
+ [refund_fee] => 1
|
|
|
+ [refund_id] => 50300908732021062810180131041
|
|
|
+ [result_code] => SUCCESS
|
|
|
+ [return_code] => SUCCESS
|
|
|
+ [return_msg] => OK
|
|
|
+ [sign] => 5E84E0B143AE773269836C1F5C760EBE98CCD8A8A874A70F07DC6268DC81EDE7
|
|
|
+ [total_fee] => 30
|
|
|
+ [transaction_id] => 4200001128202106287303173532
|
|
|
+ )
|
|
|
+ */
|
|
|
|
|
|
}
|
|
|
|