MenusController.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <?php
  2. namespace App\Http\Controllers\Wechat\Menu;
  3. use App\Http\Requests;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Http\Response;
  6. use EasyWeChat\Foundation\Application;
  7. use Cookie;
  8. /**
  9. * 菜单管理
  10. * TODO:自动添加公众号默认菜单
  11. * @author zhoulingjie
  12. *
  13. */
  14. class MenusController
  15. {
  16. public function __construct($_param)
  17. {
  18. $this->param = $_param;
  19. $this->app = $_param['app'];
  20. $this->WechatApi = $_param['WechatApi'];
  21. }
  22. /**
  23. * menu/set_menu
  24. * @param Request $request
  25. */
  26. public function set_menu()
  27. {
  28. $add_menus = $this->WechatApi->get_official_account_menus($this->param['gzh_app_id']);
  29. v('set_menu_start');
  30. if(empty($add_menus)){
  31. v('set_menu_invalid_param');
  32. return false;
  33. }
  34. $menu = $this->app->menu;
  35. v('set_menu:');
  36. v($add_menus);
  37. try{
  38. // 先删再加,解决菜单缓存问题
  39. $del_menu = $menu->destroy();
  40. v('del_menu');v($del_menu);
  41. $add_menu = $menu->add($add_menus);
  42. v('add_menu');v($add_menu);
  43. //过滤iOS 充值入口
  44. $ios_menus = [];
  45. foreach ($add_menus as $k=>$_menu)
  46. {
  47. if(isset($_menu['sub_button']))
  48. {
  49. $name = $_menu['name'];
  50. $sub_button = [];
  51. foreach($_menu['sub_button'] as $j=>$_sub_menu)
  52. {
  53. if(!(isset($_sub_menu['url']) && strstr($_sub_menu['url'],'/pay'))) $sub_button[] = $_sub_menu;
  54. }
  55. if($sub_button) $ios_menus[] = compact('name','sub_button');
  56. }else{
  57. if(!(isset($_menu['url']) && strstr($_menu['url'],'/pay'))) $ios_menus[] = $_menu;
  58. }
  59. }
  60. $res = $menu->add($ios_menus,['client_platform_type'=>"1"]);
  61. v('add_menu');v($res);
  62. }catch(\Exception $e){
  63. v('set_menu_ept:'.$e->getMessage());
  64. }
  65. v('set_menu_end');
  66. }
  67. /**
  68. * menu/set_menu
  69. * @param Request $request
  70. */
  71. public function set_menu2()
  72. {
  73. v('set_menu_start');
  74. $menu = $this->app->menu;
  75. $base_url = 'http://site'.$this->param['distribution_channel_id'].'.'.$this->param['distribution_menu_host'];
  76. $buttons =
  77. [
  78. [
  79. "type" => "view",
  80. "name" => "继续阅读",
  81. "url" => $base_url.'continue',
  82. ],
  83. [
  84. "type" => "view",
  85. "name" => "书城首页",
  86. "url" => $base_url,
  87. ],
  88. [
  89. "name" => "用户中心",
  90. "sub_button" =>
  91. [
  92. [
  93. "type" => "view",
  94. "name" => "个人中心",
  95. "url" => $base_url.'user',
  96. ],
  97. [
  98. "type" => "view",
  99. "name" => "阅读记录",
  100. "url" => $base_url.'bookshelf',
  101. ],
  102. [
  103. "type" => "view",
  104. "name" => "我要充值",
  105. "url" => $base_url.'paycenter',
  106. ],
  107. [
  108. "type" => "click",
  109. "name" => "联系客服",
  110. "key" => 'contact_customer',
  111. ],
  112. ],
  113. ],
  114. ];
  115. v('set_menu:');
  116. v($buttons);
  117. v($menu->add($buttons));
  118. v('set_menu_end');
  119. }
  120. }