fix(supplier): 优化支付失败处理逻辑及更新核测试通道码
- 支付失败时增加支付通道状态校验,避免渠道已关闭或删除时继续回调 - 支付失败错误信息根据配置动态查询更新,提高错误反馈准确性 - 调用服务层解决支付失败流程,统一响应SUCCESS或FAIL - 测试中更新核测试任务中渠道码为138,保证用例与真实数据保持一致 - 删除无用代码注释,提高代码整洁度
This commit is contained in:
32
internal/service/supplier/third_party/jinke.go
vendored
32
internal/service/supplier/third_party/jinke.go
vendored
@@ -5,6 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"gateway/internal/otelTrace"
|
||||
"gateway/internal/service/client"
|
||||
|
||||
"gateway/internal/models/merchant"
|
||||
"gateway/internal/models/merchant_deploy"
|
||||
@@ -185,14 +186,33 @@ func (f *JinkeImpl) PayNotify() {
|
||||
} else {
|
||||
f.Ctx.WriteString("FAIL")
|
||||
}
|
||||
} else {
|
||||
isOk := service.SolvePayFail(f.Ctx.Request.Context(), orderInfo.BankOrderId, resp.TradeNo, "订单支付失败")
|
||||
if isOk {
|
||||
f.Ctx.WriteString("SUCCESS")
|
||||
} else {
|
||||
f.Ctx.WriteString("FAIL")
|
||||
return
|
||||
}
|
||||
roadInfo := road.GetRoadInfoByRoadUid(ctx, orderInfo.RoadUid)
|
||||
if roadInfo.RoadUid == "" || len(roadInfo.RoadUid) == 0 {
|
||||
otelTrace.Logger.WithContext(ctx).Error("【祥云】支付通道已经关系或者删除,不进行回调")
|
||||
f.Ctx.WriteString("fail")
|
||||
return
|
||||
}
|
||||
cdata := supplier.RedeemCardInfo{}
|
||||
_ = json.Unmarshal([]byte(orderInfo.ExValue), &cdata)
|
||||
errMsg := "支付失败"
|
||||
if gojson.Json(roadInfo.Params).Get("jvnkaQuery").Tostring() == "1" {
|
||||
retMsg, _ := client.NewHeePayClient().ToString(ctx, &client.QueryCardInput{
|
||||
OrderId: orderInfo.BankOrderId,
|
||||
CardNumber: cdata.CardNo,
|
||||
CardPassword: cdata.Data,
|
||||
})
|
||||
if retMsg != "" {
|
||||
errMsg = retMsg
|
||||
}
|
||||
}
|
||||
isOk := service.SolvePayFail(f.Ctx.Request.Context(), orderInfo.BankOrderId, resp.TradeNo, errMsg)
|
||||
if isOk {
|
||||
f.Ctx.WriteString("SUCCESS")
|
||||
} else {
|
||||
f.Ctx.WriteString("FAIL")
|
||||
}
|
||||
f.Ctx.WriteString("SUCCESS")
|
||||
}
|
||||
|
||||
|
||||
@@ -95,9 +95,15 @@ func TestSendCardTaskTypeNuclear_HandleSendCardTask(t *testing.T) {
|
||||
func TestSendCardTaskTypeNuclear_CreateOrder(t *testing.T) {
|
||||
for i := 0; i < 10; i++ {
|
||||
orderId := utils.GenerateId()
|
||||
//{
|
||||
//"appId":"20021511",
|
||||
//"channelCode":"138",
|
||||
//"key":"k90BfV0TKV2ERz16JFE9kdrmdt50vFf7"
|
||||
//}
|
||||
|
||||
params := map[string]string{
|
||||
"AppId": "20021511",
|
||||
"ChannelCode": "164",
|
||||
"ChannelCode": "138",
|
||||
"Amount": "10",
|
||||
"OrderId": orderId,
|
||||
"NonceStr": utils.GenerateId(),
|
||||
|
||||
Reference in New Issue
Block a user