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
|
||
}
|