{"repo":"wechatpay-apiv3/wechatpay-java","free":true,"listed":false,"github":"https://github.com/wechatpay-apiv3/wechatpay-java","clone":"git clone https://github.com/wechatpay-apiv3/wechatpay-java.git","description":"微信支付 APIv3 的官方 Java Library","language":"Java","stars":1539,"topics":["java","sdk","wechatpay","weixin","weixin-pay","api-library","payment","wechatpay-apiv3"],"license":"Apache-2.0","category":"api-integrations-sdks","readme_excerpt":"微信支付 APIv3 Java SDK 微信支付 APIv3 官方 Java 语言客户端开发库。 开发库由 core 和 service 组成： - core 为基础库，包含自动签名和验签的 HTTP 客户端、回调处理、加解密库。 - service 为业务服务，包含业务接口和使用示例。 帮助微信支付改进 为了向广大开发者提供更好的使用体验，微信支付诚挚邀请您反馈使用微信支付 Java SDK 中的感受。您的反馈将对改进 SDK 大有帮助，点击参与问卷调查。 前置条件 - Java 1.8+。 - 成为微信支付商户。 - 商户 API 证书：指由商户申请的，包含证书序列号、商户的商户号、公司名称、公钥信息的证书。 - 商户 API 私钥：商户申请商户API证书时，会生成商户私钥，并保存在本地证书文件夹的文件 apiclient key.pem 中。 - APIv3 密钥：为了保证安全性，微信支付在回调通知和平台证书下载接口中，对关键信息进行了 AES-256-GCM 加密。APIv3 密钥是加密时使用的对称密钥。 快速开始 安装 最新版本已经在 Maven Central 发布。 Gradle 在你的 build.gradle 文件中加入如下的依赖 Maven 加入以下依赖 调用业务请求接口 以 Native 支付下单为例，先补充商户号等必要参数以构建 config ，再构建 service 即可调用 prepay() 发送请求。 从示例可见，使用 SDK 不需要计算请求签名和验证应答签名。详细代码可从 QuickStart 获得。 示例 查询支付订单 关闭订单 下单并生成调起支付的参数 JSAPI 支付和 APP 支付推荐使用服务拓展类 JsapiServiceExtension 和 AppServiceExtension，两者包含了下单并返回调起支付参数方法。 上传图片 更多示例 为了方便开发者快速上手，微信支付给每个服务生成了示例代码 XxxServiceExample.java ，可以在 example 中查看。 例如： - JsapiServiceExtensionExample.java 错误处理 SDK 使用的是 unchecked exception，会抛出四种自定义异常。每种异常发生的场景及推荐的处理方式如下： - HttpException：调用微信支付服务，当发生 HTTP 请求异常时抛出该异常。 - 构建请求参数失败、发送请求失败、I/O错误：推荐上报监控和打印日志，并获取异常中的 HTTP 请求信息以定位问题。 - ValidationException ：当验证微信支付签名失败时抛出该异常。 - 验证微信支付返回签名失败：上报监控和日志打印。 - 验证微信支付回调通知签名失败：确认输入参数与 HTTP 请求信息是否一致，若一致，说明该回调通知参数被篡改导致验签失败。 - ServiceException：调用微信支付服务，发送 HTTP 请求成功，HTTP 状态码小于200或大于等于300。 - 状态码为5xx：主动重试。 - 状态码为其他：获取错误中的 errorCode 、 errorMessage ，上报监控和日志打印。 - MalformedMessageException：服务返回成功，返回内容异常。 - HTTP 返回 Content-Type 不为 application/json ：不支持其他类型的返回体，下载账单 应使用 download() 方法。 - 解析 HTTP 返回体失败：上报监控和日志打印","default_branch":null,"files":null,"tree":[],"storefront":"/r/wechatpay-apiv3","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/wechatpay-apiv3/wechatpay-java/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."}