AccessTokenService.php 954 B

12345678910111213141516171819202122232425262728
  1. <?php
  2. namespace App\Service\Miniprogram\Wechat;
  3. use GuzzleHttp\Client;
  4. class AccessTokenService
  5. {
  6. public static function getAccessToken($appid, $secret) {
  7. $client = new Client(['timeout' => 3]);
  8. $httpResult = $client->get('https://api.weixin.qq.com/cgi-bin/token', [
  9. 'query' => ['grant_type' => 'client_credential', 'appid' => $appid, 'secret' => $secret]
  10. ]);
  11. if(200 != $httpResult->getStatusCode()) {
  12. throw new \RuntimeException('请求微信上游失败', '500001');
  13. }
  14. $parsedContent = \json_decode($httpResult->getBody()->getContents(), true);
  15. if(0 != ($parsedContent['errcode'] ?? 0)) {
  16. throw new \RuntimeException('请求微信上游失败:'. ($parsedContent['errmsg'] ?? ''), '500002');
  17. }
  18. return $parsedContent;
  19. }
  20. public static function getAccessTokenRedisKey($appid) {
  21. return 'dj.miniWechat.at.' . $appid;
  22. }
  23. }