api_native_example_test.go 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. // Copyright 2021 Tencent Inc. All rights reserved.
  2. //
  3. // Native支付
  4. //
  5. // Native支付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 native_test
  10. import (
  11. "context"
  12. "log"
  13. "time"
  14. "github.com/wechatpay-apiv3/wechatpay-go/core"
  15. "github.com/wechatpay-apiv3/wechatpay-go/core/option"
  16. "github.com/wechatpay-apiv3/wechatpay-go/services/partnerpayments/native"
  17. "github.com/wechatpay-apiv3/wechatpay-go/utils"
  18. )
  19. func ExampleNativeApiService_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 := native.NativeApiService{Client: client}
  40. result, err := svc.CloseOrder(ctx,
  41. native.CloseOrderRequest{
  42. OutTradeNo: core.String("OutTradeNo_example"),
  43. SpMchid: core.String("1230000109"),
  44. SubMchid: core.String("1230000109"),
  45. },
  46. )
  47. if err != nil {
  48. // 处理错误
  49. log.Printf("call CloseOrder err:%s", err)
  50. } else {
  51. // 处理返回结果
  52. log.Printf("status=%d", result.Response.StatusCode)
  53. }
  54. }
  55. func ExampleNativeApiService_Prepay() {
  56. var (
  57. mchID string = "190000****" // 商户号
  58. mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
  59. mchAPIv3Key string = "2ab9****************************" // 商户APIv3密钥
  60. )
  61. // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
  62. mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
  63. if err != nil {
  64. log.Print("load merchant private key error")
  65. }
  66. ctx := context.Background()
  67. // 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
  68. opts := []core.ClientOption{
  69. option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
  70. }
  71. client, err := core.NewClient(ctx, opts...)
  72. if err != nil {
  73. log.Printf("new wechat pay client err:%s", err)
  74. }
  75. svc := native.NativeApiService{Client: client}
  76. resp, result, err := svc.Prepay(ctx,
  77. native.PrepayRequest{
  78. SpAppid: core.String("wxd678efh567hg6787"),
  79. SpMchid: core.String("1230000109"),
  80. SubAppid: core.String("wxd678efh567hg6787"),
  81. SubMchid: core.String("1230000109"),
  82. Description: core.String("Image形象店-深圳腾大-QQ公仔"),
  83. OutTradeNo: core.String("1217752501201407033233368018"),
  84. TimeExpire: core.Time(time.Now()),
  85. Attach: core.String("自定义数据说明"),
  86. NotifyUrl: core.String("https://www.weixin.qq.com/wxpay/pay.php"),
  87. GoodsTag: core.String("WXG"),
  88. LimitPay: []string{"LimitPay_example"},
  89. SupportFapiao: core.Bool(false),
  90. Amount: &native.Amount{
  91. Currency: core.String("CNY"),
  92. Total: core.Int64(100),
  93. },
  94. Detail: &native.Detail{
  95. CostPrice: core.Int64(608800),
  96. GoodsDetail: []native.GoodsDetail{native.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. SettleInfo: &native.SettleInfo{
  106. ProfitSharing: core.Bool(false),
  107. },
  108. SceneInfo: &native.SceneInfo{
  109. DeviceId: core.String("013467007045764"),
  110. PayerClientIp: core.String("14.23.150.211"),
  111. StoreInfo: &native.StoreInfo{
  112. Address: core.String("广东省深圳市南山区科技中一道10000号"),
  113. AreaCode: core.String("440305"),
  114. Id: core.String("0001"),
  115. Name: core.String("腾讯大厦分店"),
  116. },
  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 ExampleNativeApiService_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 := native.NativeApiService{Client: client}
  149. resp, result, err := svc.QueryOrderById(ctx,
  150. native.QueryOrderByIdRequest{
  151. TransactionId: core.String("TransactionId_example"),
  152. SpMchid: core.String("SpMchid_example"),
  153. SubMchid: core.String("SubMchid_example"),
  154. },
  155. )
  156. if err != nil {
  157. // 处理错误
  158. log.Printf("call QueryOrderById err:%s", err)
  159. } else {
  160. // 处理返回结果
  161. log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
  162. }
  163. }
  164. func ExampleNativeApiService_QueryOrderByOutTradeNo() {
  165. var (
  166. mchID string = "190000****" // 商户号
  167. mchCertificateSerialNumber string = "3775************************************" // 商户证书序列号
  168. mchAPIv3Key string = "2ab9****************************" // 商户APIv3密钥
  169. )
  170. // 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
  171. mchPrivateKey, err := utils.LoadPrivateKeyWithPath("/path/to/merchant/apiclient_key.pem")
  172. if err != nil {
  173. log.Print("load merchant private key error")
  174. }
  175. ctx := context.Background()
  176. // 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
  177. opts := []core.ClientOption{
  178. option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
  179. }
  180. client, err := core.NewClient(ctx, opts...)
  181. if err != nil {
  182. log.Printf("new wechat pay client err:%s", err)
  183. }
  184. svc := native.NativeApiService{Client: client}
  185. resp, result, err := svc.QueryOrderByOutTradeNo(ctx,
  186. native.QueryOrderByOutTradeNoRequest{
  187. OutTradeNo: core.String("OutTradeNo_example"),
  188. SpMchid: core.String("SpMchid_example"),
  189. SubMchid: core.String("SubMchid_example"),
  190. },
  191. )
  192. if err != nil {
  193. // 处理错误
  194. log.Printf("call QueryOrderByOutTradeNo err:%s", err)
  195. } else {
  196. // 处理返回结果
  197. log.Printf("status=%d resp=%s", result.Response.StatusCode, resp)
  198. }
  199. }