Wechat.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\plugins\wxlive\models;
  8. use app\models\Option;
  9. use app\models\StoreMini;
  10. use app\models\WechatConfig;
  11. use EasyWeChat\Factory;
  12. /**
  13. * @property WechatConfig $wechat_config
  14. * @property Factory $wechat
  15. */
  16. class Wechat
  17. {
  18. public $store_id;
  19. public $wechat_config; //微信config
  20. /**
  21. * @return \EasyWeChat\MiniProgram\Application|\EasyWeChat\OpenPlatform\Application
  22. * @throws \Exception
  23. */
  24. public static function getWechat()
  25. {
  26. // 获取小程序微信配置进行初始化
  27. $wechat_config = WechatConfig::findOne(['store_id' => get_store_id(), 'type' => 1]);
  28. if (!$wechat_config) {
  29. throw new \Exception('请配置小程序基础信息');
  30. }
  31. if (is_open_platform()) {
  32. $config = [
  33. 'app_id' => Option::get("platform_third_appid", 0, 'saas')['value'],
  34. 'secret' => Option::get("platform_third_secret", 0, 'saas')['value'],
  35. 'token' => Option::get("platform_token", 0, 'saas')['value'],
  36. 'aes_key' => Option::get("platform_encodingAesKey", 0, 'saas')['value']
  37. ];
  38. $openPlatform = Factory::openPlatform($config);
  39. $store_mini = StoreMini::findOne(['store_id' => get_store_id(), 'is_cancle' => 0]);
  40. if (!$store_mini) {
  41. return [
  42. 'code' => 1,
  43. 'msg' => '请确认小程序状态是否为使用或已经发布未在审核中'
  44. ];
  45. }
  46. return $openPlatform->miniProgram($store_mini->appid, $store_mini->authorizer_refresh_token);
  47. } else {
  48. $config = [
  49. 'app_id' => $wechat_config->app_id,
  50. 'secret' => $wechat_config->app_secret,
  51. 'response_type' => 'array'
  52. ];
  53. return Factory::miniProgram($config);
  54. }
  55. }
  56. /**
  57. * @return \EasyWeChat\MiniProgram\Application
  58. * @throws \Exception
  59. */
  60. public static function getWork()
  61. {
  62. // 获取小程序微信配置进行初始化
  63. $wechat_config = WechatConfig::findOne(['store_id' => get_store_id(), 'type' => 1]);
  64. if (!$wechat_config) {
  65. throw new \Exception('Wechat App Is Null');
  66. }
  67. $config = [
  68. 'app_id' => $wechat_config->app_id,
  69. 'secret' => $wechat_config->app_secret,
  70. 'response_type' => 'array'
  71. ];
  72. return Factory::Work($config);
  73. }
  74. }