|
@@ -332,16 +332,8 @@ class PaymentService
|
|
|
'reason' => $reason
|
|
|
]);
|
|
|
|
|
|
- // 记录原始响应内容
|
|
|
- Log::info('微信退款原始响应', [
|
|
|
- 'status_code' => $response->getStatusCode(),
|
|
|
- 'headers' => $response->getHeaders(),
|
|
|
- 'body' => $response->getContent()
|
|
|
- ]);
|
|
|
-
|
|
|
- // 尝试获取响应内容
|
|
|
- $content = $response->getContent();
|
|
|
- $result = $content ? json_decode($content, true) : [];
|
|
|
+ // 获取响应内容
|
|
|
+ $result = json_decode($response->getContent(), true);
|
|
|
|
|
|
// 记录退款日志
|
|
|
Log::info('微信退款请求结果', [
|
|
@@ -352,19 +344,28 @@ class PaymentService
|
|
|
'result' => $result
|
|
|
]);
|
|
|
|
|
|
- // 由于实际退款可能成功但响应异常,这里先记录退款号
|
|
|
return [
|
|
|
'success' => true,
|
|
|
'refund_no' => $refundNo,
|
|
|
'result' => $result
|
|
|
];
|
|
|
} catch (\Exception $e) {
|
|
|
- Log::error('微信退款失败', [
|
|
|
+ Log::error('微信退款请求异常', [
|
|
|
'transaction_id' => $transactionId,
|
|
|
'refund_amount' => $refundAmount,
|
|
|
'error' => $e->getMessage()
|
|
|
]);
|
|
|
|
|
|
+ // 如果是400错误,说明请求已经发送到微信服务器
|
|
|
+ // 此时退款可能已经成功,我们返回成功状态并记录退款号
|
|
|
+ if (str_contains($e->getMessage(), '400 Bad Request')) {
|
|
|
+ return [
|
|
|
+ 'success' => true,
|
|
|
+ 'refund_no' => $refundNo,
|
|
|
+ 'message' => '退款请求已发送,请等待处理结果'
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
return [
|
|
|
'success' => false,
|
|
|
'message' => $e->getMessage()
|