专栏首页程序源代码Go语言实现微信后端接口

Go语言实现微信后端接口

  1. 概述介绍

这是用Golang封装了微信支付的所有API接口的SDK,并自动生成和解析XML数据,还包括部分服务号、小程序、移动端的工具函数。

  • 支持境内普通商户和境内服务商(境外和银行服务商没有条件测试)。
  • 支持全局配置应用ID、商家ID等信息。
  • 全部参数和返回值均使用struct类型传递,而不是map类型。
  • 包含公众号网页授权码的相关操作。
  • 包含H5、小程序、移动端的支付签名生成方法。

下面是通用的接口,使用上面初始化时生成的实例client进行相应函数的调用:

提交付款码支付:func (*Client) Micropay(MicropayBody) (MicropayResponse, error)

统一下单:func (*Client) UnifiedOrder(UnifiedOrderBody) (UnifiedOrderResponse, error)

查询订单:func (*Client) QueryOrder(QueryOrderBody) (QueryOrderResponse, error)

关闭订单:func (*Client) CloseOrder(CloseOrderBody) (CloseOrderResponse, error)

撤销订单:func (*Client) Reverse(ReverseBody) (ReverseResponse, error)

申请退款:func (*Client) Refund(RefundBody) (RefundResponse, error)

查询退款:func (*Client) QueryRefund(QueryRefundBody) (QueryRefundResponse, error)

下载对账单:func (*Client) DownloadBill(DownloadBillBody) (string, *DownloadBillResponse, error)

交易保障(JSAPI):func (*Client) ReportJsApi(ReportJsApiBody) (ReportJsApiResponse, error)

交易保障(MICROPAY):func (*Client) ReportMicropay(ReportMicropayBody) (ReportMicropayResponse, error)

下载资金账单:TODO,client.DownloadFundFlow()

拉取订单评价数据:TODO,client.BatchQueryComment()

企业付款到零钱:func (*Client) Change(ChangeBody) (ChangeResponse, error)

授权码查询OpenId:func (*Client) OpenIdByAuthCode(OpenIdByAuthCodeBody) (OpenIdByAuthCodeResponse, error)

获取AccessToken:func GetAccessToken(appId string, appSecret string) (AccessToken, error)

获取用户基本信息(UnionId机制):func GetUserInfo(accessToken string, openId string, lang ...string) (UserInfo, error)

获取小程序支付签名:func GetMiniPaySign(appId, nonceStr, prepayId, signType, timeStamp, apiKey string) (string)

获取H5支付签名:func GetH5PaySign(appId, nonceStr, packages, signType, timeStamp, apiKey string) (string)

获取APP支付签名:func GetAppPaySign(appId, nonceStr, partnerId, prepayId, signType, timeStamp, apiKey string) (string)

其中带有(*Client)字样的接口,需要使用wechat.NewClient创建的实例对象来调用,而不带的接口,则可以直接使用wechat.XXX调用。

  1. 免责声明

写作说明】以上内容分享给喜欢编程,有梦想的程序员,希望能帮助到你们。以上文章属于此公众号原创所有,如需转载请注明出处。

本文分享自微信公众号 - 程序源代码(itcode)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [javaSE] IO流(RandomAccessFile)

    随机访问文件,可以看作一个大型的byte[]数组,不算是IO体系中的一员,内部封装了字节输入输出流,可以设置权限,可以调整指针的位置

    陶士涵
  • Cisco ASA 应用NAT

    ASA上的NAT有动态NAT、动态PAT、静态NAT和静态PAT四种类型。 动态NAT的配置: 指定需要进行地址转换的网段: asa(config)# nat ...

    小手冰凉
  • Use WebGUI instead of SAPGUI

    We can use WebIDE for UI5 development nowadays, however for ABAP, it is possible...

    Jerry Wang
  • 浅谈ACL(访问控制列表)

    ACL(访问控制列表)是应用在路由器接口的指令列表。这些指令列表用来告诉路由器,那些数据包可以接收,那些数据包需要拒绝。 基本原理为:ACL使用包过滤技术,在路...

    小手冰凉
  • 巧用云开发,实现多个小程序访问同一个云数据库

    经常看我文章的知道,我有两个博客小程序(程序员的博客和我si程序员)。前者基于开源博客框架ghost。

    Bug生活2048
  • 逆浏览器请求之JS跨域访问

    禁用跨域访问是浏览器保证安全访问的一项重要策略限制,很多跨域访问的操作都是违逆浏览器标准的。在一些场合不得不又需要用到,则本文大致说明下,在Nginx作为服务端...

    Eller
  • [PHP] 排序和查找算法

    冒泡排序的原理可以顾名思义:把每个数据看成一个气泡,按初始顺序自底向上依次对两两气泡进行比较,对上重下轻的气泡交换顺序(这里用气泡轻、重表示数据大、小),保证轻...

    陶士涵
  • DataIntegrityViolationException

    org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC ...

    yuanyuan
  • QQ互联的注意事项

    最近试了一下用QQ登陆联系原有的账户体系,由于用了LeanCloud提供的后台服务,我只用关心QQ互联的部分。

    gojam
  • 再遇CORS -- 自定义HTTP header的导致跨域

    出于多种考虑,放弃了使用类似WordPress这种现成博客解决方案,准备自己搭建一个博客系统,技术选型为:后端:Flask,前端:Vue。登录状态管理放弃coo...

    HaythamXu

扫码关注云+社区

领取腾讯云代金券