63 lines
1.8 KiB
Go
63 lines
1.8 KiB
Go
|
package market
|
|||
|
|
|||
|
import (
|
|||
|
"encoding/json"
|
|||
|
"qteam/app/utils/encrypt"
|
|||
|
"qteam/config"
|
|||
|
"time"
|
|||
|
)
|
|||
|
|
|||
|
func NewMarketClient(cfg config.MarketConfig) *MarketClient {
|
|||
|
cfg.Sign = "-----BEGIN RSA PRIVATE KEY-----\n" + cfg.Sign + "\n-----END RSA PRIVATE KEY-----"
|
|||
|
return &MarketClient{
|
|||
|
cfg: cfg,
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
MarketSend
|
|||
|
券码生成接口
|
|||
|
- 请求地址:/openApi/v1/market/key/send
|
|||
|
- 说明:发券接口应支持使用同一流水号进行重复请求,即:当调用该接口失败时,可 以使用同一流水号进行再次请求,接口需要根据请求的流水号进行判断,若无该流水 号的券码信息则新生成后返回,若有该流水号的券码信息则直接返回该券码的信息
|
|||
|
orderNo: 订单号
|
|||
|
VoucherId: 制码批次号
|
|||
|
MobileNo: 11 手机号,可传空字符串
|
|||
|
SendMsg: 是否发送短信:2- 发送 1-不发送
|
|||
|
*/
|
|||
|
func (this *MarketClient) MarketSend(orderNo, VoucherId, MobileNo, SendMsg string) (res MarketResponse, err error) {
|
|||
|
url := "/openApi/v1/market/key/send"
|
|||
|
request := MarketSendRequest{
|
|||
|
AppId: this.cfg.AppId,
|
|||
|
ReqCode: this.cfg.ReqCode,
|
|||
|
MemId: this.cfg.MemId,
|
|||
|
PosId: this.cfg.PosId,
|
|||
|
TimeTamp: time.Now().Format("20060102150405"),
|
|||
|
VoucherId: VoucherId,
|
|||
|
ReqSerialNo: orderNo,
|
|||
|
VoucherNum: 1,
|
|||
|
MobileNo: MobileNo,
|
|||
|
SendMsg: SendMsg,
|
|||
|
}
|
|||
|
|
|||
|
request.Sign, err = MakeRsaSign(this.cfg.Sign, request.toMap())
|
|||
|
if err != nil {
|
|||
|
return res, err
|
|||
|
}
|
|||
|
|
|||
|
bytes, err := json.Marshal(request)
|
|||
|
if err != nil {
|
|||
|
return res, err
|
|||
|
}
|
|||
|
|
|||
|
data, err := this.doPost(url, bytes)
|
|||
|
if err != nil {
|
|||
|
return res, err
|
|||
|
}
|
|||
|
err = json.Unmarshal(data, &res)
|
|||
|
// 加密
|
|||
|
if len(res.Data.ShortUrl) > 0 {
|
|||
|
res.Data.ShortUrl = encrypt.AesEncryptCBC([]byte(res.Data.ShortUrl), []byte(this.cfg.SecretKey))
|
|||
|
}
|
|||
|
return res, err
|
|||
|
}
|