Skip to content

Commit 0ecf176

Browse files
committed
v1.5.103
1 parent 62f45c1 commit 0ecf176

File tree

5 files changed

+182
-32
lines changed

5 files changed

+182
-32
lines changed

README.md

+2-5
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,8 @@ func main() {
6060

6161
# 三、其他说明
6262

63-
* 如需自定义Log输出,请调用以下方法设置自定义Logger,实现 `xlog.XLogger` 接口即可。
64-
* `xlog.SetDebugLog()`
65-
* `xlog.SetInfoLog()`
66-
* `xlog.SetWarnLog()`
67-
* `xlog.SetErrLog()`
63+
* 如需自定义Log输出,New Client 后,调用 `client.SetLogger()` 方法设置自定义Logger,自定义Logger实现 `xlog.XLogger` interface即可。
64+
6865
* 各支付方式接入,请仔细查看 `xxx_test.go` 使用方式
6966
* `gopay/wechat/v3/client_test.go`
7067
* `gopay/alipay/client_test.go`

alipay/marketing_voucher.go

+92
Original file line numberDiff line numberDiff line change
@@ -286,3 +286,95 @@ func (a *Client) MarketingActivityOrderVoucherAppend(ctx context.Context, bm gop
286286
aliRsp.SignData = signData
287287
return aliRsp, a.autoVerifySignByCert(aliRsp.Sign, signData, signDataErr)
288288
}
289+
290+
// alipay.marketing.activity.ordervoucher.use(同步券核销状态)
291+
// 文档地址:https://opendocs.alipay.com/open/3ffce87f_alipay.marketing.activity.ordervoucher.use
292+
func (a *Client) MarketingActivityOrderVoucherUse(ctx context.Context, bm gopay.BodyMap) (aliRsp *MarketingActivityOrderVoucherUseRsp, err error) {
293+
err = bm.CheckEmptyError("biz_dt", "activity_id", "voucher_code", "trade_channel", "total_fee", "out_biz_no")
294+
if err != nil {
295+
return nil, err
296+
}
297+
var bs []byte
298+
if bs, err = a.doAliPay(ctx, bm, "alipay.marketing.activity.ordervoucher.use"); err != nil {
299+
return nil, err
300+
}
301+
aliRsp = new(MarketingActivityOrderVoucherUseRsp)
302+
if err = json.Unmarshal(bs, aliRsp); err != nil || aliRsp.Response == nil {
303+
return nil, fmt.Errorf("[%w], bytes: %s", gopay.UnmarshalErr, string(bs))
304+
}
305+
if err = bizErrCheck(aliRsp.Response.ErrorResponse); err != nil {
306+
return aliRsp, err
307+
}
308+
signData, signDataErr := a.getSignData(bs, aliRsp.AlipayCertSn)
309+
aliRsp.SignData = signData
310+
return aliRsp, a.autoVerifySignByCert(aliRsp.Sign, signData, signDataErr)
311+
}
312+
313+
// alipay.marketing.activity.ordervoucher.refund(取消券核销状态)
314+
// 文档地址:https://opendocs.alipay.com/open/4682759b_alipay.marketing.activity.ordervoucher.refund?scene=common
315+
func (a *Client) MarketingActivityOrderVoucherRefund(ctx context.Context, bm gopay.BodyMap) (aliRsp *MarketingActivityOrderVoucherRefundRsp, err error) {
316+
err = bm.CheckEmptyError("biz_dt", "activity_id", "voucher_code", "out_biz_no")
317+
if err != nil {
318+
return nil, err
319+
}
320+
var bs []byte
321+
if bs, err = a.doAliPay(ctx, bm, "alipay.marketing.activity.ordervoucher.refund"); err != nil {
322+
return nil, err
323+
}
324+
aliRsp = new(MarketingActivityOrderVoucherRefundRsp)
325+
if err = json.Unmarshal(bs, aliRsp); err != nil || aliRsp.Response == nil {
326+
return nil, fmt.Errorf("[%w], bytes: %s", gopay.UnmarshalErr, string(bs))
327+
}
328+
if err = bizErrCheck(aliRsp.Response.ErrorResponse); err != nil {
329+
return aliRsp, err
330+
}
331+
signData, signDataErr := a.getSignData(bs, aliRsp.AlipayCertSn)
332+
aliRsp.SignData = signData
333+
return aliRsp, a.autoVerifySignByCert(aliRsp.Sign, signData, signDataErr)
334+
}
335+
336+
// alipay.marketing.activity.ordervoucher.query(查询商家券活动)
337+
// 文档地址:https://opendocs.alipay.com/open/51f5946e_alipay.marketing.activity.ordervoucher.query
338+
func (a *Client) MarketingActivityOrderVoucherQuery(ctx context.Context, bm gopay.BodyMap) (aliRsp *MarketingActivityOrderVoucherQueryRsp, err error) {
339+
err = bm.CheckEmptyError("activity_id", "merchant_access_mode")
340+
if err != nil {
341+
return nil, err
342+
}
343+
var bs []byte
344+
if bs, err = a.doAliPay(ctx, bm, "alipay.marketing.activity.ordervoucher.query"); err != nil {
345+
return nil, err
346+
}
347+
aliRsp = new(MarketingActivityOrderVoucherQueryRsp)
348+
if err = json.Unmarshal(bs, aliRsp); err != nil || aliRsp.Response == nil {
349+
return nil, fmt.Errorf("[%w], bytes: %s", gopay.UnmarshalErr, string(bs))
350+
}
351+
if err = bizErrCheck(aliRsp.Response.ErrorResponse); err != nil {
352+
return aliRsp, err
353+
}
354+
signData, signDataErr := a.getSignData(bs, aliRsp.AlipayCertSn)
355+
aliRsp.SignData = signData
356+
return aliRsp, a.autoVerifySignByCert(aliRsp.Sign, signData, signDataErr)
357+
}
358+
359+
// alipay.marketing.activity.ordervoucher.codecount(统计商家券券码数量)
360+
// 文档地址:https://opendocs.alipay.com/open/f6e49e82_alipay.marketing.activity.ordervoucher.codecount
361+
func (a *Client) MarketingActivityOrderVoucherCodeCount(ctx context.Context, bm gopay.BodyMap) (aliRsp *MarketingActivityOrderVoucherCodeCountRsp, err error) {
362+
err = bm.CheckEmptyError("activity_id", "merchant_access_mode")
363+
if err != nil {
364+
return nil, err
365+
}
366+
var bs []byte
367+
if bs, err = a.doAliPay(ctx, bm, "alipay.marketing.activity.ordervoucher.codecount"); err != nil {
368+
return nil, err
369+
}
370+
aliRsp = new(MarketingActivityOrderVoucherCodeCountRsp)
371+
if err = json.Unmarshal(bs, aliRsp); err != nil || aliRsp.Response == nil {
372+
return nil, fmt.Errorf("[%w], bytes: %s", gopay.UnmarshalErr, string(bs))
373+
}
374+
if err = bizErrCheck(aliRsp.Response.ErrorResponse); err != nil {
375+
return aliRsp, err
376+
}
377+
signData, signDataErr := a.getSignData(bs, aliRsp.AlipayCertSn)
378+
aliRsp.SignData = signData
379+
return aliRsp, a.autoVerifySignByCert(aliRsp.Sign, signData, signDataErr)
380+
}

alipay/model_market.go

+65-3
Original file line numberDiff line numberDiff line change
@@ -205,9 +205,37 @@ type MarketingActivityOrderVoucherStopRsp struct {
205205

206206
type MarketingActivityOrderVoucherAppendRsp struct {
207207
Response *MarketingActivityOrderVoucherAppend `json:"alipay_marketing_activity_ordervoucher_append_response"`
208-
AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
209-
SignData string `json:"-"`
210-
Sign string `json:"sign"`
208+
AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
209+
SignData string `json:"-"`
210+
Sign string `json:"sign"`
211+
}
212+
213+
type MarketingActivityOrderVoucherUseRsp struct {
214+
Response *MarketingActivityOrderVoucherUse `json:"alipay_marketing_activity_ordervoucher_use_response"`
215+
AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
216+
SignData string `json:"-"`
217+
Sign string `json:"sign"`
218+
}
219+
220+
type MarketingActivityOrderVoucherRefundRsp struct {
221+
Response *MarketingActivityOrderVoucherRefund `json:"alipay_marketing_activity_ordervoucher_refund_response"`
222+
AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
223+
SignData string `json:"-"`
224+
Sign string `json:"sign"`
225+
}
226+
227+
type MarketingActivityOrderVoucherQueryRsp struct {
228+
Response *MarketingActivityOrderVoucherQuery `json:"alipay_marketing_activity_ordervoucher_query_response"`
229+
AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
230+
SignData string `json:"-"`
231+
Sign string `json:"sign"`
232+
}
233+
234+
type MarketingActivityOrderVoucherCodeCountRsp struct {
235+
Response *MarketingActivityOrderVoucherCodeCount `json:"alipay_marketing_activity_ordervoucher_codecount_response"`
236+
AlipayCertSn string `json:"alipay_cert_sn,omitempty"`
237+
SignData string `json:"-"`
238+
Sign string `json:"sign"`
211239
}
212240

213241
// =========================================================分割=========================================================
@@ -386,6 +414,7 @@ type ActivityBaseInfo struct {
386414
ActivityId string `json:"activity_id"`
387415
ActivityName string `json:"activity_name,omitempty"`
388416
BelongMerchantInfo *BelongMerchantInfo `json:"belong_merchant_info"`
417+
CodeMode string `json:"code_mode,omitempty"`
389418
ActivityOperationStatus string `json:"activity_operation_status,omitempty"`
390419
ActivityStatus string `json:"activity_status"`
391420
ActivityProductType string `json:"activity_product_type,omitempty"`
@@ -865,3 +894,36 @@ type MarketingActivityOrderVoucherStop struct {
865894
type MarketingActivityOrderVoucherAppend struct {
866895
ErrorResponse
867896
}
897+
898+
type MarketingActivityOrderVoucherUse struct {
899+
ErrorResponse
900+
ActivityId string `json:"activity_id"`
901+
VoucherUseDetailResultInfo *VoucherUseDetailResultInfo `json:"voucher_use_detail_result_info"`
902+
}
903+
904+
type VoucherUseDetailResultInfo struct {
905+
VoucherMaxUnUseTimes int `json:"voucher_max_un_use_times"`
906+
}
907+
908+
type MarketingActivityOrderVoucherRefund struct {
909+
ErrorResponse
910+
ActivityId string `json:"activity_id"`
911+
VoucherUseDetailResultInfo *VoucherUseDetailResultInfo `json:"voucher_use_detail_result_info"`
912+
}
913+
914+
type MarketingActivityOrderVoucherQuery struct {
915+
ErrorResponse
916+
ActivityBaseInfo *ActivityBaseInfo `json:"activity_base_info"`
917+
VoucherSendModeInfo *VoucherSendModeInfo `json:"voucher_send_mode_info"`
918+
VoucherDeductInfo *VoucherDeductInfo `json:"voucher_deduct_info"`
919+
VoucherAvailableScopeInfo *VoucherAvailableScopeInfo `json:"voucher_available_scope_info"`
920+
VoucherUseRuleInfo *VoucherUseRuleInfo `json:"voucher_use_rule_info"`
921+
VoucherDisplayPatternInfo *VoucherDisplayPatternInfo `json:"voucher_display_pattern_info"`
922+
VoucherCustomerGuideInfo *VoucherCustomerGuideInfo `json:"voucher_customer_guide_info"`
923+
VoucherInventoryInfo *VoucherInventoryInfo `json:"voucher_inventory_info"`
924+
}
925+
926+
type MarketingActivityOrderVoucherCodeCount struct {
927+
ErrorResponse
928+
SuccessCount int `json:"success_count"`
929+
}

doc/alipay.md

+12-12
Original file line numberDiff line numberDiff line change
@@ -326,20 +326,20 @@ xlog.Infof("%+v", phone)
326326
* 预算追加
327327
* 修改商家券活动发券数量上限接口:`client.MarketingActivityOrderVoucherAppend()`
328328
* 活动发放
329-
* 活动领取咨询接口:TODO:https://opendocs.alipay.com/open/cdf2e908_alipay.marketing.activity.consult
329+
* 活动领取咨询接口:`client.MarketingActivityConsult()`
330330
* 优惠券核销
331-
* 同步券核销状态接口:TODO:https://opendocs.alipay.com/open/3ffce87f_alipay.marketing.activity.ordervoucher.use
332-
* 取消券核销状态接口:TODO:https://opendocs.alipay.com/open/4682759b_alipay.marketing.activity.ordervoucher.refund
331+
* 同步券核销状态接口:`client.MarketingActivityOrderVoucherUse()`
332+
* 取消券核销状态接口:`client.MarketingActivityOrderVoucherRefund()`
333333
* 活动查询
334-
* 查询商家券活动接口:TODO:https://opendocs.alipay.com/open/51f5946e_alipay.marketing.activity.ordervoucher.query
335-
* 查询活动详情接口:TODO:https://opendocs.alipay.com/open/f76b603f_alipay.marketing.activity.query
336-
* 统计商家券券码数量接口:TODO:https://opendocs.alipay.com/open/f6e49e82_alipay.marketing.activity.ordervoucher.codecount
337-
* 条件查询活动列表接口:TODO:https://opendocs.alipay.com/open/55aa8ee8_alipay.marketing.activity.batchquery
338-
* 条件查询用户券接口:TODO:https://opendocs.alipay.com/open/300dff38_alipay.marketing.activity.user.batchqueryvoucher
339-
* 查询用户券详情接口:TODO:https://opendocs.alipay.com/open/abffd3f6_alipay.marketing.activity.user.queryvoucher
340-
* 查询活动可用小程序接口:TODO:https://opendocs.alipay.com/open/634212b2_alipay.marketing.activity.app.batchquery
341-
* 查询活动可用门店接口:TODO:https://opendocs.alipay.com/open/cf4e0873_alipay.marketing.activity.shop.batchquery
342-
* 查询活动适用商品接口:TODO:https://opendocs.alipay.com/open/1bee5767_alipay.marketing.activity.goods.batchquery
334+
* 查询商家券活动接口:`client.MarketingActivityOrderVoucherQuery()`
335+
* 查询活动详情接口:`client.MarketingActivityQuery()`
336+
* 统计商家券券码数量接口:`client.MarketingActivityOrderVoucherCodeCount()`
337+
* 条件查询活动列表接口:`client.MarketingActivityBatchQuery()`
338+
* 条件查询用户券接口:`client.MarketingActivityQueryUserBatchQueryVoucher()`
339+
* 查询用户券详情接口:`client.MarketingActivityQueryUserQueryVoucher()`
340+
* 查询活动可用小程序接口:`client.MarketingActivityQueryAppBatchQuery()`
341+
* 查询活动可用门店接口:`client.MarketingActivityQueryShopBatchQuery()`
342+
* 查询活动适用商品接口:`client.MarketingActivityQueryGoodsBatchQuery()`
343343
* 商家会员卡
344344
* 基础功能
345345
* 会员卡模板创建接口:TODO:https://opendocs.alipay.com/open/b2854ad3_alipay.marketing.card.template.create

release_note.txt

+11-12
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
版本号:Release 1.5.103
22
修改记录:
33
(1) gopay:xlog 库更新,支持接口自定义logger。
4-
(1) gopay:go mod 版本升级至 1.21。
5-
(1) 支付宝:新增 client.PayAppMarketingConsult(),商户前置内容咨询接口。
6-
(2) 支付宝:新增 client.MarketingActivityOrderVoucherCreate(),创建商家券活动接口
7-
(3) 支付宝:新增 client.MarketingActivityOrderVoucherCodeDeposit(),同步商家券券码接口
8-
(4) 支付宝:新增 client.MarketingActivityOrderVoucherModify(),修改商家券活动基本信息接口
9-
(4) 支付宝:新增 client.MarketingActivityOrderVoucherStop(),停止商家券活动接口
10-
(4) 支付宝:新增 client.MarketingActivityOrderVoucherAppend(),修改商家券活动发券数量上限接口
11-
(4) 支付宝:新增
12-
(4) 支付宝:新增
13-
(4) 支付宝:新增
14-
(4) 支付宝:新增
15-
(4) 支付宝:新增
4+
(2) gopay:go mod 版本升级至 1.21。
5+
(3) 支付宝:新增 client.PayAppMarketingConsult(),商户前置内容咨询接口。
6+
(4) 支付宝:新增 client.MarketingActivityOrderVoucherCreate(),创建商家券活动接口
7+
(5) 支付宝:新增 client.MarketingActivityOrderVoucherCodeDeposit(),同步商家券券码接口
8+
(6) 支付宝:新增 client.MarketingActivityOrderVoucherModify(),修改商家券活动基本信息接口
9+
(7) 支付宝:新增 client.MarketingActivityOrderVoucherStop(),停止商家券活动接口
10+
(8) 支付宝:新增 client.MarketingActivityOrderVoucherAppend(),修改商家券活动发券数量上限接口
11+
(9) 支付宝:新增 client.MarketingActivityOrderVoucherUse(),同步券核销状态接口
12+
(10) 支付宝:新增 client.MarketingActivityOrderVoucherRefund(),取消券核销状态接口
13+
(11) 支付宝:新增 client.MarketingActivityOrderVoucherQuery(),查询商家券活动接口
14+
(12) 支付宝:新增 client.MarketingActivityOrderVoucherCodeCount(),统计商家券券码数量接口
1615

1716
版本号:Release 1.5.102
1817
修改记录:

0 commit comments

Comments
 (0)