diff --git a/app/services/thirdpay/do/pay.go b/app/services/thirdpay/do/pay.go index 1d21a59..4748682 100644 --- a/app/services/thirdpay/do/pay.go +++ b/app/services/thirdpay/do/pay.go @@ -253,7 +253,20 @@ func (w *Pay) Refund() { } res := paymentService.OrderRefund(*w.ctx, *thirdPayRefund) if res.Code == payCommon.PAY_SUCCESS_CODE { - w.Order.Status = common.ORDER_STATUS_PAYING + if w.PayParam.Channel.ChannelType == common.PAY_CHANNEL_PSBC { + if res.Result.RefundStatus == payCommon.PAY_REFUND_STATU_SUCCESS { + // 退款成功 + w.Order.Status = common.ORDER_STATUS_PAYED + } else if res.Result.RefundStatus == payCommon.PAY_REFUND_STATU_ING { + // + w.Order.Status = common.ORDER_STATUS_PAYING + } else { + w.Order.Status = common.ORDER_STATUS_FAILED + } + } else { + w.Order.Status = common.ORDER_STATUS_PAYING + } + code := services.OrderUpdate(w.Order, "status") if code != errorcode.Success { w.PayCode = code diff --git a/app/third/paymentService/psbc/refund.go b/app/third/paymentService/psbc/refund.go index 14cbfdf..36f97ee 100644 --- a/app/third/paymentService/psbc/refund.go +++ b/app/third/paymentService/psbc/refund.go @@ -1,6 +1,7 @@ package payment import ( + "PaymentCenter/app/utils" "encoding/json" "fmt" "time" @@ -33,13 +34,13 @@ func (c *Client) Refund(req RefundRequest) (*RefundResponse, error) { "data": map[string]string{ "txnCode": "1003", "sourceId": "16", - "reqTraceId": req.OrderNo + now[4:14], // MMDDHHmmss 10位后缀 - "reqDate": now, // 14 位 YYYYMMDDHHmmss + "reqTraceId": req.OrderNo + "0010", + "reqDate": now, // 14 位 YYYYMMDDHHmmss "mchtNo": c.cfg.MchtNo, "orgTxnSeq": req.OrgTxnSeq, "txnAmt": req.Price, "orgTxnAmt": req.Price, - "refundDesc": "用户主动退款", + "refundDesc": req.RefundDesc, }, }, } @@ -60,6 +61,7 @@ func (c *Client) Refund(req RefundRequest) (*RefundResponse, error) { } responseData, err := c.DecryptResponse(string(body), false) + utils.Log(nil, "邮储退款解密响应", responseData) if err != nil { return nil, fmt.Errorf("解密响应失败: %v,原始响应: %s", err, string(body)) } diff --git a/app/third/paymentService/psbc_service.go b/app/third/paymentService/psbc_service.go index ca711fa..e0b9dd0 100644 --- a/app/third/paymentService/psbc_service.go +++ b/app/third/paymentService/psbc_service.go @@ -9,6 +9,7 @@ import ( "fmt" "github.com/qit-team/snow-core/log/logger" "strconv" + "time" ) type PsbcPay struct { @@ -156,10 +157,9 @@ func PsbcRefundOrder(ctx context.Context, orderRefundRequest OrderRefundRequest) } refundStatus := payCommon.PAY_REFUND_STATU_COMMON - switch resp.RefundOrderSta { - case "03": + if resp.RespCode == "000000" && resp.RefundOrderSta == "03" { refundStatus = payCommon.PAY_REFUND_STATU_SUCCESS - default: + } else { refundStatus = payCommon.PAY_REFUND_STATU_FAIL } @@ -177,7 +177,7 @@ func PsbcRefundOrder(ctx context.Context, orderRefundRequest OrderRefundRequest) RefundFee: refundFee, RefundOrderId: orderRefundRequest.RefundOrderId, RefundStatus: refundStatus, - RefundSuccessTime: "", + RefundSuccessTime: time.Now().Format(time.DateTime), }, nil }