45 lines
1.2 KiB
Go
45 lines
1.2 KiB
Go
package cmb
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"github.com/go-kratos/kratos/v2/log"
|
|
"voucher/internal/biz/bo"
|
|
"voucher/internal/biz/vo"
|
|
)
|
|
|
|
func (v *Cmb) NotifyRetryConsume(ctx context.Context, order *bo.OrderBo, orderNotify *bo.OrderNotifyBo) (*bo.OrderNotifyBo, error) {
|
|
|
|
req := &bo.OrderNotifyBo{
|
|
OrderNo: orderNotify.OrderNo,
|
|
NotifyUrl: order.NotifyUrl,
|
|
Channel: order.Channel,
|
|
Event: orderNotify.Event,
|
|
Type: order.Type,
|
|
Request: "",
|
|
}
|
|
|
|
request, orderNotify, err := v.notifyCreate(ctx, order, req)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
reply, err := v.CmbMixRepo.Request(ctx, request, order.NotifyUrl)
|
|
if err != nil {
|
|
return orderNotify, v.notifyFail(ctx, orderNotify.ID, err.Error())
|
|
}
|
|
|
|
if err = v.CmbMixRepo.VerifyResponse(ctx, reply); err != nil {
|
|
log.Errorf("NotifyRetryConsume CmbMixRepo.VerifyResponse error:%s", err.Error())
|
|
return orderNotify, v.notifyFail(ctx, orderNotify.ID, err.Error())
|
|
}
|
|
|
|
if reply.RespCode != vo.CmbResponseStatusSuccess.GetValue() {
|
|
return orderNotify, v.notifyFail(ctx, orderNotify.ID, reply.RespMsg)
|
|
}
|
|
|
|
replyJson, _ := json.Marshal(reply)
|
|
|
|
return orderNotify, v.notifySuccess(ctx, orderNotify.ID, string(replyJson))
|
|
}
|