# wxpay-java-sdk **Repository Path**: cheneytt/wxpay-java-sdk ## Basic Information - **Project Name**: wxpay-java-sdk - **Description**: 微信支付java sdk - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2016-12-22 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 微信支付的java sdk ## 注意事项 1. 只针对公众号支付做了接口封装,其他支付类型特有接口没有实现。 2. 订单号统一使用 out_trade_no 这个字段。 3. 生成的xml格式数据统一没有用`![CDATA[]]`标签去包裹内容。 ## TODO - 我觉得https请求器 每次调用都new一个出来init一遍,非常浪费资源,甚至应该把service,business层对象都做成工具类的形式,不需要new对象出来,对外提供服务都是static方法 - 可以提供一个下载的对账单字符串转对象,转excel表格,和转换的对象再转excel表格的方法。(转对象可以保存到数据库中,转excel利于导出文件) ## package文件总览 1. business 该包下面提供了各个API接口的业务处理方法,是比服务类更高级的封装。通过调用服务层向API提交请求,拿到API返回数据后,会对数据进行解析,签名校验,出错判断等操作。 2. businessListener 该包提供了两个结果监听器,用来在执行对应接口服务的时候,处理相应的结果返回 - `BaseResultListener` 该接口是公用的结果监听器接口,除了下载对账单接口之外,其他接口的返回处理,都使用这个接口。使用者应该根据业务逻辑自行实现对返回结果的处理。 - `DownloadBillResultListener` 该接口是下载对账单专用的返回结果监听器接口。 3. common 该包提供了一些公用的方法以供调用 - report 该包是交易保障(接口上报)接口的实现包 - `Configure` 这是微信支付的配置类。使用`WXPay`类的`initSDKConfiguration`方法,为其赋值。(调用接口之前,该类必须要被正确赋值) - `HttpsRequest` 这是发起https请求的工具类,调用接口,都有该类默认实现请求的发送。(使用者可以自行封装更复杂的https请求器,只需要设置`Configure`类的`HttpsRequestClassName`值即可) - `MD5` MD5加密工具类 - `RandomStringGenerator` 随机数生成器工具类 - `Signature` 微信支付签名工具类 - `Util` 基础工具类,提供一些通用的方法 - `XMLParser` XML转换器类 提供了一些xml操作的相关方法 4. protocol 协议包 - model 协议用到的一些对象 - request API接口请求参数对象 - response API接口返回参数对象 5. service API接口服务类 提供对各个接口的调用 6. `WXPay` 该类为sdk的主类,对外提供调用方法。使用者应该只从该类提供的接口去调用微信支付API。