WeixinController.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Service\Weixin\WeixinService;
  4. use App\Service\Weixin\WxEmployeeService;
  5. use Illuminate\Http\Request;
  6. class WeixinController extends BaseController
  7. {
  8. /**
  9. * 用于微信token验证,全部通用
  10. * @param Request $request
  11. * @return void
  12. */
  13. public function checkForWx(Request $request)
  14. {
  15. $data = $request->all();
  16. $signature = $data["signature"];
  17. $timestamp = $data["timestamp"];
  18. $nonce = $data["nonce"];
  19. $config = config('wechatOfficial');
  20. $token = $config['tokenKeyName'];
  21. $tmpArr = array($token, $timestamp, $nonce);
  22. sort($tmpArr, SORT_STRING);
  23. $tmpStr = implode( $tmpArr );
  24. $tmpStr = sha1( $tmpStr );
  25. if( $tmpStr == $signature ){
  26. echo $data['echostr'];die;
  27. }else{
  28. die('fail');
  29. }
  30. }
  31. public function setWebHook(Request $request){
  32. $service = new WeixinService();
  33. list($status,$msg) = $service->setWebHook($request->all());
  34. return $this->json_return($status,$msg,'');
  35. }
  36. /**
  37. * 重定向获取unionid
  38. * @param Request $request
  39. * @return void
  40. */
  41. public function getUnionid(Request $request){
  42. $service = new WeixinService();
  43. $res = $service->getUnionid($request->all());
  44. }
  45. /**
  46. * 获取openid
  47. * @param Request $request
  48. * @return void
  49. */
  50. public function getOpenid(Request $request){
  51. $service = new WeixinService();
  52. list($status,$data) = $service->getOpenid($request->all());
  53. if ($status) {
  54. return $this->json_return(200, '', $data);
  55. } else {
  56. return $this->json_return(201, $data);
  57. }
  58. }
  59. public function setUser(Request $request)
  60. {
  61. $service = new WxEmployeeService();
  62. list($status, $data) = $service->setUser($request->all());
  63. if ($status) {
  64. return $this->json_return(200, '', $data);
  65. } else {
  66. return $this->json_return(201, $data);
  67. }
  68. }
  69. public function login(Request $request)
  70. {
  71. $service = new WxEmployeeService();
  72. list($status, $data) = $service->login($request->all(),$request->header('ciphertext'));
  73. if ($status) {
  74. return $this->json_return(200, '', $data);
  75. } else {
  76. return $this->json_return(201, $data);
  77. }
  78. }
  79. public function getToken(Request $request)
  80. {
  81. $service = new WeixinService();
  82. list($status, $data) = $service->getToken();
  83. if ($status) {
  84. return $this->json_return(200, '', $data);
  85. } else {
  86. return $this->json_return(201, $data);
  87. }
  88. }
  89. }