api_jsapi_example_test.go 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. // Copyright 2021 Tencent Inc. All rights reserved.
  2. //
  3. // JSAPI支付
  4. //
  5. // JSAPI支付API
  6. //
  7. // API version: 1.2.3
  8. // Code generated by WechatPay APIv3 Generator based on [OpenAPI Generator](https://openapi-generator.tech); DO NOT EDIT.
  9. package jsapi_test
  10. import (
  11. "context"
  12. "log"
  13. "time"
  14. "git.nanodreamtech.com/sg/wechatpay-go/core"
  15. "git.nanodreamtech.com/sg/wechatpay-go/core/option"
  16. "git.nanodreamtech.com/sg/wechatpay-go/services/payments/jsapi"
  17. "git.nanodreamtech.com/sg/wechatpay-go/utils"
  18. )
  19. func ExampleJsapiApiService_CloseOrder() {
  20. var (
  21. mchID string = "190000****" // 商户号
  22. mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
  23. mchAPIv3Key string = "2ab9****************************" // 商户APIv3密钥
  24. )
  25. // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
  26. mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
  27. if err != nil {
  28. log.Print("load merchant private key error")
  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. }
  39. svc := jsapi.JsapiApiService{Client: client}
  40. result, err := svc.CloseOrder(ctx,
  41. jsapi.CloseOrderRequest{
  42. OutTradeNo: core.String("OutTradeNo_example"),
  43. Mchid: core.String("1230000109"),
  44. },
  45. )
  46. if err != nil {
  47. // 处理错误
  48. log.Printf("call CloseOrder err:%s", err)
  49. } else {
  50. // 处理返回结果
  51. log.Printf("status=%d", result.Response.StatusCode)
  52. }
  53. }
  54. func ExampleJsapiApiService_Prepay() {
  55. var (
  56. mchID string = "190000****" // 商户号
  57. mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
  58. mchAPIv3Key string = "2ab9****************************" // 商户APIv3密钥
  59. )
  60. // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
  61. mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
  62. if err != nil {
  63. log.Print("load merchant private key error")
  64. }
  65. ctx := context.Background()
  66. // 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
  67. opts := []core.ClientOption{
  68. option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
  69. }
  70. client, err := core.NewClient(ctx, opts...)
  71. if err != nil {
  72. log.Printf("new wechat pay client err:%s", err)
  73. }
  74. svc := jsapi.JsapiApiService{Client: client}
  75. resp, result, err := svc.Prepay(ctx,
  76. jsapi.PrepayRequest{
  77. Appid: core.String("wxd678efh567hg6787"),
  78. Mchid: core.String("1230000109"),
  79. Description: core.String("Image形象店-深圳腾大-QQ公仔"),
  80. OutTradeNo: core.String("1217752501201407033233368018"),
  81. TimeExpire: core.Time(time.Now()),
  82. Attach: core.String("自定义数据说明"),
  83. NotifyUrl: core.String("https://www.weixin.qq.com/wxpay/pay.php"),
  84. GoodsTag: core.String("WXG"),
  85. LimitPay: []string{"LimitPay_example"},
  86. SupportFapiao: core.Bool(false),
  87. Amount: &jsapi.Amount{
  88. Currency: core.String("CNY"),
  89. Total: core.Int64(100),
  90. },
  91. Payer: &jsapi.Payer{
  92. Openid: core.String("oUpF8uMuAJO_M2pxb1Q9zNjWeS6o"),
  93. },
  94. Detail: &jsapi.Detail{
  95. CostPrice: core.Int64(608800),
  96. GoodsDetail: []jsapi.GoodsDetail{jsapi.GoodsDetail{
  97. GoodsName: core.String("iPhoneX 256G"),
  98. MerchantGoodsId: core.String("ABC"),
  99. Quantity: core.Int64(1),
  100. UnitPrice: core.Int64(828800),
  101. WechatpayGoodsId: core.String("1001"),
  102. }},
  103. InvoiceId: core.String("wx123"),
  104. },
  105. SceneInfo: &jsapi.SceneInfo{
  106. DeviceId: core.String("013467007045764"),
  107. PayerClientIp: core.String("14.23.150.211"),
  108. StoreInfo: &jsapi.StoreInfo{
  109. Address: core.String("广东省深圳市南山区科技中一道10000号"),
  110. AreaCode: core.String("440305"),
  111. Id: core.String("0001"),
  112. Name: core.String("腾讯大厦分店"),
  113. },
  114. },
  115. SettleInfo: &jsapi.SettleInfo{
  116. ProfitSharing: core.Bool(false),
  117. },
  118. },
  119. )
  120. if err != nil {
  121. // 处理错误
  122. log.Printf("call Prepay err:%s", err)
  123. } else {
  124. // 处理返回结果
  125. log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
  126. }
  127. }
  128. func ExampleJsapiApiService_QueryOrderById() {
  129. var (
  130. mchID string = "190000****" // 商户号
  131. mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
  132. mchAPIv3Key string = "2ab9****************************" // 商户APIv3密钥
  133. )
  134. // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
  135. mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
  136. if err != nil {
  137. log.Print("load merchant private key error")
  138. }
  139. ctx := context.Background()
  140. // 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
  141. opts := []core.ClientOption{
  142. option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
  143. }
  144. client, err := core.NewClient(ctx, opts...)
  145. if err != nil {
  146. log.Printf("new wechat pay client err:%s", err)
  147. }
  148. svc := jsapi.JsapiApiService{Client: client}
  149. resp, result, err := svc.QueryOrderById(ctx,
  150. jsapi.QueryOrderByIdRequest{
  151. TransactionId: core.String("TransactionId_example"),
  152. Mchid: core.String("Mchid_example"),
  153. },
  154. )
  155. if err != nil {
  156. // 处理错误
  157. log.Printf("call QueryOrderById err:%s", err)
  158. } else {
  159. // 处理返回结果
  160. log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
  161. }
  162. }
  163. func ExampleJsapiApiService_QueryOrderByOutTradeNo() {
  164. var (
  165. mchID string = "190000****" // 商户号
  166. mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
  167. mchAPIv3Key string = "2ab9****************************" // 商户APIv3密钥
  168. )
  169. // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
  170. mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
  171. if err != nil {
  172. log.Print("load merchant private key error")
  173. }
  174. ctx := context.Background()
  175. // 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
  176. opts := []core.ClientOption{
  177. option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
  178. }
  179. client, err := core.NewClient(ctx, opts...)
  180. if err != nil {
  181. log.Printf("new wechat pay client err:%s", err)
  182. }
  183. svc := jsapi.JsapiApiService{Client: client}
  184. resp, result, err := svc.QueryOrderByOutTradeNo(ctx,
  185. jsapi.QueryOrderByOutTradeNoRequest{
  186. OutTradeNo: core.String("OutTradeNo_example"),
  187. Mchid: core.String("Mchid_example"),
  188. },
  189. )
  190. if err != nil {
  191. // 处理错误
  192. log.Printf("call QueryOrderByOutTradeNo err:%s", err)
  193. } else {
  194. // 处理返回结果
  195. log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
  196. }
  197. }