cmb
This commit is contained in:
parent
e18a7ec246
commit
b4f92d78e6
|
|
@ -124,16 +124,34 @@ message CmbQueryProductReply {
|
|||
}
|
||||
|
||||
message CmbNotifyRequest {
|
||||
// 公共参数
|
||||
// 合作方唯一ID,32位定长
|
||||
string mid = 1 [json_name = "mid", (validate.rules).string = {min_len: 1,max_len: 32}];
|
||||
// 应用唯一ID,32位定长
|
||||
string aid = 2 [json_name = "aid", (validate.rules).string = {min_len: 1,max_len: 32}];
|
||||
// 时间戳 yyyyMMddHHmmss
|
||||
string date = 3 [json_name = "date", (validate.rules).string = {min_len: 14}];
|
||||
// 随机字符串,保证签名不可预测,不长于32位
|
||||
string random = 4 [json_name = "random", (validate.rules).string = {min_len: 1,max_len: 32}];
|
||||
// 合作方密钥对别名
|
||||
string keyAlias = 5 [json_name = "keyAlias", (validate.rules).string = {min_len: 2}];
|
||||
// 掌上生活密钥对别名
|
||||
string cmbKeyAlias = 6 [json_name = "cmbKeyAlias", (validate.rules).string = {min_len: 2}];
|
||||
// 加密报文,是否需要加密,请查看各API的说明文档
|
||||
string encryptBody = 7 [json_name = "encryptBody", (validate.rules).string = {min_len: 10}];
|
||||
// 签名,具体详见签名规范
|
||||
string sign = 8 [json_name = "sign", (validate.rules).string = {min_len: 10}];
|
||||
|
||||
// 优惠券券码,codeNo
|
||||
string ticket = 1 [json_name = "ticket"];
|
||||
string ticket = 9 [json_name = "ticket"];
|
||||
// 更新后串码状态,0:可使用,1:已使用
|
||||
string status = 2 [json_name = "status"];
|
||||
string status = 10 [json_name = "status"];
|
||||
// 验码日期,格式yyyy-mm-dd hh:mm:ss.sss
|
||||
string transDate = 3 [json_name = "transDate"];
|
||||
string transDate = 11 [json_name = "transDate"];
|
||||
// 发码机构号,固定值,掌上生活优惠券系统提供
|
||||
string orgNo = 4 [json_name = "orgNo"];
|
||||
string orgNo = 12 [json_name = "orgNo"];
|
||||
// 扩展字段
|
||||
string ext = 5 [json_name = "ext"];
|
||||
string ext = 13 [json_name = "ext"];
|
||||
}
|
||||
message CmbNotifyReply {
|
||||
// 接口调用返回码,1000 成功,1001 失败
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package cmb
|
|||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
v1 "voucher/api/v1"
|
||||
"voucher/internal/biz/bo"
|
||||
"voucher/internal/biz/vo"
|
||||
"voucher/internal/pkg/uid"
|
||||
|
|
@ -89,7 +90,27 @@ func (v *Cmb) NotifyConsume(ctx context.Context, order *bo.OrderBo, orderOutRequ
|
|||
return err
|
||||
}
|
||||
|
||||
fmt.Printf("orderWechat:%+v", orderWechat)
|
||||
if !orderWechat.Status.CanNotify() {
|
||||
return fmt.Errorf("微信订单状态错误,不能通知:%s", order.Status.GetText())
|
||||
}
|
||||
|
||||
request := &v1.CmbNotifyRequest{
|
||||
Mid: "",
|
||||
Aid: "",
|
||||
Date: "",
|
||||
Random: "",
|
||||
KeyAlias: "",
|
||||
CmbKeyAlias: "",
|
||||
EncryptBody: "",
|
||||
Sign: "",
|
||||
|
||||
Ticket: orderWechat.OrderNo,
|
||||
Status: "",
|
||||
TransDate: "",
|
||||
OrgNo: "",
|
||||
Ext: "",
|
||||
}
|
||||
fmt.Printf("request:%+v", request)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ func (v *VoucherBiz) NotifyConsume(ctx context.Context, orderNo, orderOutRequest
|
|||
return err
|
||||
}
|
||||
|
||||
if order.Status.IsSuccess() {
|
||||
if !order.Status.CanNotify() {
|
||||
return fmt.Errorf("订单状态错误,不能通知:%s", order.Status.GetText())
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
package vo
|
||||
|
||||
type CmbStatus string
|
||||
|
||||
const (
|
||||
CmbStatusSuccess CmbStatus = "0"
|
||||
CmbStatusUse CmbStatus = "1"
|
||||
)
|
||||
|
|
@ -46,3 +46,15 @@ func (s OrderStatus) IsSuccess() bool {
|
|||
func (s OrderStatus) IsFail() bool {
|
||||
return s == OrderStatusFail
|
||||
}
|
||||
|
||||
func (s OrderStatus) IsUse() bool {
|
||||
return s == OrderStatusUse
|
||||
}
|
||||
|
||||
func (s OrderStatus) IsExpired() bool {
|
||||
return s == OrderStatusExpired
|
||||
}
|
||||
|
||||
func (s OrderStatus) CanNotify() bool {
|
||||
return s.IsSuccess() || s.IsUse() || s.IsExpired()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
package vo
|
||||
|
||||
import "fmt"
|
||||
|
||||
type OrderWechatStatus uint8
|
||||
|
||||
const (
|
||||
|
|
@ -18,6 +20,18 @@ var OrderWechatStatusMap = map[OrderWechatStatus]string{
|
|||
OrderWechatStatusExpired: "已过期",
|
||||
}
|
||||
|
||||
var OrderStatusMapCmbStatus = map[OrderWechatStatus]CmbStatus{
|
||||
OrderWechatStatusSuccess: CmbStatusSuccess,
|
||||
OrderWechatStatusUse: CmbStatusUse,
|
||||
}
|
||||
|
||||
func (s OrderWechatStatus) GetCmbStatusText() (CmbStatus, error) {
|
||||
if t, ok := OrderStatusMapCmbStatus[s]; ok {
|
||||
return t, nil
|
||||
}
|
||||
return "", fmt.Errorf("CmbStatus[%s]未定义", s)
|
||||
}
|
||||
|
||||
func (s OrderWechatStatus) GetText() string {
|
||||
if t, ok := OrderWechatStatusMap[s]; ok {
|
||||
return t
|
||||
|
|
@ -40,3 +54,11 @@ func (s OrderWechatStatus) IsSuccess() bool {
|
|||
func (s OrderWechatStatus) IsFail() bool {
|
||||
return s == OrderWechatStatusFail
|
||||
}
|
||||
|
||||
func (s OrderWechatStatus) IsUse() bool {
|
||||
return s == OrderWechatStatusUse
|
||||
}
|
||||
|
||||
func (s OrderWechatStatus) CanNotify() bool {
|
||||
return s.IsSuccess() || s.IsUse()
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue