最新最全微信支付集成SDK,一行代码调用微信支付,包含基础支付功能(网页授权、各种签名、统一下单、退款、对账单、用户信息获取)、验收用例指引(沙箱支付、支付验收、免充值产品开通)、商户平台(现金红包、企业付款到用户、代金券或立减优惠)、公众平台(微信卡券、社交立减金活动)、小程序(生成永久二维码、发送模版消息)等等更多丰富接口注释和例子。
Go to file
yclimb 91fe2b7400 更新支付方法,更新readme,调整结构 2018-11-01 17:23:17 +08:00
src/main 更新支付方法,更新readme,调整结构 2018-11-01 17:23:17 +08:00
.gitignore Initial commit 2018-08-17 11:32:09 +08:00
README.md 更新支付方法,更新readme,调整结构 2018-11-01 17:23:17 +08:00
pom.xml 网页、小程序支付链接等相关;新增测试鉴权、支付demo类 2018-08-17 16:24:56 +08:00

README.md

微信支付 Java SDK

本项目依托于 微信支付开发者文档,对文档中的接口进行二次封装,从而为小伙伴们提供一个拿来即用的支付sdk工具。

项目结构

首先需要简单说明整个 wxpay-sdk 的项目结构,主体结构如下所示:

- wxpay-sdk
    - src
        - main
            - java
                - com.weixin.pay
                    - card              // 微信卡券
                    - constants         // 常量文件
                    - redis             // redis工具类
                    - util              // 支付工具类(支付、签名、加密解密)
                    - xxx class         // 支付实体类,基础配置信息
            - test
                - controller
                    - xxx class         // 测试的相关类
    - .gitignore
    - pom.xml                           // 引用包
    - README.md

提供微信支付的基础功能脱胎于微信官方Java-SDK进行二次封装后提供一系列的方法 基础方法主要在 com.weixin.pay.WXPay 类下,此项目包含的微信支付功能主要分为以下几个部分:

1. 基础支付功能

com.weixin.pay.WXPay

方法名 说明
microPay 刷卡支付
unifiedOrder 统一下单
chooseWXPayMap 微信支付二次签名
orderQuery 查询订单
reverse 撤销订单
closeOrder 关闭订单
refund 申请退款
refundQuery 查询退款
downloadBill 下载对账单
report 交易保障
shortUrl 转换短链接
authCodeToOpenid 授权码查询openid

2. 验收用例

支付验收指引:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=23_1

controller.TestWXPay

方法名 说明
unifiedOrder 统一下单
orderQuery 查询订单
reverse 撤销订单
closeOrder 关闭订单
refund 申请退款
refundQuery 查询退款

3. 商户平台-现金红包

com.weixin.pay.WXPay

方法名 说明
sendRedPack 企业向指定微信用户的openid发放指定金额红包
getRedPackInfo 查询红包记录

4. 商户平台-代金券或立减优惠

com.weixin.pay.WXPay

方法名 说明
sendCoupon 发放代金券
queryCouponsInfo 查询代金券信息
queryCouponStock 查询代金券批次

5. 公众平台-微信卡券

com.weixin.pay.util.WXUtils

方法名 说明
getAccessToken 获取微信全局accessToken
getMiniBaseUserInfo 获取小程序静默登录返回信息
getJsapiAccessTokenByCode 网页授权获取用户信息时用于获取access_token以及openid
getJsapiUserinfo 通过access_token和openid请求获取用户信息
getWxMiniQRImg 生成带参数的小程序二维码[]
getWxCardApiTicket 获取卡券 api_ticket 的 api
getWxApiTicket 获取卡券 api_ticket 的 api

6. 公众平台-社交立减金活动

com.weixin.pay.util.WXUtils

方法名 说明
getCardList 根据代金券批次ID得到组合的cardList
createCardActivity 创建支付后领取立减金活动接口

微信支付调用示例

public Map<String, String> saveWxPayUnifiedOrder(Payment payment, User user) throws Exception {
    if (payment == null) {
        return null;
    }
    if (user == null) {
        return null;
    }

    // 1.调用微信统一下单接口
    WXPay wxPay = new WXPay(WXPayConfigImpl.getInstance());
    Map<String, String> resultMap = wxPay.unifiedOrder(...);

    // 1.1.记录付款流水
    ...

    // 下单失败,进行处理
    if (WXPayConstants.FAIL.equals(resultMap.get(WXPayConstants.RETURN_CODE)) ||
            WXPayConstants.FAIL.equals(resultMap.get(WXPayConstants.RESULT_CODE))) {

        // 处理结果返回,无需继续执行
        resultMap.put(WXPayConstants.RESULT_CODE, WXPayConstants.FAIL);
        resultMap.put(WXPayConstants.ERR_CODE_DES, resultMap.get(WXPayConstants.RETURN_MSG));
        return resultMap;
    }

    // 1.2.获取prepay_id、nonce_str
    String prepay_id = resultMap.get("prepay_id");
    String nonce_str = resultMap.get("nonce_str");

    // 2.根据微信统一下单接口返回数据组装微信支付参数,返回结果
    return wxPay.chooseWXPayMap(prepay_id, nonce_str);
}

基础调用方式如上所述,统一返回值为 Map<String, String>,详细信息见实体类,文档会实时更新,尽情期待!!!

License

BSD