doc.adoc 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. = GoWechat使用文档
  2. :toc: left
  3. [[install,安装]]
  4. == 安装
  5. go get github.com/yaotian/gowechat
  6. [[use,使用]]
  7. == 配置
  8. ==== 参数
  9. ```go
  10. var config = wxcontext.Config{
  11. //微信公众平台,商户平台,需要填写的信息
  12. AppID: "your app id",
  13. AppSecret: "your app secret",
  14. Token: "your token",
  15. EncodingAESKey: "your encoding aes key",
  16. //以下是 mch商户平台需要的变量
  17. SslCertFilePath string //证书公钥文件的路径
  18. SslKeyFilePath string //证书私钥文件的路径
  19. SslCertContent string //公钥证书的内容
  20. SslKeyContent string //私钥证书的内容
  21. MchID string //商户ID
  22. MchAPIKey string //商户平台设置的api key
  23. }
  24. ```
  25. === 微信平台的操作接口
  26. ==== 微信公众平台
  27. ```go
  28. wc := gowechat.NewWechat(config)
  29. //微信公众平台
  30. mp, err := wc.MpMgr()
  31. if err != nil {
  32. return
  33. }
  34. ```
  35. ==== 微信商户平台
  36. ```go
  37. wc := gowechat.NewWechat(config)
  38. //微信商户平台
  39. mch , err := wc.MchMgr()
  40. if err != nil {
  41. return
  42. }
  43. ```
  44. == 在框架中使用
  45. === beego中使用的例子
  46. ./examples/beego
  47. === gin中使用的例子
  48. ./examples/gin
  49. === net/http中使用的例子
  50. ./examples/http
  51. [[mp,mp]]
  52. == 微信公众平台
  53. === 初始化
  54. === 消息
  55. === 模板消息
  56. === 用户
  57. === 网页授权
  58. === JSSDK
  59. === 二维码
  60. === 菜单
  61. [[mch,mch]]
  62. == 微信支付(商户平台)
  63. === 初始化
  64. [source,golang]
  65. ----
  66. var config = wxcontext.Config{
  67. //微信公众平台,商户平台,需要填写的信息
  68. AppID: "your app id",
  69. AppSecret: "your app secret",
  70. Token: "your token",
  71. EncodingAESKey: "your encoding aes key",
  72. //------以下是 mch商户平台需要的变量
  73. //
  74. //证书公钥,路径,内容要保证只要有一项设置
  75. SslCertFilePath string //证书公钥文件的路径
  76. SslCertContent string //公钥证书的内容
  77. //私钥,路径,内容要保证只要有一项设置
  78. SslKeyFilePath string //证书私钥文件的路径
  79. SslKeyContent string //私钥证书的内容
  80. MchID string //商户ID
  81. MchAPIKey string //商户平台设置的api key
  82. //------ End 商户平台设置
  83. }
  84. wc := gowechat.NewWechat(config)
  85. //微信商户平台
  86. mch , err := wc.MchMgr()
  87. if err != nil {
  88. return
  89. }
  90. ----
  91. === 订单
  92. ==== 统一下单
  93. ===== 下单前需要准备的信息
  94. [source,go]
  95. ----
  96. type OrderInput struct {
  97. OpenID string //trade_type=JSAPI时(即公众号支付),此参数必传,此参数为微信用户在商户对应appid下的唯一标识
  98. Body string //String(128)
  99. OutTradeNum string //String(32) 20150806125346 商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*@ ,且在同一个商户号下唯一。
  100. TotalFee int //分为单位
  101. IP string
  102. NotifyURL string //异步接收微信支付结果通知的回调地址,通知url必须为外网可访问的url,不能携带参数
  103. TradeType string //JSAPI,NATIVE,APP
  104. ProductID string //trade_type=NATIVE时(即扫码支付),此参数必传
  105. }
  106. ----
  107. ===== 获取前端支付所需要的配置信息
  108. [source,go]
  109. ----
  110. //微信商户平台
  111. mch , err := wc.MchMgr()
  112. if err != nil {
  113. return
  114. }
  115. pay := mch.GetPay()
  116. config = OrderInput{
  117. OpenID:"openID",
  118. Body:"支付"
  119. }
  120. wxPayInfo, err := pay.GetJsAPIConfig(config)
  121. ----
  122. ==== 查询订单
  123. 该接口提供所有微信支付订单的查询,商户可以通过该接口主动查询订单状态,完成下一步的业务逻辑。
  124. 需要调用查询接口的情况:
  125. * 当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知;
  126. * 调用支付接口后,返回系统错误或未知交易状态情况;
  127. * 调用被扫支付API,返回USERPAYING的状态;
  128. * 调用关单或撤销接口API之前,需确认支付状态;
  129. ==== 关闭订单
  130. === 退款
  131. === 账单
  132. === 通知
  133. === JSSDK
  134. [[open,open]]
  135. == 开放平台
  136. [[corp,corp]]
  137. == 企业微信
  138. [[mini,mini]]
  139. == 小程序
  140. [[code,code]]
  141. == 贡献代码