修正了微信支付相关配置文件1

This commit is contained in:
2024-08-09 16:49:39 +08:00
parent b409d35bc9
commit 99320a018c
4 changed files with 71 additions and 94 deletions
+44 -45
View File
@@ -6,6 +6,7 @@ import (
"github.com/wechatpay-apiv3/wechatpay-go/core"
"github.com/wechatpay-apiv3/wechatpay-go/core/option"
"github.com/wechatpay-apiv3/wechatpay-go/services/payments"
"github.com/wechatpay-apiv3/wechatpay-go/services/refunddomestic"
"github.com/wechatpay-apiv3/wechatpay-go/utils"
"hepa-calc-admin-api/config"
"time"
@@ -41,65 +42,63 @@ func createClient() (*core.Client, error) {
return client, nil
}
// WxPayResult 支付结果
type WxPayResult struct {
OrderStatus *int `json:"order_status"` // 订单状态(1:待支付 2:已完成 3:已取消)
PayStatus *int `json:"pay_status"` // 支付状态(1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款)
PayTime *time.Time `json:"pay_time"` // 支付时间
OrderStatus int `json:"order_status"` // 订单状态(1:待支付 2:已完成 3:已取消)
PayStatus int `json:"pay_status"` // 支付状态(1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款)
PayTime *string `json:"pay_time"` // 支付时间
}
// WxPayRefundResult 退款结果
type WxPayRefundResult struct {
RefundStatus int `json:"refundStatus"` // 订单退款状态(0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭 6:退款异常 7:部分退款)
SuccessTime *time.Time `json:"successTime"` // 退款成功时间
}
// HandlePayStatus 处理支付状态
func HandlePayStatus(t *payments.Transaction) (w *WxPayResult, err error) {
// 支付成功
if *t.TradeState == "SUCCESS" {
orderStatus := 2
w.OrderStatus = &orderStatus
payStatus := 2
w.PayStatus = &payStatus
parse, err := time.Parse("2006-01-02T15:04:05+07:00", *t.SuccessTime)
if err != nil {
return nil, errors.New("支付时间处理错误")
}
w.PayTime = &parse
if err != nil {
return nil, errors.New("支付时间错误")
}
}
switch *t.TradeState {
case "SUCCESS": // 支付成功
orderStatus := 2
w.OrderStatus = &orderStatus
payStatus := 2
w.PayStatus = &payStatus
parse, err := time.Parse("2006-01-02T15:04:05+07:00", *t.SuccessTime)
if err != nil {
return nil, errors.New("支付时间处理错误")
}
w.PayTime = &parse
if err != nil {
return nil, errors.New("支付时间错误")
}
w.OrderStatus = 2
w.PayStatus = 2
w.PayTime = t.SuccessTime
case "CLOSED": // 已关闭
payStatus := 6
w.PayStatus = &payStatus
w.PayStatus = 6
case "REVOKED": // 已撤销(付款码支付)
payStatus := 7
w.PayStatus = &payStatus
w.PayStatus = 7
case "USERPAYING": // 用户支付中(付款码支付)
payStatus := 3
w.PayStatus = &payStatus
w.PayStatus = 3
case "PAYERROR": // 支付失败(其他原因,如银行返回失败)
payStatus := 4
w.PayStatus = &payStatus
w.PayStatus = 4
default:
return nil, errors.New("未知支付状态")
}
return w, nil
}
// HandlePayRefundStatus 处理退款状态
func HandlePayRefundStatus(r *refunddomestic.Refund) (w *WxPayRefundResult, err error) {
if r.Status == nil {
return nil, errors.New("退款状态错误")
}
switch *r.Status {
case "SUCCESS": // 退款成功
w.RefundStatus = 3
if r.SuccessTime != nil {
//successTime := r.SuccessTime.Format("2006-01-02 15:04:05")
w.SuccessTime = r.SuccessTime
}
case "CLOSED": // 退款关闭
w.RefundStatus = 5
case "PROCESSING": // 退款处理中
w.RefundStatus = 2
case "ABNORMAL": // 退款异常
return nil, errors.New("退款状态错误")
default:
return nil, errors.New("退款状态错误")
}
return w, nil
}