类 WechatHandler

java.lang.Object
com.abasecode.opencode.pay.plugin.wechatpay.WechatHandler

@Component public class WechatHandler extends Object
作者:
Jon e-mail: ijonso123@gmail.com url: Jon's blog url: project github url: AbaseCode.com
  • 构造器详细资料

    • WechatHandler

      public WechatHandler()
  • 方法详细资料

    • createJsapiCodeUrl

      public String createJsapiCodeUrl(String state) throws UnsupportedEncodingException
      付款流程 公众号支付第一步 生成公众号JSAPI获取code的URL,通过微信浏览器打开URL,等待微信回调返回code
      参数:
      state - 可不传
      返回:
      url
      抛出:
      UnsupportedEncodingException
    • createJsapiOpenIdUrl

      public String createJsapiOpenIdUrl(String code)
      付款流程,发给客户端用 封装获取openId的URL(小程序)
      参数:
      code -
      返回:
      url
    • prePayJsapiMp

      public WechatClientPayParam prePayJsapiMp(PayType payType, BaseOrder order, String code) throws Exception
      付款流程:公众号,服务端发起并获得付款参数 公众号支付第三步,生成客户端需要的参数 再由客户端将参数发送给微信
      参数:
      payType - 支付类型
      order - 订单
      code - 微信返回的code
      返回:
      ClientPayParam
      抛出:
      Exception
    • prePayJsapiMicro

      public WechatClientPayParam prePayJsapiMicro(PayType payType, BaseOrder order, String openId) throws Exception
      付款流程:小程序,服务端发起并获得参数 小程序支付第三步,生成客户端需要的参数 再由客户端将参数发送给微信
      参数:
      payType - 支付类型
      order - 订单
      openId - 支付者openId(通过微信客户端获取)
      返回:
      ClientPayParam
      抛出:
      Exception
    • payNotify

      public PayNotice payNotify(PayNotice notice) throws Exception
      付款流程:通知处理 处理支付成功通知(解密)
      参数:
      notice - 微信发起的通知
      返回:
      通知体
      抛出:
      Exception
    • payRefund

      public RefundCreateReturn payRefund(String outTradeNo, String outRefundNo, String reason, int refund, int total) throws Exception
      退款流程:发起退款 发起退款并获得退款结果
      参数:
      outTradeNo - 商户订单号
      outRefundNo - 商户退单单号
      reason - 退款原因
      refund - 退款金额
      total - 订单金额
      返回:
      退款返回参数
      抛出:
      Exception
    • payRefundNotify

      public RefundNotice payRefundNotify(RefundNotice notice) throws Exception
      退款流程:处理退款通知 处理退款通知(并解密)
      参数:
      notice - 退款通知
      返回:
      解密
      抛出:
      Exception
    • payClose

      public Object payClose(String outTradeNo) throws Exception
      关闭流程 关闭订单
      参数:
      outTradeNo - 订单编号
      返回:
      关闭情况
      抛出:
      Exception
    • payQuery

      public PayQueryReturn payQuery(String outTradeNo) throws Exception
      查询流程:查询支付 查询订单
      参数:
      outTradeNo - 订单编号
      返回:
      查询结果
      抛出:
      Exception
    • payRefundQuery

      public RefundQueryReturn payRefundQuery(String outRefundNo) throws Exception
      查询流程:查询退款 查询退款
      参数:
      outRefundNo - 退款单号
      返回:
      退款内容
      抛出:
      Exception
    • createJsapiOrderParams

      private Pay4Jsapi createJsapiOrderParams(PayType payType, BaseOrder baseOrder, Payer payer)
      付款流程,参数封装 封装JSAPI订单信息(小程序,公众号)
      参数:
      payType - 支付类型
      baseOrder - 订单信息
      payer - payer
      返回:
      JSAPI订单详情
    • createRefundParam

      private RefundCreate createRefundParam(String outTradeNo, String outRefundNo, String reason, int refund, int total)
      退款流程,参数封装 生成退款信息
      参数:
      outTradeNo -
      outRefundNo -
      reason -
      refund -
      total -
      返回:
      RefundCreate
    • getAppId

      private String getAppId(PayType payType)
      根据微信支付类型返回AppID
      参数:
      payType -
      返回:
      appid
    • getAccessToken

      private AccessToken getAccessToken(String code) throws Exception
      付款流程 公众号支付第二步 通过code获取AccessToken
      参数:
      code - 第一步获取的code
      返回:
      AccessToken
      抛出:
      Exception
    • createClientPayParam

      private WechatClientPayParam createClientPayParam(PayType payType, BaseOrder baseOrder, Payer payer) throws Exception
      付款流程:参数组装 公众号支付第一步 创建JSAPI客户端必须的参数 付款流程:发起JSAPI预支付(向微信发送订单信息),获得返回的prepay_id后封装客户端支付参数包
      参数:
      payType - 支付类型
      baseOrder - 基础订单
      payer - 支付者
      返回:
      客户端需要的参数
      抛出:
      Exception