682aa3907a
- refine config loading with --config and current-directory .env - improve sqlite busy handling and runtime DB tuning - restore telegram payment notification and wallet input flow - add behavior-based config and callback recovery tests
32 lines
952 B
Go
32 lines
952 B
Go
package service
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/assimon/luuu/config"
|
|
"github.com/assimon/luuu/model/data"
|
|
"github.com/assimon/luuu/model/mdb"
|
|
"github.com/assimon/luuu/model/response"
|
|
)
|
|
|
|
// GetCheckoutCounterByTradeId returns checkout info for a pending order.
|
|
func GetCheckoutCounterByTradeId(tradeId string) (*response.CheckoutCounterResponse, error) {
|
|
orderInfo, err := data.GetOrderInfoByTradeId(tradeId)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if orderInfo.ID <= 0 || orderInfo.Status != mdb.StatusWaitPay {
|
|
return nil, errors.New("不存在待支付订单或已过期")
|
|
}
|
|
|
|
resp := &response.CheckoutCounterResponse{
|
|
TradeId: orderInfo.TradeId,
|
|
ActualAmount: orderInfo.ActualAmount,
|
|
ReceiveAddress: orderInfo.ReceiveAddress,
|
|
Token: orderInfo.Token,
|
|
ExpirationTime: orderInfo.CreatedAt.AddMinutes(config.GetOrderExpirationTime()).TimestampMilli(),
|
|
RedirectUrl: orderInfo.RedirectUrl,
|
|
}
|
|
return resp, nil
|
|
}
|