fix
This commit is contained in:
parent
2793229b6c
commit
02a84531e4
|
@ -2,6 +2,9 @@ package controller
|
|||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
wxpay "github.com/go-pay/gopay/wechat/v3"
|
||||
vasproto "service/api/proto/vas/proto"
|
||||
"service/app/mix/service"
|
||||
"service/bizcommon/util"
|
||||
"service/library/logger"
|
||||
"service/library/payclients/wxpaycli"
|
||||
|
@ -13,7 +16,18 @@ func WxpayCallback(ctx *gin.Context) {
|
|||
logger.Error("ParseNotify fail, req: %v, err: %v", util.ToJson(notify), err)
|
||||
return
|
||||
}
|
||||
if notify == nil {
|
||||
logger.Error("ParseNotify nil, req: %v, err: %v", util.ToJson(notify), err)
|
||||
return
|
||||
}
|
||||
logger.Info("WxpayCallback, notify: %v", util.ToJson(notify))
|
||||
|
||||
if notify.TradeState == wxpay.TradeStateSuccess {
|
||||
service.DefaultService.PayCallback(ctx, &vasproto.PayCallbackParamIn{
|
||||
OrderId: notify.OutTradeNo,
|
||||
OutOrderId: notify.TransactionId,
|
||||
CallbackPayType: vasproto.CallBackPayTypeWxpay,
|
||||
})
|
||||
}
|
||||
ctx.String(200, "success")
|
||||
}
|
||||
|
|
|
@ -2070,28 +2070,35 @@ func (v *Vas) DealOneOrder(ctx *gin.Context, orderId string) (err error) {
|
|||
}
|
||||
|
||||
// 支付宝查询订单
|
||||
alipayCli := alipaycli.GetDefaultAlipayClient()
|
||||
alipayResp, err := alipayCli.QueryOrder(ctx, &alipaycli.QueryOrderParam{
|
||||
OutTradeNo: orderId,
|
||||
})
|
||||
if err != nil {
|
||||
logger.Error("alipayCli.QueryOrder fail, id: %v, err: %v", orderId, err)
|
||||
return
|
||||
}
|
||||
if alipayResp == nil {
|
||||
err = errors.New("alipayCli.QueryOrder resp nil")
|
||||
logger.Error("alipayCli.QueryOrder nil, id: %v, err: %v", orderId, err)
|
||||
return
|
||||
}
|
||||
// 已退款
|
||||
if alipayResp.Response.TradeStatus == "TRADE_CLOSED" {
|
||||
// 更新订单状态
|
||||
err = v.store.UpdateOrderStatus(ctx, nil, order.GetID(), dbstruct.VasOrderStatusPaySuccess, dbstruct.VasOrderStatusRefund)
|
||||
switch order.GetPayType() {
|
||||
case vasproto.PayTypeAlipayH5:
|
||||
alipayCli := alipaycli.GetDefaultAlipayClient()
|
||||
var alipayResp *alipay.TradeQueryResponse
|
||||
alipayResp, err = alipayCli.QueryOrder(ctx, &alipaycli.QueryOrderParam{
|
||||
OutTradeNo: orderId,
|
||||
})
|
||||
if err != nil {
|
||||
logger.Error("UpdateOrderStatus fail, orderId: %v, err: %v", order.GetID(), err)
|
||||
logger.Error("alipayCli.QueryOrder fail, id: %v, err: %v", orderId, err)
|
||||
return
|
||||
}
|
||||
err = errors.New("closed order")
|
||||
if alipayResp == nil {
|
||||
err = errors.New("alipayCli.QueryOrder resp nil")
|
||||
logger.Error("alipayCli.QueryOrder nil, id: %v, err: %v", orderId, err)
|
||||
return
|
||||
}
|
||||
// 已退款
|
||||
if alipayResp.Response.TradeStatus == "TRADE_CLOSED" {
|
||||
// 更新订单状态
|
||||
err = v.store.UpdateOrderStatus(ctx, nil, order.GetID(), dbstruct.VasOrderStatusPaySuccess, dbstruct.VasOrderStatusRefund)
|
||||
if err != nil {
|
||||
logger.Error("UpdateOrderStatus fail, orderId: %v, err: %v", order.GetID(), err)
|
||||
return
|
||||
}
|
||||
err = errors.New("closed order")
|
||||
return
|
||||
}
|
||||
case vasproto.CallBackPayTypeWxpay:
|
||||
err = errors.New("暂不处理微信订单")
|
||||
return
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue