This commit is contained in:
2024-10-15 17:19:23 +08:00
parent 8f903b457f
commit c76451788c
42 changed files with 1600 additions and 237 deletions

View File

@@ -37,12 +37,12 @@ func (l *AliTopUpLogic) AliTopUp(in *sentinel.AliTopUpRequest) (*sentinel.AliTop
// 构造支付请求
var p = alipay.TradePagePay{
Trade: alipay.Trade{
Subject: "天远数据API使用额度",
Subject: l.svcCtx.Config.TopUp.Subject,
OutTradeNo: outTradeNo,
TotalAmount: totalAmount,
ProductCode: "FAST_INSTANT_TRADE_PAY",
NotifyURL: "https://console.tianyuanapi.com/api/console/", // 异步回调通知地址
ReturnURL: "https://console.tianyuanapi.com/charge/recharge", // 支付成功后的跳转地址
NotifyURL: l.svcCtx.Config.TopUp.NotifyURL, // 异步回调通知地址
ReturnURL: l.svcCtx.Config.TopUp.ReturnURL, // 支付成功后的跳转地址
},
}
_, inserErr := l.svcCtx.PayOrderModel.Insert(l.ctx, &model.PayOrder{

View File

@@ -7,6 +7,7 @@ import (
"math"
"net/url"
"strconv"
"tianyuan-api/apps/user/user"
"tianyuan-api/apps/sentinel/internal/svc"
"tianyuan-api/apps/sentinel/sentinel"
@@ -63,7 +64,20 @@ func (l *AliTopUpNotifyLogic) AliTopUpNotify(in *sentinel.AliTopUpNotifyRequest)
logx.Infof("回调金额:%v订单金额%v", notify.TotalAmount, payOrder.Amount)
// 比较支付宝返回的金额与数据库存储的金额
if math.Abs(notifyAmount-payOrder.Amount) < 1e-6 {
// 金额匹配,继续处理
payOrder.Status = 1
updateErr := l.svcCtx.PayOrderModel.Update(l.ctx, payOrder)
if updateErr != nil {
return nil, globalErr
}
_, rechargeWallet := l.svcCtx.WalletRpc.RechargeWallet(l.ctx, &user.RechargeWalletRequest{
UserId: payOrder.UserId,
OutTradeNo: payOrder.OutTradeNo,
Amount: int64(payOrder.Amount),
PaymentMethod: 0,
})
if rechargeWallet != nil {
return nil, globalErr
}
} else {
return nil, globalErr
}