修复 bug
This commit is contained in:
parent
2aef43b32a
commit
447ba67460
|
@ -18,9 +18,11 @@ func AlipayCallback(ctx *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
service.DefaultService.AlipayCallback(ctx, &vasproto.AlipayCallbackParamIn{
|
if bm.GetString("trade_status") == "TRADE_SUCCESS" {
|
||||||
OrderId: bm.GetString("out_trade_no"),
|
service.DefaultService.AlipayCallback(ctx, &vasproto.AlipayCallbackParamIn{
|
||||||
AlipayOrderId: bm.GetString("trade_no"),
|
OrderId: bm.GetString("out_trade_no"),
|
||||||
})
|
AlipayOrderId: bm.GetString("trade_no"),
|
||||||
|
})
|
||||||
|
}
|
||||||
ctx.String(200, "success")
|
ctx.String(200, "success")
|
||||||
}
|
}
|
||||||
|
|
|
@ -219,6 +219,23 @@ func (m *Mysql) UpdateOrderStatus(ctx *gin.Context, tx *sqlx.Tx, orderId string,
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 更新订单out_order_id
|
||||||
|
func (m *Mysql) UpdateOutOrderId(ctx *gin.Context, tx *sqlx.Tx, orderId string, outOrderId string) error {
|
||||||
|
var err error
|
||||||
|
sqlStr := "update " + TableOrder + " set out_order_id=? where id=?"
|
||||||
|
if tx != nil {
|
||||||
|
_, err = tx.ExecContext(ctx, sqlStr, outOrderId, orderId)
|
||||||
|
} else {
|
||||||
|
db := m.getDBVas()
|
||||||
|
_, err = db.ExecContext(ctx, sqlStr, outOrderId, orderId)
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("UpdateOutOrderId fail, orderId: %v, outOrderId: %v, err: %v", orderId, outOrderId, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// 获取钱包 for update
|
// 获取钱包 for update
|
||||||
func (m *Mysql) GetWalletForUpdate(ctx *gin.Context, tx *sqlx.Tx, mid int64) (wallet *dbstruct.Wallet, err error) {
|
func (m *Mysql) GetWalletForUpdate(ctx *gin.Context, tx *sqlx.Tx, mid int64) (wallet *dbstruct.Wallet, err error) {
|
||||||
var tmpWallet dbstruct.Wallet
|
var tmpWallet dbstruct.Wallet
|
||||||
|
|
|
@ -1650,6 +1650,13 @@ func (v *Vas) AlipayCallback(ctx *gin.Context, p *vasproto.AlipayCallbackParamIn
|
||||||
}
|
}
|
||||||
afterStatus = dbstruct.VasOrderStatusPaySuccess
|
afterStatus = dbstruct.VasOrderStatusPaySuccess
|
||||||
|
|
||||||
|
// 更新支付宝订单
|
||||||
|
err = v.store.UpdateOutOrderId(ctx, tx, orderId, alipayOrderId)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("UpdateOutOrderId fail, p: %v", util.ToJson(p))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// 商品判断
|
// 商品判断
|
||||||
switch {
|
switch {
|
||||||
case product.Type == dbstruct.ProductTypeCoins:
|
case product.Type == dbstruct.ProductTypeCoins:
|
||||||
|
|
|
@ -59,12 +59,8 @@ func (c *AlipayClient) ParseNotify(req *http.Request) (notify gopay.BodyMap, err
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
logger.Info("Alipay ParseNotify, %v", util.ToJson(notifyTmp))
|
logger.Info("Alipay ParseNotify, %v", util.ToJson(notifyTmp))
|
||||||
|
|
||||||
// 验签
|
// 验签
|
||||||
//ok, err := alipay.VerifySign("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl9Pj5j6cNRdaDyWTWWFkcBViDqw/py1bDrqe7VykND1JywgLsFogeKGG0YhJfTfEeExAlGlP2DUV7z0uc8QhCMF7N+qdfXNb/RemFIpSs71i9kkaFIJEl20JnWipps96LwZLDpNRck3Nho/Xnbs4wuft3sQtd7T0sB2zEYyl7OyuTqehcoz3uAQp0JOYBosVPpgofaD6BN2RSZQ33QvqS37w3xHLif8P7hfYXdeIe+JxeHmchzQK22dRzJinYfU+pKE5J2Wm+dq1l3/ls4w8Xc3RyqvvW2UMx2lOMtSg2WWXDDi1skmHn/l1BbBP/uogNq4Avf50eoZ1UE6JxPrZpQIDAQAB", notifyTmp)
|
|
||||||
//if err != nil {
|
|
||||||
// logger.Error("VerifySign fail, bm: %v, err: %v", util.ToJson(notifyTmp), err)
|
|
||||||
// return
|
|
||||||
//}
|
|
||||||
ok, err := alipay.VerifySignWithCert("/app/wishpal-ironfan/etc/mix/alipaycert/alipayCertPublicKey_RSA2.crt", notifyTmp)
|
ok, err := alipay.VerifySignWithCert("/app/wishpal-ironfan/etc/mix/alipaycert/alipayCertPublicKey_RSA2.crt", notifyTmp)
|
||||||
if !ok {
|
if !ok {
|
||||||
logger.Error("VerifySign fail, not ok, bm: %v", util.ToJson(notifyTmp))
|
logger.Error("VerifySign fail, not ok, bm: %v", util.ToJson(notifyTmp))
|
||||||
|
|
Loading…
Reference in New Issue