{"repo":"wechatpay-apiv3/wechatpay-go","free":true,"listed":false,"github":"https://github.com/wechatpay-apiv3/wechatpay-go","clone":"git clone https://github.com/wechatpay-apiv3/wechatpay-go.git","description":"微信支付 APIv3 的官方 Go Library","language":"Go","stars":1282,"topics":["go","golang","wechatpay","wechatpay-apiv3","library","sdk","api-client","api-sdk"],"license":"Apache-2.0","category":"api-integrations-sdks","readme_excerpt":"微信支付 API v3 Go SDK 微信支付 APIv3 官方Go语言客户端代码库。 功能介绍 1. 接口 SDK。详见 接口介绍。 2. HTTP 客户端 core.Client ，支持请求签名和应答验签。如果 SDK 未支持你需要的接口，请用此客户端发起请求。 3. 回调通知处理库 core/notify ，支持微信支付回调通知的验签和解密。详见 回调通知验签与解密。 4. 证书下载、敏感信息加解密 等辅助能力。 兼容性 当前版本为测试版本，微信支付会尽量保持向后兼容。但可能因为可用性或易用性，同历史版本存在不兼容。如果你使用版本 :warning: 不要把私钥文件暴露在公共场合，如上传到 Github，写在客户端代码等。 + 微信支付平台证书 。微信支付平台证书是指由微信支付负责申请的，包含微信支付平台标识、公钥信息的证书。商户使用微信支付平台证书中的公钥验证应答签名。获取微信支付平台证书需通过 获取平台证书列表 接口下载。 + 证书序列号 。每个证书都有一个由 CA 颁发的唯一编号，即证书序列号。扩展阅读 如何查看证书序列号 。 + 微信支付 APIv3 密钥 ，是在回调通知和微信支付平台证书下载接口中，为加强数据安全，对关键信息 AES-256-GCM 加密时使用的对称加密密钥。 更多示例 以 JSAPI下单 为例 以 查询订单 为例 以 图片上传API 为例 示例程序 为了方便开发者快速上手，微信支付给每个服务生成了示例代码 api xx example test.go 。请按需查阅。例如： + api jsapi example test.go + api refunds example test.go 发送 HTTP 请求 如果 SDK 还未支持你需要的接口，使用 core.Client 的 GET 、 POST 等方法发送 HTTP 请求，而不用关注签名、验签等逻辑。 以 下载微信支付平台证书 为例： 使用 core.Client 发送 HTTP 请求后会得到 core.APIResult 实例。 错误处理 以下情况，SDK 发送请求会返回 error ： + HTTP 网络错误，如应答接收超时或网络连接失败 + 客户端失败，如生成签名失败 + 服务器端返回了 非 2xx HTTP 状态码 + 应答签名验证失败 为了方便使用，SDK 将服务器返回的 4xx 和 5xx 错误，转换成了 APIError 。 回调通知的验签与解密 1. 使用微信支付平台证书（验签）和商户 APIv3 密钥（解密）初始化 notify.Handler 2. 调用 handler.ParseNotifyRequest 验签，并解密报文。 初始化 + 方法一（大多数场景）：先手动注册下载器，再获取微信平台证书访问器。 适用场景： 仅需要对回调通知验证签名并解密的场景。例如，基础支付的回调通知。 + 方法二：像 发送请求 那样使用 WithWechatPayAutoAuthCipher 初始化 core.Client ，然后再用client进行接口调用。 适用场景：需要对回调通知验证签名并解密，并且后续需要使用 Client 的场景。例如，电子发票的回调通知，验签与解密后还需要通过 Client 调用用户填写抬头接口。 + 方法三：使用本地的微信支付平台证书和商户 APIv3 密钥初始化 Handler 。 适用场景：首次通过工具下载平台证书到本地，后续使用本地管理的平台证书进行验签与解密。 建议：为了正确使用平台证书下载管理器，你应阅读并理解 如何使用","default_branch":null,"files":null,"tree":[],"storefront":"/r/wechatpay-apiv3","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/wechatpay-apiv3/wechatpay-go/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}