完善商福通支付接口,修复证书加载问题;数据库扩展支付平台字段并更新支付信息保存逻辑;日志中间件异步记录日志
This commit is contained in:
@@ -87,7 +87,7 @@ func (s *resourceService) CreateResource(uid int32, now time.Time, ser *CreateRe
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *resourceService) PrepareResource(uid int32, now time.Time, method trade2.Method, ser *CreateResourceSerializer) (*TradeCreateResult, error) {
|
||||
func (s *resourceService) PrepareResource(uid int32, now time.Time, ser *CreateResourceSerializer) (*TradeCreateResult, error) {
|
||||
|
||||
data, err := ser.ToData()
|
||||
if err != nil {
|
||||
@@ -97,18 +97,22 @@ func (s *resourceService) PrepareResource(uid int32, now time.Time, method trade
|
||||
name := data.GetName()
|
||||
amount := data.GetPrice()
|
||||
|
||||
method := ser.PaymentMethod
|
||||
platform := ser.PaymentPlatform
|
||||
|
||||
// 保存到数据库
|
||||
var result *TradeCreateResult
|
||||
err = q.Q.Transaction(func(q *q.Query) error {
|
||||
var err error
|
||||
|
||||
// 生成交易订单
|
||||
result, err = Trade.SendCreateTradeByQrcode(q, uid, now, &TradeCreateData{
|
||||
result, err = Trade.CreateTrade(q, uid, now, &TradeCreateData{
|
||||
Subject: "购买套餐 - " + name,
|
||||
Amount: amount,
|
||||
ExpireAt: time.Now().Add(30 * time.Minute),
|
||||
Type: trade2.TypeRecharge,
|
||||
Method: method,
|
||||
Platform: platform,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -124,7 +128,6 @@ func (s *resourceService) PrepareResource(uid int32, now time.Time, method trade
|
||||
Uid: uid,
|
||||
TradeId: result.Trade.ID,
|
||||
BillId: result.Bill.ID,
|
||||
Method: method,
|
||||
CreateResourceSerializer: resourceSerializer,
|
||||
}, 30*time.Minute).Err()
|
||||
if err != nil {
|
||||
@@ -158,9 +161,9 @@ func (s *resourceService) CompleteResource(tradeNo string, now time.Time, opResu
|
||||
rs = opResult[0]
|
||||
} else {
|
||||
var err error
|
||||
rs, err = Trade.VerifyCreateTrade(&TradeVerifyData{
|
||||
rs, err = Trade.VerifyTrade(&TradeVerifyData{
|
||||
TradeNo: tradeNo,
|
||||
Method: cache.Method,
|
||||
Method: cache.PaymentMethod,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -229,7 +232,7 @@ func (s *resourceService) CancelResource(tradeNo string, now time.Time, opRevoke
|
||||
|
||||
// 取消交易
|
||||
if len(opRevoked) <= 0 {
|
||||
err = Trade.CancelTrade(tradeNo, cache.Method)
|
||||
err = Trade.CancelTrade(tradeNo, cache.PaymentMethod)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -403,9 +406,11 @@ func (data *CreateLongResourceData) GetPrice() decimal.Decimal {
|
||||
}
|
||||
|
||||
type CreateResourceSerializer struct {
|
||||
Type resource2.Type `json:"type" validate:"required"`
|
||||
Short *CreateShortResourceData `json:"short,omitempty"`
|
||||
Long *CreateLongResourceData `json:"long,omitempty"`
|
||||
Type resource2.Type `json:"type" validate:"required"`
|
||||
Short *CreateShortResourceData `json:"short,omitempty"`
|
||||
Long *CreateLongResourceData `json:"long,omitempty"`
|
||||
PaymentMethod trade2.Method `json:"payment_method" validate:"required"`
|
||||
PaymentPlatform trade2.Platform `json:"payment_platform" validate:"required"`
|
||||
}
|
||||
|
||||
func (s *CreateResourceSerializer) ToData() (CreateResourceData, error) {
|
||||
@@ -433,10 +438,9 @@ func (s *CreateResourceSerializer) ByData(data CreateResourceData) error {
|
||||
}
|
||||
|
||||
type CreateResourceCache struct {
|
||||
Uid int32 `json:"uid"`
|
||||
TradeId int32 `json:"trade_id"`
|
||||
BillId int32 `json:"bill_id"`
|
||||
Method trade2.Method `json:"method"`
|
||||
Uid int32 `json:"uid"`
|
||||
TradeId int32 `json:"trade_id"`
|
||||
BillId int32 `json:"bill_id"`
|
||||
*CreateResourceSerializer
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user