Class PayOldApi


  • public class PayOldApi
    extends MpApi
    V2老支付API
    Since:
    JDK 1.6
    Author:
    jinyu(foxinmy@gmail.com)
    • Constructor Detail

      • PayOldApi

        public PayOldApi()
        支付对象(使用weixin4j.properties配置的account商户信息,使用FileCacheStorager文件方式缓存TOKEN)
      • PayOldApi

        public PayOldApi​(CacheStorager<Token> cacheStorager)
        支付对象(使用weixin4j.properties配置的account商户信息)
      • PayOldApi

        public PayOldApi​(WeixinOldPayAccount weixinPayAccount,
                         CacheStorager<Token> cacheStorager)
        支付对象
        Parameters:
        weixinPayAccount - 商户信息
        cacheStorager - token管理
    • Method Detail

      • getWeixinPayAccount

        public WeixinOldPayAccount getWeixinPayAccount()
        返回商户信息
        Returns:
      • getTokenManager

        public TokenManager getTokenManager()
        token管理
        Returns:
      • createPayJsRequestJson

        public String createPayJsRequestJson​(String body,
                                             String outTradeNo,
                                             double totalFee,
                                             String notifyUrl,
                                             String createIp)
        生成V2.x版本JSAPI支付字符串
        Parameters:
        body - 支付详情
        outTradeNo - 订单号
        totalFee - 订单总额(元)
        notifyUrl - 支付回调URL
        createIp - 订单生成的机器 IP
        Returns:
        支付json串
      • createPayJsRequestJson

        public String createPayJsRequestJson​(PayPackageV2 payPackage)
        生成V2.x版本JSAPI支付字符串
        Parameters:
        payPackage - 支付信息
        Returns:
        支付json串
      • createNativePayRequestURL

        public String createNativePayRequestURL​(String productId)
        创建V2.x NativePay支付链接
        Parameters:
        productId - 与订单ID等价
        Returns:
        支付链接
      • applyRefund

        protected RefundResultV2 applyRefund​(InputStream certificate,
                                             IdQuery idQuery,
                                             String outRefundNo,
                                             double totalFee,
                                             double refundFee,
                                             String opUserId,
                                             Map<String,​String> mopara)
                                      throws WeixinException
        申请退款(需要证书)

        交易时间超过 1 年的订单无法提交退款;
        支持部分退款,部分退需要设置相同的订单号和不同的 out_refund_no。一笔退款失 败后重新提交,要采用原来的 out_refund_no。总退款金额不能超过用户实际支付金额。

        Parameters:
        certificate - 证书文件(V2版本后缀为*.pfx)
        idQuery - 商户系统内部的订单号, transaction_id 、 out_trade_no 二选一,如果同时存在优先级: transaction_id> out_trade_no
        outRefundNo - 商户系统内部的退款单号,商 户系统内部唯一,同一退款单号多次请求只退一笔
        totalFee - 订单总金额,单位为元
        refundFee - 退款总金额,单位为元,可以做部分退款
        opUserId - 操作员帐号, 默认为商户号
        mopara - 如 opUserPasswd
        Returns:
        退款申请结果
        Throws:
        WeixinException
        Since:
        V2
        See Also:
        RefundResultV2
      • applyRefund

        public RefundResultV2 applyRefund​(InputStream certificate,
                                          IdQuery idQuery,
                                          String outRefundNo,
                                          double totalFee,
                                          double refundFee,
                                          String opUserId,
                                          String opUserPasswd)
                                   throws WeixinException
        退款申请
        Parameters:
        certificate - 证书文件(V2版本后缀为*.pfx)
        idQuery - 商户系统内部的订单号, transaction_id 、 out_trade_no 二选一,如果同时存在优先级: transaction_id> out_trade_no
        outRefundNo - 商户系统内部的退款单号,商 户系统内部唯一,同一退款单号多次请求只退一笔
        totalFee - 订单总金额,单位为元
        refundFee - 退款总金额,单位为元,可以做部分退款
        opUserId - 操作员帐号, 默认为商户号
        opUserPasswd - 操作员密码,默认为商户后台登录密码
        Throws:
        WeixinException
      • applyRefund

        public RefundResultV2 applyRefund​(InputStream certificate,
                                          IdQuery idQuery,
                                          String outRefundNo,
                                          double totalFee,
                                          double refundFee,
                                          String opUserId,
                                          String opUserPasswd,
                                          String recvUserId,
                                          String reccvUserName,
                                          RefundType refundType)
                                   throws WeixinException
        退款申请
        Parameters:
        certificate - 证书文件(V2版本后缀为*.pfx)
        idQuery - 商户系统内部的订单号, transaction_id 、 out_trade_no 二选一,如果同时存在优先级: transaction_id> out_trade_no
        outRefundNo - 商户系统内部的退款单号,商 户系统内部唯一,同一退款单号多次请求只退一笔
        totalFee - 订单总金额,单位为元
        refundFee - 退款总金额,单位为元,可以做部分退款
        opUserId - 操作员帐号, 默认为商户号
        opUserPasswd - 操作员密码,默认为商户后台登录密码
        recvUserId - 转账退款接收退款的财付通帐号。 一般无需填写,只有退银行失败,资金转入商 户号现金账号时(即状态为转入代发,查询返 回的 refund_status 是 7 或 11),填写原退款 单号并填写此字段,资金才会退到指定财付通 账号。其他情况此字段忽略
        reccvUserName - 转账退款接收退款的姓名(需与接收退款的财 付通帐号绑定的姓名一致)
        refundType - 为空或者填 1:商户号余额退款;2:现金帐号 退款;3:优先商户号退款,若商户号余额不足, 再做现金帐号退款。使用 2 或 3 时,需联系财 付通开通此功能
        Returns:
        退款结果
        Throws:
        WeixinException
      • downloadBill

        public File downloadBill​(Date billDate,
                                 BillType billType,
                                 String billPath)
                          throws WeixinException
        下载对账单
        1.微信侧未成功下单的交易不会出现在对账单中。支付成功后撤销的交易会出现在对账 单中,跟原支付单订单号一致,bill_type 为 REVOKED;
        2.微信在次日 9 点启动生成前一天的对账单,建议商户 9 点半后再获取;
        3.对账单中涉及金额的字段单位为“元”。
        Parameters:
        billDate - 下载对账单的日期 为空则取前一天
        billType - 下载对账单的类型 ALL,返回当日所有订单信息, 默认值 SUCCESS,返回当日成功支付的订单 REFUND,返回当日退款订单
        billPath - 对账单保存路径
        Returns:
        excel表格
        Throws:
        WeixinException
        Since:
        V2
      • queryRefund

        public RefundRecordV2 queryRefund​(IdQuery idQuery)
                                   throws WeixinException
        退款查询
        退款有一定延时,用零钱支付的退款20分钟内到账,银行卡支付的退款 3 个工作日后重新查询退款状态
        Parameters:
        idQuery - 单号 refund_id、out_refund_no、 out_trade_no 、 transaction_id 四个参数必填一个,优先级为: refund_id>out_refund_no>transaction_id>out_trade_no
        Returns:
        退款记录
        Throws:
        WeixinException
        Since:
        V2
        See Also:
        RefundRecordV2, RefundDetailV2
      • deliverNotify

        public ApiResult deliverNotify​(String openId,
                                       String transid,
                                       String outTradeNo,
                                       boolean status,
                                       String statusMsg)
                                throws WeixinException
        发货通知
        Parameters:
        openId - 用户ID
        transid - 交易单号
        outTradeNo - 订单号
        status - 成功|失败
        statusMsg - status为失败时携带的信息
        Returns:
        发货处理结果
        Throws:
        WeixinException