shans.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. /**
  3. * User: admin
  4. * Date Time: 2021/6/2 20:14
  5. */
  6. namespace common\components\shans;
  7. use Yii;
  8. use linslin\yii2\curl;
  9. //闪送
  10. class shans
  11. {
  12. public static function getAccessToken($code)
  13. {
  14. $url = self::getUrl();
  15. $path = '/openapi/oauth/token';
  16. $url = $url.$path;
  17. $data = [
  18. 'clientId'=>self::getAppId(),
  19. 'code'=>$code,
  20. ];
  21. $res = self::request($data,$url);
  22. return $res;
  23. }
  24. //获取授权跳转url
  25. public static function getAuthUrl($shopId,$shansShopId)
  26. {
  27. $redirectUri = Yii::$app->params['ghsHost'].'/notice/shans-redirect';
  28. $url = self::getUrl();
  29. $path = '/auth?response_type=code&client_id='.self::getAppId().'&state='.$shopId;
  30. $path = $path.'&scope=shop_open_api&thirdStoreId='.$shansShopId.'&&redirect_uri='.$redirectUri;
  31. $url = $url.$path;
  32. return $url;
  33. }
  34. public static function request($data,$url)
  35. {
  36. Yii::info("闪送请求:data ".json_encode($data). " url: " .$url);
  37. $curl = new curl\Curl();
  38. $curl->setOptions([
  39. CURLOPT_TIMEOUT => 2,
  40. CURLOPT_CONNECTTIMEOUT => 2,
  41. ]);
  42. $res = $curl->setOption(CURLOPT_POSTFIELDS, http_build_query($data))->post($url);
  43. Yii::info("闪送请求:res ",$res);
  44. return $res;
  45. }
  46. public static function getUrl()
  47. {
  48. return Yii::$app->params['expressShanUrl'];
  49. }
  50. public static function getAppId()
  51. {
  52. return Yii::$app->params['shanAppId'];
  53. }
  54. public static function getAppSecret()
  55. {
  56. return Yii::$app->params['shanAppSecret'];
  57. }
  58. }