国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

130 lines
6.2KB

  1. <?php
  2. if (!defined('DEDEINC')) exit ('dedebiz');
  3. use WeChat\Contracts\DataArray;
  4. use WeChat\Exceptions\InvalidInstanceException;
  5. /**
  6. * 加载缓存器
  7. *
  8. * Class We
  9. * @library WeChatDeveloper
  10. * @author Anyon<zoujingli@qq.com>
  11. * @date 2018/05/24 13:23
  12. *
  13. * ----- AliPay ----
  14. * @method \AliPay\App AliPayApp($options) static 支付宝App支付网关
  15. * @method \AliPay\Bill AliPayBill($options) static 支付宝电子面单下载
  16. * @method \AliPay\Pos AliPayPos($options) static 支付宝刷卡支付
  17. * @method \AliPay\Scan AliPayScan($options) static 支付宝扫码支付
  18. * @method \AliPay\Trade AliPayTrade($options) static 支付宝标准接口
  19. * @method \AliPay\Transfer AliPayTransfer($options) static 支付宝转账到账户
  20. * @method \AliPay\Wap AliPayWap($options) static 支付宝手机网站支付
  21. * @method \AliPay\Web AliPayWeb($options) static 支付宝网站支付
  22. *
  23. * ----- WeChat -----
  24. * @method \WeChat\Card WeChatCard($options = []) static 微信卡券管理
  25. * @method \WeChat\Custom WeChatCustom($options = []) static 微信客服消息
  26. * @method \WeChat\Limit WeChatLimit($options = []) static 接口调用频次限制
  27. * @method \WeChat\Media WeChatMedia($options = []) static 微信素材管理
  28. * @method \WeChat\Menu WeChatMenu($options = []) static 微信菜单管理
  29. * @method \WeChat\Oauth WeChatOauth($options = []) static 微信网页授权
  30. * @method \WeChat\Pay WeChatPay($options = []) static 微信支付商户
  31. * @method \WeChat\Product WeChatProduct($options = []) static 微信商店管理
  32. * @method \WeChat\Qrcode WeChatQrcode($options = []) static 微信二维码管理
  33. * @method \WeChat\Receive WeChatReceive($options = []) static 微信推送管理
  34. * @method \WeChat\Scan WeChatScan($options = []) static 微信扫一扫接入管理
  35. * @method \WeChat\Script WeChatScript($options = []) static 微信前端支持
  36. * @method \WeChat\Shake WeChatShake($options = []) static 微信揺一揺周边
  37. * @method \WeChat\Tags WeChatTags($options = []) static 微信会员标签管理
  38. * @method \WeChat\Template WeChatTemplate($options = []) static 微信模板消息
  39. * @method \WeChat\User WeChatUser($options = []) static 微信粉丝管理
  40. * @method \WeChat\Wifi WeChatWifi($options = []) static 微信门店WIFI管理
  41. * @method \WeChat\Draft WeChatDraft($options = []) static 微信草稿箱
  42. * @method \WeChat\Freepublish WeChatFreepublish($options = []) static 微信发布能力
  43. *
  44. * ----- WeMini -----
  45. * @method \WeMini\Crypt WeMiniCrypt($options = []) static 小程序数据加密处理
  46. * @method \WeMini\Delivery WeMiniDelivery($options = []) static 小程序即时配送
  47. * @method \WeMini\Guide WeMiniGuide($options = []) static 小程序导购助手
  48. * @method \WeMini\Image WeMiniImage($options = []) static 小程序图像处理
  49. * @method \WeMini\Live WeMiniLive($options = []) static 小程序直播接口
  50. * @method \WeMini\Logistics WeMiniLogistics($options = []) static 小程序物流助手
  51. * @method \WeMini\Message WeMiniMessage($options = []) static 小程序动态消息
  52. * @method \WeMini\Newtmpl WeMiniNewtmpl($options = []) static 小程序订阅消息
  53. * @method \WeMini\Ocr WeMiniOcr($options = []) static 小程序ORC服务
  54. * @method \WeMini\Operation WeMiniOperation($options = []) static 小程序运维中心
  55. * @method \WeMini\Plugs WeMiniPlugs($options = []) static 小程序插件管理
  56. * @method \WeMini\Poi WeMiniPoi($options = []) static 小程序地址管理
  57. * @method \WeMini\Qrcode WeMiniQrcode($options = []) static 小程序二维码管理
  58. * @method \WeMini\Scheme WeMiniScheme($options = []) static 小程序 URL-Scheme
  59. * @method \WeMini\Search WeMiniSearch($options = []) static 小程序搜索
  60. * @method \WeMini\Security WeMiniSecurity($options = []) static 小程序内容安全
  61. * @method \WeMini\Soter WeMiniSoter($options = []) static 小程序生物认证
  62. * @method \WeMini\Template WeMiniTemplate($options = []) static 小程序模板消息支持
  63. * @method \WeMini\Total WeMiniTotal($options = []) static 小程序数据接口
  64. *
  65. * ----- WePay -----
  66. * @method \WePay\Bill WePayBill($options = []) static 微信商户账单及评论
  67. * @method \WePay\Order WePayOrder($options = []) static 微信商户订单
  68. * @method \WePay\Coupon WePayCoupon($options = []) static 微信商户代金券
  69. * @method \WePay\Custom WePayCustom($options = []) static 微信商户海关
  70. * @method \WePay\Refund WePayRefund($options = []) static 微信商户退款
  71. * @method \WePay\Redpack WePayRedpack($options = []) static 微信红包支持
  72. * @method \WePay\Transfers WePayTransfers($options = []) static 微信商户打款到零钱
  73. * @method \WePay\TransfersBank WePayTransfersBank($options = []) static 微信商户打款到银行卡
  74. */
  75. class We
  76. {
  77. /**
  78. * 定义当前版本
  79. * @var string
  80. */
  81. const VERSION = '1.2.37';
  82. /**
  83. * 静态配置
  84. * @var DataArray
  85. */
  86. private static $config;
  87. /**
  88. * 设置及获取参数
  89. * @param array $option
  90. * @return array
  91. */
  92. public static function config($option = null)
  93. {
  94. if (is_array($option)) {
  95. self::$config = new DataArray($option);
  96. }
  97. if (self::$config instanceof DataArray) {
  98. return self::$config->get();
  99. }
  100. return [];
  101. }
  102. /**
  103. * 静态魔术加载方法
  104. * @param string $name 静态类名
  105. * @param array $arguments 参数集合
  106. * @return mixed
  107. * @throws InvalidInstanceException
  108. */
  109. public static function __callStatic($name, $arguments)
  110. {
  111. if (substr($name, 0, 6) === 'WeChat') {
  112. $class = 'WeChat\\'.substr($name, 6);
  113. } elseif (substr($name, 0, 6) === 'WeMini') {
  114. $class = 'WeMini\\'.substr($name, 6);
  115. } elseif (substr($name, 0, 6) === 'AliPay') {
  116. $class = 'AliPay\\'.substr($name, 6);
  117. } elseif (substr($name, 0, 7) === 'WePayV3') {
  118. $class = 'WePayV3\\'.substr($name, 7);
  119. } elseif (substr($name, 0, 5) === 'WePay') {
  120. $class = 'WePay\\'.substr($name, 5);
  121. }
  122. if (!empty($class) && class_exists($class)) {
  123. $option = array_shift($arguments);
  124. $config = is_array($option) ? $option : self::$config->get();
  125. return new $class($config);
  126. }
  127. throw new InvalidInstanceException("class {$name} not found");
  128. }
  129. }
  130. ?>