Api.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace App\Lib\Weidian;
  3. class weidianApi
  4. {
  5. public static $access_token;
  6. const WEIDIAN_HOST = 'https://api.vdian.com';
  7. const WEIDIAN_TOKEN_URL = self::WEIDIAN_HOST."/token?grant_type=client_credential";
  8. public static function get_accesstoken($app_key, $secret)
  9. {
  10. $key = "token_" . $app_key;
  11. $token = \Cache::get($key);
  12. if(empty($token)) {
  13. $url = self::WEIDIAN_TOKEN_URL . "&appkey={$app_key}&secret={$secret}";
  14. $res = json_decode(self::ihttp_get($url), true);
  15. if($res['status']['status_code'] == 0) {
  16. $token = $res['result']['access_token'];
  17. \Cache::add($key,$token,intval($res['result']['expire_in'] )/60);
  18. }
  19. }
  20. self::$access_token = $token;
  21. return $token;
  22. }
  23. public static function get_categories($token )
  24. {
  25. $param = json_encode(['showNoCate' => 0]);
  26. $public = json_encode([
  27. 'method' => 'weidian.cate.get.list',
  28. 'access_token' => $token,
  29. 'version' => '1.0'
  30. ]);
  31. $url = self::WEIDIAN_HOST."/api?param={$param}&public={$public}";
  32. return json_decode(self::ihttp_get($url));
  33. }
  34. public static function create_goods($data, $token)
  35. {
  36. $param = json_encode($data);
  37. $public = json_encode([
  38. 'method' => 'vdian.item.add',
  39. 'access_token' => $token,
  40. 'version' => '1.0',
  41. 'format' => 'json',
  42. ]);
  43. $url = self::WEIDIAN_HOST."/api?param={$param}&public={$public}";
  44. // $url = addcslashes($url);
  45. var_dump($url);
  46. var_dump(file_get_contents($url));
  47. var_dump(self::ihttp_get($url));
  48. return json_decode(self::ihttp_get($url));
  49. }
  50. public static function ihttp_get($url)
  51. {
  52. $headers = ["Content-type: application/json;charset='utf-8'"];
  53. $ch=curl_init();
  54. curl_setopt($ch, CURLOPT_URL,$url );
  55. curl_setopt($ch, CURLOPT_HEADER, 0);
  56. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  57. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  58. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
  59. $respon = curl_exec($ch);
  60. return $respon;
  61. }
  62. }