Browse Source

提现失败提示+退款回调

master
weigang 5 years ago
parent
commit
f3b861fdb9
  1. 2
      app/Constants/v3/ErrorCode.php
  2. 6
      app/Controller/v3/NotifyController.php
  3. 2
      app/JsonRpc/OrdersService.php
  4. 2
      app/Service/v3/Implementations/OrderOnlineService.php
  5. 20
      app/Service/v3/Implementations/PaymentService.php

2
app/Constants/v3/ErrorCode.php

@ -125,7 +125,7 @@ class ErrorCode extends AbstractConstants
const PAYMENT_AMOUNT_LIMIT = 655;
/**
* @Message("提现失败")
* @Message("工作人员已下班,请明天提现")
*/
const WITHDRAW_PAYMENT_FAIL = 656;

6
app/Controller/v3/NotifyController.php

@ -304,8 +304,6 @@ class NotifyController extends BaseController
// 通知回调,进行业务处理
$response = $app->handleRefundedNotify(function ($message, $reqInfo, $fail) use ($app) {
var_dump('messga', $message);
var_dump('$reqInfo', $reqInfo);
Db::beginTransaction();
try {
// 支付失败或者通知失败
@ -326,14 +324,14 @@ class NotifyController extends BaseController
// 查询订单
$orderMain = OrderMain::query()
->whereIn('state', [OrderState::PAID, OrderState::DELIVERY, OrderState::COMPLETED, OrderState::EVALUATED, OrderState::REFUNDING])
->where(['global_order_id' => $message['out_trade_no'], 'pay_type' => Payment::WECHAT, 'refund_time' => 0])
->where(['global_order_id' => $reqInfo['out_trade_no'], 'pay_type' => Payment::WECHAT, 'refund_time' => 0])
->first();
// 订单不存在
if (empty($orderMain)) {
$this->log->event(
LogLabel::ORDER_REFUND_NOTIFY_LOG,
['global_order_id_fail' => $message['out_trade_no']]
['global_order_id_fail' => $reqInfo['out_trade_no']]
);
Db::rollBack();
return true;

2
app/JsonRpc/OrdersService.php

@ -96,7 +96,7 @@ class OrdersService implements OrdersServiceInterface
{
try {
$result = $this->orderOnlineService->doRefund($global_order_id, $user_id);
var_dump('$result', $result);
return [
"status" => 200,
"code" => 0,

2
app/Service/v3/Implementations/OrderOnlineService.php

@ -584,7 +584,7 @@ class OrderOnlineService implements OrderOnlineServiceInterface
{
$orderMain = $this->check($globalOrderId, $userId, OrderState::REFUNDING);
var_dump('$orderMain', $orderMain);
// 微信退款
if ($orderMain->pay_type == Payment::WECHAT) {
return $this->paymentService->undo($orderMain->global_order_id, $userId);

20
app/Service/v3/Implementations/PaymentService.php

@ -136,7 +136,7 @@ class PaymentService implements PaymentServiceInterface
'notify_url' => config('wechat.notify_url.refund'),
]
);
var_dump('payresult', $result);
if ($result['return_code'] == 'SUCCESS' && isset($result['result_code']) && $result['result_code'] == "SUCCESS") {
return true;
} else {
@ -209,15 +209,15 @@ class PaymentService implements PaymentServiceInterface
$msg = $result['err_code_des'];
}
if ($result['err_code'] == 'SENDNUM_LIMIT') {
throw new ErrorCodeException(ErrorCode::PAYMENT_SEND_NUM_LIMIT);
} elseif ($result['err_code'] == 'V2_ACCOUNT_SIMPLE_BAN') {
throw new ErrorCodeException(ErrorCode::PAYMENT_V2_ACCOUNT_SIMPLE_BAN);
} elseif ($result['err_code'] == 'NAME_MISMATCH') {
throw new ErrorCodeException(ErrorCode::PAYMENT_NAME_MISMATCH);
} elseif ($result['err_code'] == 'AMOUNT_LIMIT') {
throw new ErrorCodeException(ErrorCode::PAYMENT_AMOUNT_LIMIT);
}
// if ($result['err_code'] == 'SENDNUM_LIMIT') {
// throw new ErrorCodeException(ErrorCode::PAYMENT_SEND_NUM_LIMIT);
// } elseif ($result['err_code'] == 'V2_ACCOUNT_SIMPLE_BAN') {
// throw new ErrorCodeException(ErrorCode::PAYMENT_V2_ACCOUNT_SIMPLE_BAN);
// } elseif ($result['err_code'] == 'NAME_MISMATCH') {
// throw new ErrorCodeException(ErrorCode::PAYMENT_NAME_MISMATCH);
// } elseif ($result['err_code'] == 'AMOUNT_LIMIT') {
// throw new ErrorCodeException(ErrorCode::PAYMENT_AMOUNT_LIMIT);
// }
throw new ErrorCodeException(ErrorCode::WITHDRAW_PAYMENT_FAIL);
}

Loading…
Cancel
Save