api_stock_example_test.go 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540
  1. // Copyright 2021 Tencent Inc. All rights reserved.
  2. //
  3. // 微信支付营销系统开放API
  4. //
  5. // 新增立减金api
  6. //
  7. // API version: 3.4.0
  8. // Code generated by WechatPay APIv3 Generator based on [OpenAPI Generator](https://openapi-generator.tech); DO NOT EDIT.
  9. package cashcoupons_test
  10. import (
  11. "context"
  12. "log"
  13. "git.nanodreamtech.com/sg/wechatpay-go/core"
  14. "git.nanodreamtech.com/sg/wechatpay-go/core/option"
  15. "git.nanodreamtech.com/sg/wechatpay-go/services/cashcoupons"
  16. "git.nanodreamtech.com/sg/wechatpay-go/utils"
  17. )
  18. func ExampleStockApiService_CreateCouponStock() {
  19. var (
  20. mchID string = "190000****" // 商户号
  21. mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
  22. mchAPIv3Key string = "2ab9****************************" // 商户APIv3密钥
  23. )
  24. // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
  25. mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
  26. if err != nil {
  27. log.Printf("load merchant private key error:%s", err)
  28. return
  29. }
  30. ctx := context.Background()
  31. // 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
  32. opts := []core.ClientOption{
  33. option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
  34. }
  35. client, err := core.NewClient(ctx, opts...)
  36. if err != nil {
  37. log.Printf("new wechat pay client err:%s", err)
  38. return
  39. }
  40. svc := cashcoupons.StockApiService{Client: client}
  41. resp, result, err := svc.CreateCouponStock(ctx,
  42. cashcoupons.CreateCouponStockRequest{
  43. StockName: core.String("微信支付代金券批次"),
  44. Comment: core.String("零售批次"),
  45. BelongMerchant: core.String("98568865"),
  46. AvailableBeginTime: core.String("2015-05-20T13:29:35.120+08:00"),
  47. AvailableEndTime: core.String("2015-05-20T13:29:35.120+08:00"),
  48. StockUseRule: &cashcoupons.StockRule{
  49. MaxCoupons: core.Int64(100),
  50. MaxAmount: core.Int64(5000),
  51. MaxAmountByDay: core.Int64(400),
  52. MaxCouponsPerUser: core.Int64(3),
  53. NaturalPersonLimit: core.Bool(false),
  54. PreventApiAbuse: core.Bool(false),
  55. },
  56. PatternInfo: &cashcoupons.PatternInfo{
  57. Description: core.String("微信支付营销代金券"),
  58. MerchantLogo: core.String("CDN地址"),
  59. MerchantName: core.String("微信支付"),
  60. BackgroundColor: cashcoupons.BACKGROUNDCOLOR_COLOR010.Ptr(),
  61. CouponImage: core.String("图片cdn地址"),
  62. JumpTarget: cashcoupons.JUMPTARGET_PAYMENT_CODE.Ptr(),
  63. MiniProgramAppid: core.String("wx23232232323"),
  64. MiniProgramPath: core.String("/path/index/index"),
  65. },
  66. CouponUseRule: &cashcoupons.CouponRule{
  67. CouponAvailableTime: &cashcoupons.FavorAvailableTime{
  68. FixAvailableTime: &cashcoupons.FixedAvailableTime{
  69. AvailableWeekDay: []int64{int64(1)},
  70. BeginTime: core.Int64(0),
  71. EndTime: core.Int64(3600),
  72. },
  73. SecondDayAvailable: core.Bool(false),
  74. AvailableTimeAfterReceive: core.Int64(1440),
  75. },
  76. FixedNormalCoupon: &cashcoupons.FixedValueStockMsg{
  77. CouponAmount: core.Int64(100),
  78. TransactionMinimum: core.Int64(100),
  79. },
  80. GoodsTag: []string{"123321"},
  81. TradeType: []cashcoupons.TradeType{cashcoupons.TRADETYPE_MICROAPP},
  82. CombineUse: core.Bool(false),
  83. AvailableItems: []string{"123321"},
  84. UnavailableItems: []string{"789987"},
  85. AvailableMerchants: []string{"9856000"},
  86. LimitCard: &cashcoupons.CardLimitation{
  87. Name: core.String("精粹白金"),
  88. Bin: []string{"62542688"},
  89. },
  90. LimitPay: []string{"BCZ_DEBIT"},
  91. },
  92. NoCash: core.Bool(false),
  93. StockType: core.String("NORMAL"),
  94. OutRequestNo: core.String("example_out_request_no"),
  95. ExtInfo: core.String("{'exinfo1':'1234','exinfo2':'3456'}"),
  96. },
  97. )
  98. if err != nil {
  99. // 处理错误
  100. log.Printf("call CreateCouponStock err:%s", err)
  101. } else {
  102. // 处理返回结果
  103. log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
  104. }
  105. }
  106. func ExampleStockApiService_ListAvailableMerchants() {
  107. var (
  108. mchID string = "190000****" // 商户号
  109. mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
  110. mchAPIv3Key string = "2ab9****************************" // 商户APIv3密钥
  111. )
  112. // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
  113. mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
  114. if err != nil {
  115. log.Printf("load merchant private key error:%s", err)
  116. return
  117. }
  118. ctx := context.Background()
  119. // 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
  120. opts := []core.ClientOption{
  121. option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
  122. }
  123. client, err := core.NewClient(ctx, opts...)
  124. if err != nil {
  125. log.Printf("new wechat pay client err:%s", err)
  126. return
  127. }
  128. svc := cashcoupons.StockApiService{Client: client}
  129. resp, result, err := svc.ListAvailableMerchants(ctx,
  130. cashcoupons.ListAvailableMerchantsRequest{
  131. Offset: core.Int64(10),
  132. Limit: core.Int64(10),
  133. StockCreatorMchid: core.String("9865000"),
  134. StockId: core.String("9865000"),
  135. },
  136. )
  137. if err != nil {
  138. // 处理错误
  139. log.Printf("call ListAvailableMerchants err:%s", err)
  140. } else {
  141. // 处理返回结果
  142. log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
  143. }
  144. }
  145. func ExampleStockApiService_ListAvailableSingleitems() {
  146. var (
  147. mchID string = "190000****" // 商户号
  148. mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
  149. mchAPIv3Key string = "2ab9****************************" // 商户APIv3密钥
  150. )
  151. // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
  152. mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
  153. if err != nil {
  154. log.Printf("load merchant private key error:%s", err)
  155. return
  156. }
  157. ctx := context.Background()
  158. // 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
  159. opts := []core.ClientOption{
  160. option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
  161. }
  162. client, err := core.NewClient(ctx, opts...)
  163. if err != nil {
  164. log.Printf("new wechat pay client err:%s", err)
  165. return
  166. }
  167. svc := cashcoupons.StockApiService{Client: client}
  168. resp, result, err := svc.ListAvailableSingleitems(ctx,
  169. cashcoupons.ListAvailableSingleitemsRequest{
  170. Offset: core.Int64(10),
  171. Limit: core.Int64(10),
  172. StockCreatorMchid: core.String("9865000"),
  173. StockId: core.String("9865000"),
  174. },
  175. )
  176. if err != nil {
  177. // 处理错误
  178. log.Printf("call ListAvailableSingleitems err:%s", err)
  179. } else {
  180. // 处理返回结果
  181. log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
  182. }
  183. }
  184. func ExampleStockApiService_ListStocks() {
  185. var (
  186. mchID string = "190000****" // 商户号
  187. mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
  188. mchAPIv3Key string = "2ab9****************************" // 商户APIv3密钥
  189. )
  190. // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
  191. mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
  192. if err != nil {
  193. log.Printf("load merchant private key error:%s", err)
  194. return
  195. }
  196. ctx := context.Background()
  197. // 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
  198. opts := []core.ClientOption{
  199. option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
  200. }
  201. client, err := core.NewClient(ctx, opts...)
  202. if err != nil {
  203. log.Printf("new wechat pay client err:%s", err)
  204. return
  205. }
  206. svc := cashcoupons.StockApiService{Client: client}
  207. resp, result, err := svc.ListStocks(ctx,
  208. cashcoupons.ListStocksRequest{
  209. Offset: core.Int64(1),
  210. Limit: core.Int64(8),
  211. StockCreatorMchid: core.String("9856888"),
  212. CreateStartTime: core.String("2015-05-20T13:29:35.120+08:00"),
  213. CreateEndTime: core.String("2015-05-20T13:29:35.120+08:00"),
  214. Status: core.String("paused"),
  215. },
  216. )
  217. if err != nil {
  218. // 处理错误
  219. log.Printf("call ListStocks err:%s", err)
  220. } else {
  221. // 处理返回结果
  222. log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
  223. }
  224. }
  225. func ExampleStockApiService_PauseStock() {
  226. var (
  227. mchID string = "190000****" // 商户号
  228. mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
  229. mchAPIv3Key string = "2ab9****************************" // 商户APIv3密钥
  230. )
  231. // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
  232. mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
  233. if err != nil {
  234. log.Printf("load merchant private key error:%s", err)
  235. return
  236. }
  237. ctx := context.Background()
  238. // 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
  239. opts := []core.ClientOption{
  240. option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
  241. }
  242. client, err := core.NewClient(ctx, opts...)
  243. if err != nil {
  244. log.Printf("new wechat pay client err:%s", err)
  245. return
  246. }
  247. svc := cashcoupons.StockApiService{Client: client}
  248. resp, result, err := svc.PauseStock(ctx,
  249. cashcoupons.PauseStockRequest{
  250. StockId: core.String("实例值"),
  251. StockCreatorMchid: core.String("8965000"),
  252. },
  253. )
  254. if err != nil {
  255. // 处理错误
  256. log.Printf("call PauseStock err:%s", err)
  257. } else {
  258. // 处理返回结果
  259. log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
  260. }
  261. }
  262. func ExampleStockApiService_QueryStock() {
  263. var (
  264. mchID string = "190000****" // 商户号
  265. mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
  266. mchAPIv3Key string = "2ab9****************************" // 商户APIv3密钥
  267. )
  268. // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
  269. mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
  270. if err != nil {
  271. log.Printf("load merchant private key error:%s", err)
  272. return
  273. }
  274. ctx := context.Background()
  275. // 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
  276. opts := []core.ClientOption{
  277. option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
  278. }
  279. client, err := core.NewClient(ctx, opts...)
  280. if err != nil {
  281. log.Printf("new wechat pay client err:%s", err)
  282. return
  283. }
  284. svc := cashcoupons.StockApiService{Client: client}
  285. resp, result, err := svc.QueryStock(ctx,
  286. cashcoupons.QueryStockRequest{
  287. StockId: core.String("9856888"),
  288. StockCreatorMchid: core.String("123456"),
  289. },
  290. )
  291. if err != nil {
  292. // 处理错误
  293. log.Printf("call QueryStock err:%s", err)
  294. } else {
  295. // 处理返回结果
  296. log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
  297. }
  298. }
  299. func ExampleStockApiService_RefundFlow() {
  300. var (
  301. mchID string = "190000****" // 商户号
  302. mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
  303. mchAPIv3Key string = "2ab9****************************" // 商户APIv3密钥
  304. )
  305. // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
  306. mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
  307. if err != nil {
  308. log.Printf("load merchant private key error:%s", err)
  309. return
  310. }
  311. ctx := context.Background()
  312. // 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
  313. opts := []core.ClientOption{
  314. option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
  315. }
  316. client, err := core.NewClient(ctx, opts...)
  317. if err != nil {
  318. log.Printf("new wechat pay client err:%s", err)
  319. return
  320. }
  321. svc := cashcoupons.StockApiService{Client: client}
  322. resp, result, err := svc.RefundFlow(ctx,
  323. cashcoupons.RefundFlowRequest{
  324. StockId: core.String("9865000"),
  325. },
  326. )
  327. if err != nil {
  328. // 处理错误
  329. log.Printf("call RefundFlow err:%s", err)
  330. } else {
  331. // 处理返回结果
  332. log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
  333. }
  334. }
  335. func ExampleStockApiService_RestartStock() {
  336. var (
  337. mchID string = "190000****" // 商户号
  338. mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
  339. mchAPIv3Key string = "2ab9****************************" // 商户APIv3密钥
  340. )
  341. // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
  342. mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
  343. if err != nil {
  344. log.Printf("load merchant private key error:%s", err)
  345. return
  346. }
  347. ctx := context.Background()
  348. // 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
  349. opts := []core.ClientOption{
  350. option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
  351. }
  352. client, err := core.NewClient(ctx, opts...)
  353. if err != nil {
  354. log.Printf("new wechat pay client err:%s", err)
  355. return
  356. }
  357. svc := cashcoupons.StockApiService{Client: client}
  358. resp, result, err := svc.RestartStock(ctx,
  359. cashcoupons.RestartStockRequest{
  360. StockId: core.String("8965000"),
  361. StockCreatorMchid: core.String("9865000"),
  362. },
  363. )
  364. if err != nil {
  365. // 处理错误
  366. log.Printf("call RestartStock err:%s", err)
  367. } else {
  368. // 处理返回结果
  369. log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
  370. }
  371. }
  372. func ExampleStockApiService_StartStock() {
  373. var (
  374. mchID string = "190000****" // 商户号
  375. mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
  376. mchAPIv3Key string = "2ab9****************************" // 商户APIv3密钥
  377. )
  378. // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
  379. mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
  380. if err != nil {
  381. log.Printf("load merchant private key error:%s", err)
  382. return
  383. }
  384. ctx := context.Background()
  385. // 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
  386. opts := []core.ClientOption{
  387. option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
  388. }
  389. client, err := core.NewClient(ctx, opts...)
  390. if err != nil {
  391. log.Printf("new wechat pay client err:%s", err)
  392. return
  393. }
  394. svc := cashcoupons.StockApiService{Client: client}
  395. resp, result, err := svc.StartStock(ctx,
  396. cashcoupons.StartStockRequest{
  397. StockId: core.String("9856000"),
  398. StockCreatorMchid: core.String("8956000"),
  399. },
  400. )
  401. if err != nil {
  402. // 处理错误
  403. log.Printf("call StartStock err:%s", err)
  404. } else {
  405. // 处理返回结果
  406. log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
  407. }
  408. }
  409. func ExampleStockApiService_StopStock() {
  410. var (
  411. mchID string = "190000****" // 商户号
  412. mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
  413. mchAPIv3Key string = "2ab9****************************" // 商户APIv3密钥
  414. )
  415. // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
  416. mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
  417. if err != nil {
  418. log.Printf("load merchant private key error:%s", err)
  419. return
  420. }
  421. ctx := context.Background()
  422. // 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
  423. opts := []core.ClientOption{
  424. option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
  425. }
  426. client, err := core.NewClient(ctx, opts...)
  427. if err != nil {
  428. log.Printf("new wechat pay client err:%s", err)
  429. return
  430. }
  431. svc := cashcoupons.StockApiService{Client: client}
  432. resp, result, err := svc.StopStock(ctx,
  433. cashcoupons.StopStockRequest{
  434. StockId: core.String("8695000"),
  435. StockCreatorMchid: core.String("9865000"),
  436. },
  437. )
  438. if err != nil {
  439. // 处理错误
  440. log.Printf("call StopStock err:%s", err)
  441. } else {
  442. // 处理返回结果
  443. log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
  444. }
  445. }
  446. func ExampleStockApiService_UseFlow() {
  447. var (
  448. mchID string = "190000****" // 商户号
  449. mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
  450. mchAPIv3Key string = "2ab9****************************" // 商户APIv3密钥
  451. )
  452. // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
  453. mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
  454. if err != nil {
  455. log.Printf("load merchant private key error:%s", err)
  456. return
  457. }
  458. ctx := context.Background()
  459. // 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
  460. opts := []core.ClientOption{
  461. option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
  462. }
  463. client, err := core.NewClient(ctx, opts...)
  464. if err != nil {
  465. log.Printf("new wechat pay client err:%s", err)
  466. return
  467. }
  468. svc := cashcoupons.StockApiService{Client: client}
  469. resp, result, err := svc.UseFlow(ctx,
  470. cashcoupons.UseFlowRequest{
  471. StockId: core.String("9865000"),
  472. },
  473. )
  474. if err != nil {
  475. // 处理错误
  476. log.Printf("call UseFlow err:%s", err)
  477. } else {
  478. // 处理返回结果
  479. log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
  480. }
  481. }