IWXPayDomain.java 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package com.zhongzheng.common.wxpay;
  2. /**
  3. * 域名管理,实现主备域名自动切换
  4. */
  5. public abstract interface IWXPayDomain {
  6. /**
  7. * 上报域名网络状况
  8. * @param domain 域名。 比如:api.mch.weixin.qq.com
  9. * @param elapsedTimeMillis 耗时
  10. * @param ex 网络请求中出现的异常。
  11. * null表示没有异常
  12. * ConnectTimeoutException,表示建立网络连接异常
  13. * UnknownHostException, 表示dns解析异常
  14. */
  15. abstract void report(final String domain, long elapsedTimeMillis, final Exception ex);
  16. /**
  17. * 获取域名
  18. * @param config 配置
  19. * @return 域名
  20. */
  21. abstract DomainInfo getDomain(final WXPayConfig config);
  22. static class DomainInfo{
  23. public String domain; //域名
  24. public boolean primaryDomain; //该域名是否为主域名。例如:api.mch.weixin.qq.com为主域名
  25. public DomainInfo(String domain, boolean primaryDomain) {
  26. this.domain = domain;
  27. this.primaryDomain = primaryDomain;
  28. }
  29. @Override
  30. public String toString() {
  31. return "DomainInfo{" +
  32. "domain='" + domain + '\'' +
  33. ", primaryDomain=" + primaryDomain +
  34. '}';
  35. }
  36. }
  37. }