Browse Source

部署到git

master
wanghongjun 2 years ago
parent
commit
6fd67f403c
  1. 85
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/ActivityMessage/Client.php
  2. 28
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/ActivityMessage/ServiceProvider.php
  3. 92
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/AppCode/Client.php
  4. 33
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/AppCode/ServiceProvider.php
  5. 83
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Application.php
  6. 39
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Auth/AccessToken.php
  7. 43
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Auth/Client.php
  8. 32
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Auth/ServiceProvider.php
  9. 38
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Base/Client.php
  10. 33
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Base/ServiceProvider.php
  11. 34
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/CustomerService/ServiceProvider.php
  12. 174
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/DataCube/Client.php
  13. 28
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/DataCube/ServiceProvider.php
  14. 50
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Encryptor.php
  15. 133
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Express/Client.php
  16. 33
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Express/ServiceProvider.php
  17. 88
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Mall/CartClient.php
  18. 48
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Mall/ForwardsMall.php
  19. 37
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Mall/MediaClient.php
  20. 75
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Mall/OrderClient.php
  21. 68
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Mall/ProductClient.php
  22. 44
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Mall/ServiceProvider.php
  23. 123
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/NearbyPoi/Client.php
  24. 33
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/NearbyPoi/ServiceProvider.php
  25. 34
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/OCR/ServiceProvider.php
  26. 96
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/OpenData/Client.php
  27. 28
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/OpenData/ServiceProvider.php
  28. 67
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Plugin/Client.php
  29. 93
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Plugin/DevClient.php
  30. 42
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Plugin/ServiceProvider.php
  31. 42
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Server/ServiceProvider.php
  32. 41
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Soter/Client.php
  33. 33
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Soter/ServiceProvider.php
  34. 208
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/SubscribeMessage/Client.php
  35. 28
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/SubscribeMessage/ServiceProvider.php
  36. 114
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/TemplateMessage/Client.php
  37. 28
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/TemplateMessage/ServiceProvider.php
  38. 146
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/UniformMessage/Client.php
  39. 28
      addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/UniformMessage/ServiceProvider.php
  40. 88
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Application.php
  41. 39
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Auth/AccessToken.php
  42. 33
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Auth/ServiceProvider.php
  43. 34
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/AutoReply/Client.php
  44. 33
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/AutoReply/ServiceProvider.php
  45. 84
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Base/Client.php
  46. 33
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Base/ServiceProvider.php
  47. 383
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Broadcasting/Client.php
  48. 162
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Broadcasting/MessageBuilder.php
  49. 33
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Broadcasting/ServiceProvider.php
  50. 33
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/BoardingPassClient.php
  51. 52
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/Card.php
  52. 428
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/Client.php
  53. 193
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/CodeClient.php
  54. 119
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/CoinClient.php
  55. 71
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/GeneralCardClient.php
  56. 74
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/GiftCardClient.php
  57. 78
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/GiftCardOrderClient.php
  58. 102
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/GiftCardPageClient.php
  59. 113
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/InvoiceClient.php
  60. 85
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/JssdkClient.php
  61. 33
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/MeetingTicketClient.php
  62. 123
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/MemberCardClient.php
  63. 33
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/MovieTicketClient.php
  64. 89
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/ServiceProvider.php
  65. 121
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/SubMerchantClient.php
  66. 208
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Comment/Client.php
  67. 44
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Comment/ServiceProvider.php
  68. 230
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/CustomerService/Client.php
  69. 165
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/CustomerService/Messenger.php
  70. 37
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/CustomerService/ServiceProvider.php
  71. 104
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/CustomerService/SessionClient.php
  72. 340
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/DataCube/Client.php
  73. 33
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/DataCube/ServiceProvider.php
  74. 251
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Device/Client.php
  75. 33
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Device/ServiceProvider.php
  76. 113
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Goods/Client.php
  77. 33
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Goods/ServiceProvider.php
  78. 301
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Material/Client.php
  79. 44
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Material/ServiceProvider.php
  80. 103
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Menu/Client.php
  81. 33
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Menu/ServiceProvider.php
  82. 66
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/OAuth/ServiceProvider.php
  83. 85
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/OCR/Client.php
  84. 33
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/OCR/ServiceProvider.php
  85. 145
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/POI/Client.php
  86. 33
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/POI/ServiceProvider.php
  87. 45
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Semantic/Client.php
  88. 31
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Semantic/ServiceProvider.php
  89. 30
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Server/Guard.php
  90. 51
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Server/Handlers/EchoStrHandler.php
  91. 46
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Server/ServiceProvider.php
  92. 81
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/ShakeAround/Client.php
  93. 190
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/ShakeAround/DeviceClient.php
  94. 167
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/ShakeAround/GroupClient.php
  95. 44
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/ShakeAround/MaterialClient.php
  96. 110
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/ShakeAround/PageClient.php
  97. 87
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/ShakeAround/RelationClient.php
  98. 57
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/ShakeAround/ServiceProvider.php
  99. 44
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/ShakeAround/ShakeAround.php
  100. 110
      addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/ShakeAround/StatsClient.php

85
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/ActivityMessage/Client.php

@ -0,0 +1,85 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\ActivityMessage;
use EasyWeChat\Kernel\BaseClient;
use EasyWeChat\Kernel\Exceptions\InvalidArgumentException;
class Client extends BaseClient
{
/**
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function createActivityId()
{
return $this->httpGet('cgi-bin/message/wxopen/activityid/create');
}
/**
* @param string $activityId
* @param int $state
* @param array $params
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function updateMessage(string $activityId, int $state = 0, array $params = [])
{
if (!in_array($state, [0, 1], true)) {
throw new InvalidArgumentException('"state" should be "0" or "1".');
}
$params = $this->formatParameters($params);
$params = [
'activity_id' => $activityId,
'target_state' => $state,
'template_info' => ['parameter_list' => $params],
];
return $this->httpPostJson('cgi-bin/message/wxopen/updatablemsg/send', $params);
}
/**
* @param array $params
*
* @return array
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
*/
protected function formatParameters(array $params)
{
$formatted = [];
foreach ($params as $name => $value) {
if (!in_array($name, ['member_count', 'room_limit', 'path', 'version_type'], true)) {
continue;
}
if ('version_type' === $name && !in_array($value, ['develop', 'trial', 'release'], true)) {
throw new InvalidArgumentException('Invalid value of attribute "version_type".');
}
$formatted[] = [
'name' => $name,
'value' => strval($value),
];
}
return $formatted;
}
}

28
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/ActivityMessage/ServiceProvider.php

@ -0,0 +1,28 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\ActivityMessage;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['activity_message'] = function ($app) {
return new Client($app);
};
}
}

92
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/AppCode/Client.php

@ -0,0 +1,92 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\AppCode;
use EasyWeChat\Kernel\BaseClient;
use EasyWeChat\Kernel\Http\StreamResponse;
/**
* Class Client.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*/
class Client extends BaseClient
{
/**
* Get AppCode.
*
* @param string $path
* @param array $optional
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*/
public function get(string $path, array $optional = [])
{
$params = array_merge([
'path' => $path,
], $optional);
return $this->getStream('wxa/getwxacode', $params);
}
/**
* Get AppCode unlimit.
*
* @param string $scene
* @param array $optional
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*/
public function getUnlimit(string $scene, array $optional = [])
{
$params = array_merge([
'scene' => $scene,
], $optional);
return $this->getStream('wxa/getwxacodeunlimit', $params);
}
/**
* Create QrCode.
*
* @param string $path
* @param int|null $width
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*/
public function getQrCode(string $path, int $width = null)
{
return $this->getStream('cgi-bin/wxaapp/createwxaqrcode', compact('path', 'width'));
}
/**
* Get stream.
*
* @param string $endpoint
* @param array $params
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
protected function getStream(string $endpoint, array $params)
{
$response = $this->requestRaw($endpoint, 'POST', ['json' => $params]);
if (false !== stripos($response->getHeaderLine('Content-disposition'), 'attachment')) {
return StreamResponse::buildFromPsrResponse($response);
}
return $this->castResponseToType($response, $this->app['config']->get('response_type'));
}
}

33
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/AppCode/ServiceProvider.php

@ -0,0 +1,33 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\AppCode;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['app_code'] = function ($app) {
return new Client($app);
};
}
}

83
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Application.php

@ -0,0 +1,83 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram;
use EasyWeChat\BasicService;
use EasyWeChat\Kernel\ServiceContainer;
/**
* Class Application.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*
* @property \EasyWeChat\MiniProgram\Auth\AccessToken $access_token
* @property \EasyWeChat\MiniProgram\DataCube\Client $data_cube
* @property \EasyWeChat\MiniProgram\AppCode\Client $app_code
* @property \EasyWeChat\MiniProgram\Auth\Client $auth
* @property \EasyWeChat\OfficialAccount\Server\Guard $server
* @property \EasyWeChat\MiniProgram\Encryptor $encryptor
* @property \EasyWeChat\MiniProgram\TemplateMessage\Client $template_message
* @property \EasyWeChat\OfficialAccount\CustomerService\Client $customer_service
* @property \EasyWeChat\MiniProgram\Plugin\Client $plugin
* @property \EasyWeChat\MiniProgram\Plugin\DevClient $plugin_dev
* @property \EasyWeChat\MiniProgram\UniformMessage\Client $uniform_message
* @property \EasyWeChat\MiniProgram\ActivityMessage\Client $activity_message
* @property \EasyWeChat\MiniProgram\Express\Client $logistics
* @property \EasyWeChat\MiniProgram\NearbyPoi\Client $nearby_poi
* @property \EasyWeChat\MiniProgram\OCR\Client $ocr
* @property \EasyWeChat\MiniProgram\Soter\Client $soter
* @property \EasyWeChat\BasicService\Media\Client $media
* @property \EasyWeChat\BasicService\ContentSecurity\Client $content_security
* @property \EasyWeChat\MiniProgram\Mall\ForwardsMall $mall
* @property \EasyWeChat\MiniProgram\SubscribeMessage\Client $subscribe_message
*/
class Application extends ServiceContainer
{
/**
* @var array
*/
protected $providers = [
Auth\ServiceProvider::class,
DataCube\ServiceProvider::class,
AppCode\ServiceProvider::class,
Server\ServiceProvider::class,
TemplateMessage\ServiceProvider::class,
CustomerService\ServiceProvider::class,
UniformMessage\ServiceProvider::class,
ActivityMessage\ServiceProvider::class,
OpenData\ServiceProvider::class,
Plugin\ServiceProvider::class,
Base\ServiceProvider::class,
Express\ServiceProvider::class,
NearbyPoi\ServiceProvider::class,
OCR\ServiceProvider::class,
Soter\ServiceProvider::class,
Mall\ServiceProvider::class,
SubscribeMessage\ServiceProvider::class,
// Base services
BasicService\Media\ServiceProvider::class,
BasicService\ContentSecurity\ServiceProvider::class,
];
/**
* Handle dynamic calls.
*
* @param string $method
* @param array $args
*
* @return mixed
*/
public function __call($method, $args)
{
return $this->base->$method(...$args);
}
}

39
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Auth/AccessToken.php

@ -0,0 +1,39 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\Auth;
use EasyWeChat\Kernel\AccessToken as BaseAccessToken;
/**
* Class AccessToken.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*/
class AccessToken extends BaseAccessToken
{
/**
* @var string
*/
protected $endpointToGetToken = 'https://api.weixin.qq.com/cgi-bin/token';
/**
* {@inheritdoc}
*/
protected function getCredentials(): array
{
return [
'grant_type' => 'client_credential',
'appid' => $this->app['config']['app_id'],
'secret' => $this->app['config']['secret'],
];
}
}

43
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Auth/Client.php

@ -0,0 +1,43 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\Auth;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Auth.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*/
class Client extends BaseClient
{
/**
* Get session info by code.
*
* @param string $code
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function session(string $code)
{
$params = [
'appid' => $this->app['config']['app_id'],
'secret' => $this->app['config']['secret'],
'js_code' => $code,
'grant_type' => 'authorization_code',
];
return $this->httpGet('sns/jscode2session', $params);
}
}

32
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Auth/ServiceProvider.php

@ -0,0 +1,32 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\Auth;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
!isset($app['access_token']) && $app['access_token'] = function ($app) {
return new AccessToken($app);
};
!isset($app['auth']) && $app['auth'] = function ($app) {
return new Client($app);
};
}
}

38
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Base/Client.php

@ -0,0 +1,38 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\Base;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*/
class Client extends BaseClient
{
/**
* Get paid unionid.
*
* @param string $openid
* @param array $options
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getPaidUnionid($openid, $options = [])
{
return $this->httpGet('wxa/getpaidunionid', compact('openid') + $options);
}
}

33
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Base/ServiceProvider.php

@ -0,0 +1,33 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\Base;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['base'] = function ($app) {
return new Client($app);
};
}
}

34
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/CustomerService/ServiceProvider.php

@ -0,0 +1,34 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\CustomerService;
use EasyWeChat\OfficialAccount\CustomerService\Client;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author overtrue <i@overtrue.me>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['customer_service'] = function ($app) {
return new Client($app);
};
}
}

174
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/DataCube/Client.php

@ -0,0 +1,174 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\DataCube;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*/
class Client extends BaseClient
{
/**
* Get summary trend.
*
* @param string $from
* @param string $to
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*/
public function summaryTrend(string $from, string $to)
{
return $this->query('datacube/getweanalysisappiddailysummarytrend', $from, $to);
}
/**
* Get daily visit trend.
*
* @param string $from
* @param string $to
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*/
public function dailyVisitTrend(string $from, string $to)
{
return $this->query('datacube/getweanalysisappiddailyvisittrend', $from, $to);
}
/**
* Get weekly visit trend.
*
* @param string $from
* @param string $to
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*/
public function weeklyVisitTrend(string $from, string $to)
{
return $this->query('datacube/getweanalysisappidweeklyvisittrend', $from, $to);
}
/**
* Get monthly visit trend.
*
* @param string $from
* @param string $to
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*/
public function monthlyVisitTrend(string $from, string $to)
{
return $this->query('datacube/getweanalysisappidmonthlyvisittrend', $from, $to);
}
/**
* Get visit distribution.
*
* @param string $from
* @param string $to
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*/
public function visitDistribution(string $from, string $to)
{
return $this->query('datacube/getweanalysisappidvisitdistribution', $from, $to);
}
/**
* Get daily retain info.
*
* @param string $from
* @param string $to
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*/
public function dailyRetainInfo(string $from, string $to)
{
return $this->query('datacube/getweanalysisappiddailyretaininfo', $from, $to);
}
/**
* Get weekly retain info.
*
* @param string $from
* @param string $to
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*/
public function weeklyRetainInfo(string $from, string $to)
{
return $this->query('datacube/getweanalysisappidweeklyretaininfo', $from, $to);
}
/**
* Get monthly retain info.
*
* @param string $from
* @param string $to
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*/
public function monthlyRetainInfo(string $from, string $to)
{
return $this->query('datacube/getweanalysisappidmonthlyretaininfo', $from, $to);
}
/**
* Get visit page.
*
* @param string $from
* @param string $to
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*/
public function visitPage(string $from, string $to)
{
return $this->query('datacube/getweanalysisappidvisitpage', $from, $to);
}
/**
* Get user portrait.
*
* @param string $from
* @param string $to
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*/
public function userPortrait(string $from, string $to)
{
return $this->query('datacube/getweanalysisappiduserportrait', $from, $to);
}
/**
* Unify query.
*
* @param string $api
* @param string $from
* @param string $to
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
protected function query(string $api, string $from, string $to)
{
$params = [
'begin_date' => $from,
'end_date' => $to,
];
return $this->httpPostJson($api, $params);
}
}

28
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/DataCube/ServiceProvider.php

@ -0,0 +1,28 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\DataCube;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['data_cube'] = function ($app) {
return new Client($app);
};
}
}

50
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Encryptor.php

@ -0,0 +1,50 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram;
use EasyWeChat\Kernel\Encryptor as BaseEncryptor;
use EasyWeChat\Kernel\Exceptions\DecryptException;
use EasyWeChat\Kernel\Support\AES;
/**
* Class Encryptor.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*/
class Encryptor extends BaseEncryptor
{
/**
* Decrypt data.
*
* @param string $sessionKey
* @param string $iv
* @param string $encrypted
*
* @return array
*
* @throws \EasyWeChat\Kernel\Exceptions\DecryptException
*/
public function decryptData(string $sessionKey, string $iv, string $encrypted): array
{
$decrypted = AES::decrypt(
base64_decode($encrypted, false), base64_decode($sessionKey, false), base64_decode($iv, false)
);
$decrypted = json_decode($this->pkcs7Unpad($decrypted), true);
if (!$decrypted) {
throw new DecryptException('The given payload is invalid.');
}
return $decrypted;
}
}

133
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Express/Client.php

@ -0,0 +1,133 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\Express;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @author kehuanhuan <1152018701@qq.com>
*/
class Client extends BaseClient
{
/**
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function listProviders()
{
return $this->httpGet('cgi-bin/express/business/delivery/getall');
}
/**
* @param array $params
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function createWaybill(array $params = [])
{
return $this->httpPostJson('cgi-bin/express/business/order/add', $params);
}
/**
* @param array $params
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function deleteWaybill(array $params = [])
{
return $this->httpPostJson('cgi-bin/express/business/order/cancel', $params);
}
/**
* @param array $params
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getWaybill(array $params = [])
{
return $this->httpPostJson('cgi-bin/express/business/order/get', $params);
}
/**
* @param array $params
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getWaybillTrack(array $params = [])
{
return $this->httpPostJson('cgi-bin/express/business/path/get', $params);
}
/**
* @param string $deliveryId
* @param string $bizId
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getBalance(string $deliveryId, string $bizId)
{
return $this->httpPostJson('cgi-bin/express/business/quota/get', [
'delivery_id' => $deliveryId,
'biz_id' => $bizId,
]);
}
/**
* @param string $openid
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function bindPrinter(string $openid)
{
return $this->httpPostJson('cgi-bin/express/business/printer/update', [
'update_type' => 'bind',
'openid' => $openid,
]);
}
/**
* @param string $openid
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function unbindPrinter(string $openid)
{
return $this->httpPostJson('cgi-bin/express/business/printer/update', [
'update_type' => 'unbind',
'openid' => $openid,
]);
}
}

33
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Express/ServiceProvider.php

@ -0,0 +1,33 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\Express;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author kehuanhuan <1152018701@qq.com>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['express'] = function ($app) {
return new Client($app);
};
}
}

88
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Mall/CartClient.php

@ -0,0 +1,88 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\Mall;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*/
class CartClient extends BaseClient
{
/**
* 导入收藏.
*
* @param array $params
* @param bool $isTest
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function add($params, $isTest = false)
{
return $this->httpPostJson('mall/addshoppinglist', $params, ['is_test' => (int) $isTest]);
}
/**
* 查询用户收藏信息.
*
* @param array $params
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function query($params)
{
return $this->httpPostJson('mall/queryshoppinglist', $params, ['type' => 'batchquery']);
}
/**
* 查询用户收藏信息.
*
* @param array $params
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function queryByPage($params)
{
return $this->httpPostJson('mall/queryshoppinglist', $params, ['type' => 'getbypage']);
}
/**
* 删除收藏.
*
* @param string $openid
* @param array $products
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function delete($openid, array $products = [])
{
if (empty($products)) {
return $this->httpPostJson('mall/deletebizallshoppinglist', ['user_open_id' => $openid]);
}
return $this->httpPostJson('mall/deleteshoppinglist', ['user_open_id' => $openid, 'sku_product_list' => $products]);
}
}

48
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Mall/ForwardsMall.php

@ -0,0 +1,48 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\Mall;
/**
* Class Application.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*
* @property \EasyWeChat\MiniProgram\Mall\OrderClient $order
* @property \EasyWeChat\MiniProgram\Mall\CartClient $cart
* @property \EasyWeChat\MiniProgram\Mall\ProductClient $product
* @property \EasyWeChat\MiniProgram\Mall\MediaClient $media
*/
class ForwardsMall
{
/**
* @var \EasyWeChat\Kernel\ServiceContainer
*/
protected $app;
/**
* @param \EasyWeChat\Kernel\ServiceContainer $app
*/
public function __construct($app)
{
$this->app = $app;
}
/**
* @param string $property
*
* @return mixed
*/
public function __get($property)
{
return $this->app["mall.{$property}"];
}
}

37
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Mall/MediaClient.php

@ -0,0 +1,37 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\Mall;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*/
class MediaClient extends BaseClient
{
/**
* 更新或导入媒体信息.
*
* @param array $params
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function import($params)
{
return $this->httpPostJson('mall/importmedia', $params);
}
}

75
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Mall/OrderClient.php

@ -0,0 +1,75 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\Mall;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*/
class OrderClient extends BaseClient
{
/**
* 导入订单.
*
* @param array $params
* @param bool $isHistory
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function add($params, $isHistory = false)
{
return $this->httpPostJson('mall/importorder', $params, ['action' => 'add-order', 'is_history' => (int) $isHistory]);
}
/**
* 导入订单.
*
* @param array $params
* @param bool $isHistory
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function update($params, $isHistory = false)
{
return $this->httpPostJson('mall/importorder', $params, ['action' => 'update-order', 'is_history' => (int) $isHistory]);
}
/**
* 删除订单.
*
* @param string $openid
* @param string $orderId
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function delete($openid, $orderId)
{
$params = [
'user_open_id' => $openid,
'order_id' => $orderId,
];
return $this->httpPostJson('mall/deleteorder', $params);
}
}

68
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Mall/ProductClient.php

@ -0,0 +1,68 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\Mall;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*/
class ProductClient extends BaseClient
{
/**
* 更新或导入物品信息.
*
* @param array $params
* @param bool $isTest
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function import($params, $isTest = false)
{
return $this->httpPostJson('mall/importproduct', $params, ['is_test' => (int) $isTest]);
}
/**
* 查询物品信息.
*
* @param array $params
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function query($params)
{
return $this->httpPostJson('mall/queryproduct', $params, ['type' => 'batchquery']);
}
/**
* 小程序的物品是否可被搜索.
*
* @param bool $value
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function setSearchable($value)
{
return $this->httpPostJson('mall/brandmanage', ['can_be_search' => $value], ['action' => 'set_biz_can_be_search']);
}
}

44
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Mall/ServiceProvider.php

@ -0,0 +1,44 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\Mall;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['mall'] = function ($app) {
return new ForwardsMall($app);
};
$app['mall.order'] = function ($app) {
return new OrderClient($app);
};
$app['mall.cart'] = function ($app) {
return new CartClient($app);
};
$app['mall.product'] = function ($app) {
return new ProductClient($app);
};
$app['mall.media'] = function ($app) {
return new MediaClient($app);
};
}
}

123
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/NearbyPoi/Client.php

@ -0,0 +1,123 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\NearbyPoi;
use EasyWeChat\Kernel\BaseClient;
use EasyWeChat\Kernel\Exceptions\InvalidArgumentException;
/**
* Class Client.
*
* @author joyeekk <xygao2420@gmail.com>
*/
class Client extends BaseClient
{
/**
* Add nearby poi.
*
* @param array $params
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function add(array $params)
{
$params = array_merge([
'is_comm_nearby' => '1',
'poi_id' => '',
], $params);
return $this->httpPostJson('wxa/addnearbypoi', $params);
}
/**
* Update nearby poi.
*
* @param string $poiId
* @param array $params
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function update(string $poiId, array $params)
{
$params = array_merge([
'is_comm_nearby' => '1',
'poi_id' => $poiId,
], $params);
return $this->httpPostJson('wxa/addnearbypoi', $params);
}
/**
* Delete nearby poi.
*
* @param string $poiId
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function delete(string $poiId)
{
return $this->httpPostJson('wxa/delnearbypoi', [
'poi_id' => $poiId,
]);
}
/**
* Get nearby poi list.
*
* @param int $page
* @param int $pageRows
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function list(int $page, int $pageRows)
{
return $this->httpGet('wxa/getnearbypoilist', [
'page' => $page,
'page_rows' => $pageRows,
]);
}
/**
* Set nearby poi show status.
*
* @param string $poiId
* @param int $status
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function setVisibility(string $poiId, int $status)
{
if (!in_array($status, [0, 1], true)) {
throw new InvalidArgumentException('status should be 0 or 1.');
}
return $this->httpPostJson('wxa/setnearbypoishowstatus', [
'poi_id' => $poiId,
'status' => $status,
]);
}
}

33
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/NearbyPoi/ServiceProvider.php

@ -0,0 +1,33 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\NearbyPoi;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author joyeekk <xygao2420@gmail.com>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['nearby_poi'] = function ($app) {
return new Client($app);
};
}
}

34
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/OCR/ServiceProvider.php

@ -0,0 +1,34 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\OCR;
use EasyWeChat\OfficialAccount\OCR\Client;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author joyeekk <xygao2420@gmail.com>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['ocr'] = function ($app) {
return new Client($app);
};
}
}

96
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/OpenData/Client.php

@ -0,0 +1,96 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\OpenData;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @author tianyong90 <412039588@qq.com>
*/
class Client extends BaseClient
{
/**
* @var string
*/
protected $baseUri = 'https://api.weixin.qq.com/wxa/';
/**
* removeUserStorage.
*
* @param string $openid
* @param string $sessionKey
* @param array $key
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function removeUserStorage(string $openid, string $sessionKey, array $key)
{
$data = ['key' => $key];
$query = [
'openid' => $openid,
'sig_method' => 'hmac_sha256',
'signature' => hash_hmac('sha256', json_encode($data), $sessionKey),
];
return $this->httpPostJson('remove_user_storage', $data, $query);
}
/**
* setUserStorage.
*
* @param string $openid
* @param string $sessionKey
* @param array $kvList
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function setUserStorage(string $openid, string $sessionKey, array $kvList)
{
$kvList = $this->formatKVLists($kvList);
$data = ['kv_list' => $kvList];
$query = [
'openid' => $openid,
'sig_method' => 'hmac_sha256',
'signature' => hash_hmac('sha256', json_encode($data), $sessionKey),
];
return $this->httpPostJson('set_user_storage', $data, $query);
}
/**
* @param array $params
*
* @return array
*/
protected function formatKVLists(array $params)
{
$formatted = [];
foreach ($params as $name => $value) {
$formatted[] = [
'key' => $name,
'value' => strval($value),
];
}
return $formatted;
}
}

28
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/OpenData/ServiceProvider.php

@ -0,0 +1,28 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\OpenData;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['open_data'] = function ($app) {
return new Client($app);
};
}
}

67
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Plugin/Client.php

@ -0,0 +1,67 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\Plugin;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*/
class Client extends BaseClient
{
/**
* @param string $appId
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function apply($appId)
{
return $this->httpPostJson('wxa/plugin', [
'action' => 'apply',
'plugin_appid' => $appId,
]);
}
/**
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function list()
{
return $this->httpPostJson('wxa/plugin', [
'action' => 'list',
]);
}
/**
* @param string $appId
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function unbind($appId)
{
return $this->httpPostJson('wxa/plugin', [
'action' => 'unbind',
'plugin_appid' => $appId,
]);
}
}

93
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Plugin/DevClient.php

@ -0,0 +1,93 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\Plugin;
use EasyWeChat\Kernel\BaseClient;
/**
* Class DevClient.
*
* @author her-cat <i@her-cat.com>
*/
class DevClient extends BaseClient
{
/**
* Get users.
*
* @param int $page
* @param int $size
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getUsers(int $page = 1, int $size = 10)
{
return $this->httpPostJson('wxa/devplugin', [
'action' => 'dev_apply_list',
'page' => $page,
'num' => $size,
]);
}
/**
* Agree to use plugin.
*
* @param string $appId
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function agree(string $appId)
{
return $this->httpPostJson('wxa/devplugin', [
'action' => 'dev_agree',
'appid' => $appId,
]);
}
/**
* Refuse to use plugin.
*
* @param string $reason
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function refuse(string $reason)
{
return $this->httpPostJson('wxa/devplugin', [
'action' => 'dev_refuse',
'reason' => $reason,
]);
}
/**
* Delete rejected applications.
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function delete()
{
return $this->httpPostJson('wxa/devplugin', [
'action' => 'dev_delete',
]);
}
}

42
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Plugin/ServiceProvider.php

@ -0,0 +1,42 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\Plugin;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* Registers services on the given container.
*
* This method should only be used to configure services and parameters.
* It should not get services.
*
* @param \Pimple\Container $app
*/
public function register(Container $app)
{
$app['plugin'] = function ($app) {
return new Client($app);
};
$app['plugin_dev'] = function ($app) {
return new DevClient($app);
};
}
}

42
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Server/ServiceProvider.php

@ -0,0 +1,42 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\Server;
use EasyWeChat\MiniProgram\Encryptor;
use EasyWeChat\OfficialAccount\Server\Guard;
use EasyWeChat\OfficialAccount\Server\Handlers\EchoStrHandler;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
!isset($app['encryptor']) && $app['encryptor'] = function ($app) {
return new Encryptor(
$app['config']['app_id'],
$app['config']['token'],
$app['config']['aes_key']
);
};
!isset($app['server']) && $app['server'] = function ($app) {
$guard = new Guard($app);
$guard->push(new EchoStrHandler($app));
return $guard;
};
}
}

41
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Soter/Client.php

@ -0,0 +1,41 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\Soter;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @author her-cat <hxhsoft@foxmail.com>
*/
class Client extends BaseClient
{
/**
* @param string $openid
* @param string $json
* @param string $signature
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function verifySignature(string $openid, string $json, string $signature)
{
return $this->httpPostJson('cgi-bin/soter/verify_signature', [
'openid' => $openid,
'json_string' => $json,
'json_signature' => $signature,
]);
}
}

33
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/Soter/ServiceProvider.php

@ -0,0 +1,33 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\Soter;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author her-cat <hxhsoft@foxmail.com>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}
*/
public function register(Container $app)
{
$app['soter'] = function ($app) {
return new Client($app);
};
}
}

208
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/SubscribeMessage/Client.php

@ -0,0 +1,208 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\SubscribeMessage;
use EasyWeChat\Kernel\BaseClient;
use EasyWeChat\Kernel\Exceptions\InvalidArgumentException;
use ReflectionClass;
/**
* Class Client.
*
* @author hugo <rabbitzhang52@gmail.com>
*/
class Client extends BaseClient
{
/**
* {@inheritdoc}.
*/
protected $message = [
'touser' => '',
'template_id' => '',
'page' => '',
'data' => [],
];
/**
* {@inheritdoc}.
*/
protected $required = ['touser', 'template_id', 'data'];
/**
* Send a template message.
*
* @param array $data
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function send(array $data = [])
{
$params = $this->formatMessage($data);
$this->restoreMessage();
return $this->httpPostJson('cgi-bin/message/subscribe/send', $params);
}
/**
* @param array $data
*
* @return array
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
*/
protected function formatMessage(array $data = [])
{
$params = array_merge($this->message, $data);
foreach ($params as $key => $value) {
if (in_array($key, $this->required, true) && empty($value) && empty($this->message[$key])) {
throw new InvalidArgumentException(sprintf('Attribute "%s" can not be empty!', $key));
}
$params[$key] = empty($value) ? $this->message[$key] : $value;
}
foreach ($params['data'] as $key => $value) {
if (is_array($value)) {
if (isset($value['value'])) {
$params['data'][$key] = ['value' => $value['value']];
continue;
}
if (count($value) >= 1) {
$value = [
'value' => $value[0],
// 'color' => $value[1],// color unsupported
];
}
} else {
$value = [
'value' => strval($value),
];
}
$params['data'][$key] = $value;
}
return $params;
}
/**
* Restore message.
*/
protected function restoreMessage()
{
$this->message = (new ReflectionClass(static::class))->getDefaultProperties()['message'];
}
/**
* Combine templates and add them to your personal template library under your account.
*
* @param string $tid
* @param array $kidList
* @param string|null $sceneDesc
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function addTemplate(string $tid, array $kidList, string $sceneDesc = null)
{
$sceneDesc = $sceneDesc ?? '';
$data = \compact('tid', 'kidList', 'sceneDesc');
return $this->httpPost('wxaapi/newtmpl/addtemplate', $data);
}
/**
* Delete personal template under account.
*
* @param string $id
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function deleteTemplate(string $id)
{
return $this->httpPost('wxaapi/newtmpl/deltemplate', ['priTmplId' => $id]);
}
/**
* Get keyword list under template title.
*
* @param string $tid
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getTemplateKeywords(string $tid)
{
return $this->httpGet('wxaapi/newtmpl/getpubtemplatekeywords', compact('tid'));
}
/**
* Get the title of the public template under the category to which the account belongs.
*
* @param array $ids
* @param int $start
* @param int $limit
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getTemplateTitles(array $ids, int $start = 0, int $limit = 30)
{
$ids = \implode(',', $ids);
$query = \compact('ids', 'start', 'limit');
return $this->httpGet('wxaapi/newtmpl/getpubtemplatetitles', $query);
}
/**
* Get list of personal templates under the current account.
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getTemplates()
{
return $this->httpGet('wxaapi/newtmpl/gettemplate');
}
/**
* Get the category of the applet account.
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getCategory()
{
return $this->httpGet('wxaapi/newtmpl/getcategory');
}
}

28
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/SubscribeMessage/ServiceProvider.php

@ -0,0 +1,28 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\SubscribeMessage;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['subscribe_message'] = function ($app) {
return new Client($app);
};
}
}

114
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/TemplateMessage/Client.php

@ -0,0 +1,114 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\TemplateMessage;
use EasyWeChat\OfficialAccount\TemplateMessage\Client as BaseClient;
/**
* Class Client.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*/
class Client extends BaseClient
{
const API_SEND = 'cgi-bin/message/wxopen/template/send';
/**
* {@inheritdoc}.
*/
protected $message = [
'touser' => '',
'template_id' => '',
'page' => '',
'form_id' => '',
'data' => [],
'emphasis_keyword' => '',
];
/**
* {@inheritdoc}.
*/
protected $required = ['touser', 'template_id', 'form_id'];
/**
* @param int $offset
* @param int $count
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function list(int $offset, int $count)
{
return $this->httpPostJson('cgi-bin/wxopen/template/library/list', compact('offset', 'count'));
}
/**
* @param string $id
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function get(string $id)
{
return $this->httpPostJson('cgi-bin/wxopen/template/library/get', compact('id'));
}
/**
* @param string $id
* @param array $keyword
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function add(string $id, array $keyword)
{
return $this->httpPostJson('cgi-bin/wxopen/template/add', [
'id' => $id,
'keyword_id_list' => $keyword,
]);
}
/**
* @param string $templateId
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function delete(string $templateId)
{
return $this->httpPostJson('cgi-bin/wxopen/template/del', [
'template_id' => $templateId,
]);
}
/**
* @param int $offset
* @param int $count
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getTemplates(int $offset, int $count)
{
return $this->httpPostJson('cgi-bin/wxopen/template/list', compact('offset', 'count'));
}
}

28
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/TemplateMessage/ServiceProvider.php

@ -0,0 +1,28 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\TemplateMessage;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['template_message'] = function ($app) {
return new Client($app);
};
}
}

146
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/UniformMessage/Client.php

@ -0,0 +1,146 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\UniformMessage;
use EasyWeChat\Kernel\Exceptions\InvalidArgumentException;
use EasyWeChat\OfficialAccount\TemplateMessage\Client as BaseClient;
class Client extends BaseClient
{
const API_SEND = 'cgi-bin/message/wxopen/template/uniform_send';
/**
* {@inheritdoc}.
*
* @var array
*/
protected $message = [
'touser' => '',
];
/**
* Weapp Attributes.
*
* @var array
*/
protected $weappMessage = [
'template_id' => '',
'page' => '',
'form_id' => '',
'data' => [],
'emphasis_keyword' => '',
];
/**
* Official account attributes.
*
* @var array
*/
protected $mpMessage = [
'appid' => '',
'template_id' => '',
'url' => '',
'miniprogram' => [],
'data' => [],
];
/**
* Required attributes.
*
* @var array
*/
protected $required = ['touser', 'template_id', 'form_id', 'miniprogram', 'appid'];
/**
* @param array $data
*
* @return array
*
* @throws InvalidArgumentException
*/
protected function formatMessage(array $data = [])
{
$params = array_merge($this->message, $data);
if (empty($params['touser'])) {
throw new InvalidArgumentException(sprintf('Attribute "touser" can not be empty!'));
}
if (!empty($params['weapp_template_msg'])) {
$params['weapp_template_msg'] = $this->formatWeappMessage($params['weapp_template_msg']);
}
if (!empty($params['mp_template_msg'])) {
$params['mp_template_msg'] = $this->formatMpMessage($params['mp_template_msg']);
}
return $params;
}
/**
* @param array $data
*
* @return array
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
*/
protected function formatWeappMessage(array $data = [])
{
$params = $this->baseFormat($data, $this->weappMessage);
$params['data'] = $this->formatData($params['data'] ?? []);
return $params;
}
/**
* @param array $data
*
* @return array
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
*/
protected function formatMpMessage(array $data = [])
{
$params = $this->baseFormat($data, $this->mpMessage);
if (empty($params['miniprogram']['appid'])) {
$params['miniprogram']['appid'] = $this->app['config']['app_id'];
}
$params['data'] = $this->formatData($params['data'] ?? []);
return $params;
}
/**
* @param array $data
* @param array $default
*
* @return array
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
*/
protected function baseFormat($data = [], $default = [])
{
$params = array_merge($default, $data);
foreach ($params as $key => $value) {
if (in_array($key, $this->required, true) && empty($value) && empty($default[$key])) {
throw new InvalidArgumentException(sprintf('Attribute "%s" can not be empty!', $key));
}
$params[$key] = empty($value) ? $default[$key] : $value;
}
return $params;
}
}

28
addons/weliam_smartcity/vendor/overtrue/wechat/src/MiniProgram/UniformMessage/ServiceProvider.php

@ -0,0 +1,28 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\MiniProgram\UniformMessage;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['uniform_message'] = function ($app) {
return new Client($app);
};
}
}

88
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Application.php

@ -0,0 +1,88 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount;
use EasyWeChat\BasicService;
use EasyWeChat\Kernel\ServiceContainer;
/**
* Class Application.
*
* @author overtrue <i@overtrue.me>
*
* @property \EasyWeChat\BasicService\Media\Client $media
* @property \EasyWeChat\BasicService\Url\Client $url
* @property \EasyWeChat\BasicService\QrCode\Client $qrcode
* @property \EasyWeChat\BasicService\Jssdk\Client $jssdk
* @property \EasyWeChat\OfficialAccount\Auth\AccessToken $access_token
* @property \EasyWeChat\OfficialAccount\Server\Guard $server
* @property \EasyWeChat\OfficialAccount\User\UserClient $user
* @property \EasyWeChat\OfficialAccount\User\TagClient $user_tag
* @property \EasyWeChat\OfficialAccount\Menu\Client $menu
* @property \EasyWeChat\OfficialAccount\TemplateMessage\Client $template_message
* @property \EasyWeChat\OfficialAccount\Material\Client $material
* @property \EasyWeChat\OfficialAccount\CustomerService\Client $customer_service
* @property \EasyWeChat\OfficialAccount\CustomerService\SessionClient $customer_service_session
* @property \EasyWeChat\OfficialAccount\Semantic\Client $semantic
* @property \EasyWeChat\OfficialAccount\DataCube\Client $data_cube
* @property \EasyWeChat\OfficialAccount\AutoReply\Client $auto_reply
* @property \EasyWeChat\OfficialAccount\Broadcasting\Client $broadcasting
* @property \EasyWeChat\OfficialAccount\Card\Card $card
* @property \EasyWeChat\OfficialAccount\Device\Client $device
* @property \EasyWeChat\OfficialAccount\ShakeAround\ShakeAround $shake_around
* @property \EasyWeChat\OfficialAccount\POI\Client $poi
* @property \EasyWeChat\OfficialAccount\Store\Client $store
* @property \EasyWeChat\OfficialAccount\Base\Client $base
* @property \EasyWeChat\OfficialAccount\Comment\Client $comment
* @property \EasyWeChat\OfficialAccount\OCR\Client $ocr
* @property \EasyWeChat\OfficialAccount\Goods\Client $goods
* @property \Overtrue\Socialite\Providers\WeChatProvider $oauth
* @property \EasyWeChat\OfficialAccount\WiFi\Client $wifi
* @property \EasyWeChat\OfficialAccount\WiFi\CardClient $wifi_card
* @property \EasyWeChat\OfficialAccount\WiFi\DeviceClient $wifi_device
* @property \EasyWeChat\OfficialAccount\WiFi\ShopClient $wifi_shop
*/
class Application extends ServiceContainer
{
/**
* @var array
*/
protected $providers = [
Auth\ServiceProvider::class,
Server\ServiceProvider::class,
User\ServiceProvider::class,
OAuth\ServiceProvider::class,
Menu\ServiceProvider::class,
TemplateMessage\ServiceProvider::class,
Material\ServiceProvider::class,
CustomerService\ServiceProvider::class,
Semantic\ServiceProvider::class,
DataCube\ServiceProvider::class,
POI\ServiceProvider::class,
AutoReply\ServiceProvider::class,
Broadcasting\ServiceProvider::class,
Card\ServiceProvider::class,
Device\ServiceProvider::class,
ShakeAround\ServiceProvider::class,
Store\ServiceProvider::class,
Comment\ServiceProvider::class,
Base\ServiceProvider::class,
OCR\ServiceProvider::class,
Goods\ServiceProvider::class,
WiFi\ServiceProvider::class,
// Base services
BasicService\QrCode\ServiceProvider::class,
BasicService\Media\ServiceProvider::class,
BasicService\Url\ServiceProvider::class,
BasicService\Jssdk\ServiceProvider::class,
];
}

39
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Auth/AccessToken.php

@ -0,0 +1,39 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Auth;
use EasyWeChat\Kernel\AccessToken as BaseAccessToken;
/**
* Class AuthorizerAccessToken.
*
* @author overtrue <i@overtrue.me>
*/
class AccessToken extends BaseAccessToken
{
/**
* @var string
*/
protected $endpointToGetToken = 'https://api.weixin.qq.com/cgi-bin/token';
/**
* @return array
*/
protected function getCredentials(): array
{
return [
'grant_type' => 'client_credential',
'appid' => $this->app['config']['app_id'],
'secret' => $this->app['config']['secret'],
];
}
}

33
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Auth/ServiceProvider.php

@ -0,0 +1,33 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Auth;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author overtrue <i@overtrue.me>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
!isset($app['access_token']) && $app['access_token'] = function ($app) {
return new AccessToken($app);
};
}
}

34
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/AutoReply/Client.php

@ -0,0 +1,34 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\AutoReply;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @author overtrue <i@overtrue.me>
*/
class Client extends BaseClient
{
/**
* Get current auto reply settings.
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function current()
{
return $this->httpGet('cgi-bin/get_current_autoreply_info');
}
}

33
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/AutoReply/ServiceProvider.php

@ -0,0 +1,33 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\AutoReply;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author overtrue <i@overtrue.me>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['auto_reply'] = function ($app) {
return new Client($app);
};
}
}

84
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Base/Client.php

@ -0,0 +1,84 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Base;
use EasyWeChat\Kernel\BaseClient;
use EasyWeChat\Kernel\Exceptions\InvalidArgumentException;
/**
* Class Client.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*/
class Client extends BaseClient
{
/**
* Clear quota.
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function clearQuota()
{
$params = [
'appid' => $this->app['config']['app_id'],
];
return $this->httpPostJson('cgi-bin/clear_quota', $params);
}
/**
* Get wechat callback ip.
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function getValidIps()
{
return $this->httpGet('cgi-bin/getcallbackip');
}
/**
* Check the callback address network.
*
* @param string $action
* @param string $operator
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws InvalidArgumentException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function checkCallbackUrl(string $action = 'all', string $operator = 'DEFAULT')
{
if (!in_array($action, ['dns', 'ping', 'all'], true)) {
throw new InvalidArgumentException('The action must be dns, ping, all.');
}
$operator = strtoupper($operator);
if (!in_array($operator, ['CHINANET', 'UNICOM', 'CAP', 'DEFAULT'], true)) {
throw new InvalidArgumentException('The operator must be CHINANET, UNICOM, CAP, DEFAULT.');
}
$params = [
'action' => $action,
'check_operator' => $operator,
];
return $this->httpPostJson('cgi-bin/callback/check', $params);
}
}

33
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Base/ServiceProvider.php

@ -0,0 +1,33 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Base;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['base'] = function ($app) {
return new Client($app);
};
}
}

383
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Broadcasting/Client.php

@ -0,0 +1,383 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Broadcasting;
use EasyWeChat\Kernel\BaseClient;
use EasyWeChat\Kernel\Contracts\MessageInterface;
use EasyWeChat\Kernel\Exceptions\RuntimeException;
use EasyWeChat\Kernel\Messages\Card;
use EasyWeChat\Kernel\Messages\Image;
use EasyWeChat\Kernel\Messages\Media;
use EasyWeChat\Kernel\Messages\Text;
use EasyWeChat\Kernel\Support\Arr;
/**
* Class Client.
*
* @method \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string previewTextByName($text, $name);
* @method \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string previewNewsByName($mediaId, $name);
* @method \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string previewVoiceByName($mediaId, $name);
* @method \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string previewImageByName($mediaId, $name);
* @method \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string previewVideoByName($message, $name);
* @method \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string previewCardByName($cardId, $name);
*
* @author overtrue <i@overtrue.me>
*/
class Client extends BaseClient
{
const PREVIEW_BY_OPENID = 'touser';
const PREVIEW_BY_NAME = 'towxname';
/**
* Send a message.
*
* @param array $message
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function send(array $message)
{
if (empty($message['filter']) && empty($message['touser'])) {
throw new RuntimeException('The message reception object is not specified');
}
$api = Arr::get($message, 'touser') ? 'cgi-bin/message/mass/send' : 'cgi-bin/message/mass/sendall';
return $this->httpPostJson($api, $message);
}
/**
* Preview a message.
*
* @param array $message
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function preview(array $message)
{
return $this->httpPostJson('cgi-bin/message/mass/preview', $message);
}
/**
* Delete a broadcast.
*
* @param string $msgId
* @param int $index
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function delete(string $msgId, int $index = 0)
{
$options = [
'msg_id' => $msgId,
'article_idx' => $index,
];
return $this->httpPostJson('cgi-bin/message/mass/delete', $options);
}
/**
* Get a broadcast status.
*
* @param string $msgId
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function status(string $msgId)
{
$options = [
'msg_id' => $msgId,
];
return $this->httpPostJson('cgi-bin/message/mass/get', $options);
}
/**
* Send a text message.
*
* @param string $message
* @param mixed $reception
* @param array $attributes
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
*/
public function sendText(string $message, $reception = null, array $attributes = [])
{
return $this->sendMessage(new Text($message), $reception, $attributes);
}
/**
* Send a news message.
*
* @param string $mediaId
* @param mixed $reception
* @param array $attributes
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
*/
public function sendNews(string $mediaId, $reception = null, array $attributes = [])
{
return $this->sendMessage(new Media($mediaId, 'mpnews'), $reception, $attributes);
}
/**
* Send a voice message.
*
* @param string $mediaId
* @param mixed $reception
* @param array $attributes
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
*/
public function sendVoice(string $mediaId, $reception = null, array $attributes = [])
{
return $this->sendMessage(new Media($mediaId, 'voice'), $reception, $attributes);
}
/**
* Send a image message.
*
* @param string $mediaId
* @param mixed $reception
* @param array $attributes
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
*/
public function sendImage(string $mediaId, $reception = null, array $attributes = [])
{
return $this->sendMessage(new Image($mediaId), $reception, $attributes);
}
/**
* Send a video message.
*
* @param string $mediaId
* @param mixed $reception
* @param array $attributes
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
*/
public function sendVideo(string $mediaId, $reception = null, array $attributes = [])
{
return $this->sendMessage(new Media($mediaId, 'mpvideo'), $reception, $attributes);
}
/**
* Send a card message.
*
* @param string $cardId
* @param mixed $reception
* @param array $attributes
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
*/
public function sendCard(string $cardId, $reception = null, array $attributes = [])
{
return $this->sendMessage(new Card($cardId), $reception, $attributes);
}
/**
* Preview a text message.
*
* @param string $message message
* @param string $reception
* @param string $method
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function previewText(string $message, $reception, $method = self::PREVIEW_BY_OPENID)
{
return $this->previewMessage(new Text($message), $reception, $method);
}
/**
* Preview a news message.
*
* @param string $mediaId message
* @param string $reception
* @param string $method
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function previewNews(string $mediaId, $reception, $method = self::PREVIEW_BY_OPENID)
{
return $this->previewMessage(new Media($mediaId, 'mpnews'), $reception, $method);
}
/**
* Preview a voice message.
*
* @param string $mediaId message
* @param string $reception
* @param string $method
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function previewVoice(string $mediaId, $reception, $method = self::PREVIEW_BY_OPENID)
{
return $this->previewMessage(new Media($mediaId, 'voice'), $reception, $method);
}
/**
* Preview a image message.
*
* @param string $mediaId message
* @param string $reception
* @param string $method
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function previewImage(string $mediaId, $reception, $method = self::PREVIEW_BY_OPENID)
{
return $this->previewMessage(new Image($mediaId), $reception, $method);
}
/**
* Preview a video message.
*
* @param string $mediaId message
* @param string $reception
* @param string $method
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function previewVideo(string $mediaId, $reception, $method = self::PREVIEW_BY_OPENID)
{
return $this->previewMessage(new Media($mediaId, 'mpvideo'), $reception, $method);
}
/**
* Preview a card message.
*
* @param string $cardId message
* @param string $reception
* @param string $method
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function previewCard(string $cardId, $reception, $method = self::PREVIEW_BY_OPENID)
{
return $this->previewMessage(new Card($cardId), $reception, $method);
}
/**
* @param \EasyWeChat\Kernel\Contracts\MessageInterface $message
* @param string $reception
* @param string $method
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function previewMessage(MessageInterface $message, string $reception, $method = self::PREVIEW_BY_OPENID)
{
$message = (new MessageBuilder())->message($message)->buildForPreview($method, $reception);
return $this->preview($message);
}
/**
* @param \EasyWeChat\Kernel\Contracts\MessageInterface $message
* @param mixed $reception
* @param array $attributes
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
*/
public function sendMessage(MessageInterface $message, $reception = null, $attributes = [])
{
$message = (new MessageBuilder())->message($message)->with($attributes)->toAll();
if (\is_int($reception)) {
$message->toTag($reception);
} elseif (\is_array($reception)) {
$message->toUsers($reception);
}
return $this->send($message->build());
}
/**
* @codeCoverageIgnore
*
* @param string $method
* @param array $args
*
* @return mixed
*/
public function __call($method, $args)
{
if (strpos($method, 'ByName') > 0) {
$method = strstr($method, 'ByName', true);
if (method_exists($this, $method)) {
array_push($args, self::PREVIEW_BY_NAME);
return $this->$method(...$args);
}
}
throw new \BadMethodCallException(sprintf('Method %s not exists.', $method));
}
}

162
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Broadcasting/MessageBuilder.php

@ -0,0 +1,162 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Broadcasting;
use EasyWeChat\Kernel\Contracts\MessageInterface;
use EasyWeChat\Kernel\Exceptions\RuntimeException;
/**
* Class MessageBuilder.
*
* @author overtrue <i@overtrue.me>
*/
class MessageBuilder
{
/**
* @var array
*/
protected $to = [];
/**
* @var \EasyWeChat\Kernel\Contracts\MessageInterface
*/
protected $message;
/**
* @var array
*/
protected $attributes = [];
/**
* Set message.
*
* @param \EasyWeChat\Kernel\Contracts\MessageInterface $message
*
* @return $this
*/
public function message(MessageInterface $message)
{
$this->message = $message;
return $this;
}
/**
* Set target user or group.
*
* @param array $to
*
* @return $this
*/
public function to(array $to)
{
$this->to = $to;
return $this;
}
/**
* @param int $tagId
*
* @return \EasyWeChat\OfficialAccount\Broadcasting\MessageBuilder
*/
public function toTag(int $tagId)
{
$this->to([
'filter' => [
'is_to_all' => false,
'tag_id' => $tagId,
],
]);
return $this;
}
/**
* @param array $openids
*
* @return \EasyWeChat\OfficialAccount\Broadcasting\MessageBuilder
*/
public function toUsers(array $openids)
{
$this->to([
'touser' => $openids,
]);
return $this;
}
/**
* @return $this
*/
public function toAll()
{
$this->to([
'filter' => ['is_to_all' => true],
]);
return $this;
}
/**
* @param array $attributes
*
* @return \EasyWeChat\OfficialAccount\Broadcasting\MessageBuilder
*/
public function with(array $attributes)
{
$this->attributes = $attributes;
return $this;
}
/**
* Build message.
*
* @param array $prepends
*
* @return array
*
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
*/
public function build(array $prepends = []): array
{
if (empty($this->message)) {
throw new RuntimeException('No message content to send.');
}
$content = $this->message->transformForJsonRequest();
if (empty($prepends)) {
$prepends = $this->to;
}
$message = array_merge($prepends, $content, $this->attributes);
return $message;
}
/**
* Build preview message.
*
* @param string $by
* @param string $user
*
* @return array
*
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
*/
public function buildForPreview(string $by, string $user): array
{
return $this->build([$by => $user]);
}
}

33
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Broadcasting/ServiceProvider.php

@ -0,0 +1,33 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Broadcasting;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author overtrue <i@overtrue.me>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['broadcasting'] = function ($app) {
return new Client($app);
};
}
}

33
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/BoardingPassClient.php

@ -0,0 +1,33 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Card;
/**
* Class BoardingPassClient.
*
* @author overtrue <i@overtrue.me>
*/
class BoardingPassClient extends Client
{
/**
* @param array $params
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function checkin(array $params)
{
return $this->httpPostJson('card/boardingpass/checkin', $params);
}
}

52
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/Card.php

@ -0,0 +1,52 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Card;
use EasyWeChat\Kernel\Exceptions\InvalidArgumentException;
/**
* Class Card.
*
* @author overtrue <i@overtrue.me>
*
* @property \EasyWeChat\OfficialAccount\Card\CodeClient $code
* @property \EasyWeChat\OfficialAccount\Card\MeetingTicketClient $meeting_ticket
* @property \EasyWeChat\OfficialAccount\Card\MemberCardClient $member_card
* @property \EasyWeChat\OfficialAccount\Card\GeneralCardClient $general_card
* @property \EasyWeChat\OfficialAccount\Card\MovieTicketClient $movie_ticket
* @property \EasyWeChat\OfficialAccount\Card\CoinClient $coin
* @property \EasyWeChat\OfficialAccount\Card\SubMerchantClient $sub_merchant
* @property \EasyWeChat\OfficialAccount\Card\BoardingPassClient $boarding_pass
* @property \EasyWeChat\OfficialAccount\Card\JssdkClient $jssdk
* @property \EasyWeChat\OfficialAccount\Card\GiftCardClient $gift_card
* @property \EasyWeChat\OfficialAccount\Card\GiftCardOrderClient $gift_card_order
* @property \EasyWeChat\OfficialAccount\Card\GiftCardPageClient $gift_card_page
* @property \EasyWeChat\OfficialAccount\Card\InvoiceClient $invoice
*/
class Card extends Client
{
/**
* @param string $property
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
*/
public function __get($property)
{
if (isset($this->app["card.{$property}"])) {
return $this->app["card.{$property}"];
}
throw new InvalidArgumentException(sprintf('No card service named "%s".', $property));
}
}

428
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/Client.php

@ -0,0 +1,428 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Card;
use EasyWeChat\Kernel\BaseClient;
use EasyWeChat\Kernel\Traits\InteractsWithCache;
/**
* Class Client.
*
* @author overtrue <i@overtrue.me>
*/
class Client extends BaseClient
{
use InteractsWithCache;
/**
* @var string
*/
protected $url;
/**
* Ticket cache key.
*
* @var string
*/
protected $ticketCacheKey;
/**
* Ticket cache prefix.
*
* @var string
*/
protected $ticketCachePrefix = 'easywechat.official_account.card.api_ticket.';
/**
* 获取卡券颜色.
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function colors()
{
return $this->httpGet('card/getcolors');
}
/**
* 卡券开放类目查询接口.
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function categories()
{
return $this->httpGet('card/getapplyprotocol');
}
/**
* 创建卡券.
*
* @param string $cardType
* @param array $attributes
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function create($cardType = 'member_card', array $attributes)
{
$params = [
'card' => [
'card_type' => strtoupper($cardType),
strtolower($cardType) => $attributes,
],
];
return $this->httpPostJson('card/create', $params);
}
/**
* 查看卡券详情.
*
* @param string $cardId
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function get($cardId)
{
$params = [
'card_id' => $cardId,
];
return $this->httpPostJson('card/get', $params);
}
/**
* 批量查询卡列表.
*
* @param int $offset
* @param int $count
* @param string $statusList
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function list($offset = 0, $count = 10, $statusList = 'CARD_STATUS_VERIFY_OK')
{
$params = [
'offset' => $offset,
'count' => $count,
'status_list' => $statusList,
];
return $this->httpPostJson('card/batchget', $params);
}
/**
* 更改卡券信息接口 and 设置跟随推荐接口.
*
* @param string $cardId
* @param string $type
* @param array $attributes
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function update($cardId, $type, array $attributes = [])
{
$card = [];
$card['card_id'] = $cardId;
$card[strtolower($type)] = $attributes;
return $this->httpPostJson('card/update', $card);
}
/**
* 删除卡券接口.
*
* @param string $cardId
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function delete($cardId)
{
$params = [
'card_id' => $cardId,
];
return $this->httpPostJson('card/delete', $params);
}
/**
* 创建二维码.
*
* @param array $cards
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function createQrCode(array $cards)
{
return $this->httpPostJson('card/qrcode/create', $cards);
}
/**
* ticket 换取二维码图片.
*
* @param string $ticket
*
* @return array
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getQrCode($ticket)
{
$baseUri = 'https://mp.weixin.qq.com/cgi-bin/showqrcode';
$params = [
'ticket' => $ticket,
];
$response = $this->requestRaw($baseUri, 'GET', $params);
return [
'status' => $response->getStatusCode(),
'reason' => $response->getReasonPhrase(),
'headers' => $response->getHeaders(),
'body' => strval($response->getBody()),
'url' => $baseUri.'?'.http_build_query($params),
];
}
/**
* 通过ticket换取二维码 链接.
*
* @param string $ticket
*
* @return string
*/
public function getQrCodeUrl($ticket)
{
return sprintf('https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=%s', $ticket);
}
/**
* 创建货架接口.
*
* @param string $banner
* @param string $pageTitle
* @param bool $canShare
* @param string $scene [SCENE_NEAR_BY 附近,SCENE_MENU 自定义菜单,SCENE_QRCODE 二维码,SCENE_ARTICLE 公众号文章,
* SCENE_H5 h5页面,SCENE_IVR 自动回复,SCENE_CARD_CUSTOM_CELL 卡券自定义cell]
* @param array $cardList
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function createLandingPage($banner, $pageTitle, $canShare, $scene, $cardList)
{
$params = [
'banner' => $banner,
'page_title' => $pageTitle,
'can_share' => $canShare,
'scene' => $scene,
'card_list' => $cardList,
];
return $this->httpPostJson('card/landingpage/create', $params);
}
/**
* 图文消息群发卡券.
*
* @param string $cardId
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getHtml($cardId)
{
$params = [
'card_id' => $cardId,
];
return $this->httpPostJson('card/mpnews/gethtml', $params);
}
/**
* 设置测试白名单.
*
* @param array $openids
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function setTestWhitelist($openids)
{
$params = [
'openid' => $openids,
];
return $this->httpPostJson('card/testwhitelist/set', $params);
}
/**
* 设置测试白名单(by username).
*
* @param array $usernames
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function setTestWhitelistByName(array $usernames)
{
$params = [
'username' => $usernames,
];
return $this->httpPostJson('card/testwhitelist/set', $params);
}
/**
* 获取用户已领取卡券接口.
*
* @param string $openid
* @param string $cardId
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getUserCards($openid, $cardId = '')
{
$params = [
'openid' => $openid,
'card_id' => $cardId,
];
return $this->httpPostJson('card/user/getcardlist', $params);
}
/**
* 设置微信买单接口.
* 设置买单的 card_id 必须已经配置了门店,否则会报错.
*
* @param string $cardId
* @param bool $isOpen
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function setPayCell($cardId, $isOpen = true)
{
$params = [
'card_id' => $cardId,
'is_open' => $isOpen,
];
return $this->httpPostJson('card/paycell/set', $params);
}
/**
* 设置自助核销接口
* 设置买单的 card_id 必须已经配置了门店,否则会报错.
*
* @param string $cardId
* @param bool $isOpen
* @param bool $verifyCod
* @param bool $remarkAmount
*
* @return mixed
*/
public function setPayConsumeCell($cardId, $isOpen = true, $verifyCod = false, $remarkAmount = false)
{
$params = [
'card_id' => $cardId,
'is_open' => $isOpen,
'need_verify_cod' => $verifyCod,
'need_remark_amount' => $remarkAmount,
];
return $this->httpPostJson('card/selfconsumecell/set', $params);
}
/**
* 增加库存.
*
* @param string $cardId
* @param int $amount
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*/
public function increaseStock($cardId, $amount)
{
return $this->updateStock($cardId, $amount, 'increase');
}
/**
* 减少库存.
*
* @param string $cardId
* @param int $amount
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*/
public function reduceStock($cardId, $amount)
{
return $this->updateStock($cardId, $amount, 'reduce');
}
/**
* 修改库存接口.
*
* @param string $cardId
* @param int $amount
* @param string $action
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
protected function updateStock($cardId, $amount, $action = 'increase')
{
$key = 'increase' === $action ? 'increase_stock_value' : 'reduce_stock_value';
$params = [
'card_id' => $cardId,
$key => abs($amount),
];
return $this->httpPostJson('card/modifystock', $params);
}
}

193
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/CodeClient.php

@ -0,0 +1,193 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Card;
use EasyWeChat\Kernel\BaseClient;
/**
* Class CodeClient.
*
* @author overtrue <i@overtrue.me>
*/
class CodeClient extends BaseClient
{
/**
* 导入code接口.
*
* @param string $cardId
* @param array $codes
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function deposit(string $cardId, array $codes)
{
$params = [
'card_id' => $cardId,
'code' => $codes,
];
return $this->httpPostJson('card/code/deposit', $params);
}
/**
* 查询导入code数目.
*
* @param string $cardId
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getDepositedCount(string $cardId)
{
$params = [
'card_id' => $cardId,
];
return $this->httpPostJson('card/code/getdepositcount', $params);
}
/**
* 核查code接口.
*
* @param string $cardId
* @param array $codes
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function check(string $cardId, array $codes)
{
$params = [
'card_id' => $cardId,
'code' => $codes,
];
return $this->httpPostJson('card/code/checkcode', $params);
}
/**
* 查询 Code 接口.
*
* @param string $code
* @param string $cardId
* @param bool $checkConsume
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function get(string $code, string $cardId = '', bool $checkConsume = true)
{
$params = [
'code' => $code,
'check_consume' => $checkConsume,
'card_id' => $cardId,
];
return $this->httpPostJson('card/code/get', $params);
}
/**
* 更改Code接口.
*
* @param string $code
* @param string $newCode
* @param string $cardId
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function update(string $code, string $newCode, string $cardId = '')
{
$params = [
'code' => $code,
'new_code' => $newCode,
'card_id' => $cardId,
];
return $this->httpPostJson('card/code/update', $params);
}
/**
* 设置卡券失效.
*
* @param string $code
* @param string $cardId
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function disable(string $code, string $cardId = '')
{
$params = [
'code' => $code,
'card_id' => $cardId,
];
return $this->httpPostJson('card/code/unavailable', $params);
}
/**
* 核销 Code 接口.
*
* @param string $code
* @param string|null $cardId
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function consume(string $code, string $cardId = null)
{
$params = [
'code' => $code,
];
if (!is_null($cardId)) {
$params['card_id'] = $cardId;
}
return $this->httpPostJson('card/code/consume', $params);
}
/**
* Code解码接口.
*
* @param string $encryptedCode
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function decrypt(string $encryptedCode)
{
$params = [
'encrypt_code' => $encryptedCode,
];
return $this->httpPostJson('card/code/decrypt', $params);
}
}

119
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/CoinClient.php

@ -0,0 +1,119 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Card;
use EasyWeChat\Kernel\BaseClient;
/**
* Class CoinClient.
*
* @author overtrue <i@overtrue.me>
*/
class CoinClient extends BaseClient
{
/**
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function activate()
{
return $this->httpGet('card/pay/activate');
}
/**
* @param string $cardId
* @param int $quantity
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getPrice(string $cardId, int $quantity)
{
return $this->httpPostJson('card/pay/getpayprice', [
'card_id' => $cardId,
'quantity' => $quantity,
]);
}
/**
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function summary()
{
return $this->httpGet('card/pay/getcoinsinfo');
}
/**
* @param int $count
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function recharge(int $count)
{
return $this->httpPostJson('card/pay/recharge', [
'coin_count' => $count,
]);
}
/**
* @param string $orderId
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function order(string $orderId)
{
return $this->httpPostJson('card/pay/getorder', ['order_id' => $orderId]);
}
/**
* @param array $filters
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function orders(array $filters)
{
return $this->httpPostJson('card/pay/getorderlist', $filters);
}
/**
* @param string $cardId
* @param string $orderId
* @param int $quantity
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function confirm(string $cardId, string $orderId, int $quantity)
{
return $this->httpPostJson('card/pay/confirm', [
'card_id' => $cardId,
'order_id' => $orderId,
'quantity' => $quantity,
]);
}
}

71
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/GeneralCardClient.php

@ -0,0 +1,71 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Card;
/**
* Class GeneralCardClient.
*
* @author overtrue <i@overtrue.me>
*/
class GeneralCardClient extends Client
{
/**
* 通用卡接口激活.
*
* @param array $info
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function activate(array $info = [])
{
return $this->httpPostJson('card/generalcard/activate', $info);
}
/**
* 通用卡撤销激活.
*
* @param string $cardId
* @param string $code
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function deactivate(string $cardId, string $code)
{
$params = [
'card_id' => $cardId,
'code' => $code,
];
return $this->httpPostJson('card/generalcard/unactivate', $params);
}
/**
* 更新会员信息.
*
* @param array $params
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function updateUser(array $params = [])
{
return $this->httpPostJson('card/generalcard/updateuser', $params);
}
}

74
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/GiftCardClient.php

@ -0,0 +1,74 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Card;
use EasyWeChat\Kernel\BaseClient;
/**
* Class GiftCardClient.
*
* @author overtrue <i@overtrue.me>
*/
class GiftCardClient extends BaseClient
{
/**
* 申请微信支付礼品卡权限接口.
*
* @param string $subMchId
*
* @return mixed
*/
public function add(string $subMchId)
{
$params = [
'sub_mch_id' => $subMchId,
];
return $this->httpPostJson('card/giftcard/pay/whitelist/add', $params);
}
/**
* 绑定商户号到礼品卡小程序接口(商户号必须为公众号申请的商户号,否则报错).
*
* @param string $subMchId
* @param string $wxaAppid
*
* @return mixed
*/
public function bind(string $subMchId, string $wxaAppid)
{
$params = [
'sub_mch_id' => $subMchId,
'wxa_appid' => $wxaAppid,
];
return $this->httpPostJson('card/giftcard/pay/submch/bind', $params);
}
/**
* 上传小程序代码.
*
* @param string $wxaAppid
* @param string $pageId
*
* @return mixed
*/
public function set(string $wxaAppid, string $pageId)
{
$params = [
'wxa_appid' => $wxaAppid,
'page_id' => $pageId,
];
return $this->httpPostJson('card/giftcard/wxa/set', $params);
}
}

78
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/GiftCardOrderClient.php

@ -0,0 +1,78 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Card;
use EasyWeChat\Kernel\BaseClient;
/**
* Class GiftCardOrderClient.
*
* @author overtrue <i@overtrue.me>
*/
class GiftCardOrderClient extends BaseClient
{
/**
* 查询-单个礼品卡订单信息接口.
*
* @param string $orderId
*
* @return mixed
*/
public function get(string $orderId)
{
$params = [
'order_id' => $orderId,
];
return $this->httpPostJson('card/giftcard/order/get', $params);
}
/**
* 查询-批量查询礼品卡订单信息接口.
*
* @param int $beginTime
* @param int $endTime
* @param int $offset
* @param int $count
* @param string $sortType
*
* @return mixed
*/
public function list(int $beginTime, int $endTime, int $offset = 0, int $count = 10, string $sortType = 'ASC')
{
$params = [
'begin_time' => $beginTime,
'end_time' => $endTime,
'sort_type' => $sortType,
'offset' => $offset,
'count' => $count,
];
return $this->httpPostJson('card/giftcard/order/batchget', $params);
}
/**
* 退款接口.
*
* @param string $orderId
*
* @return mixed
*/
public function refund(string $orderId)
{
$params = [
'order_id' => $orderId,
];
return $this->httpPostJson('card/giftcard/order/refund', $params);
}
}

102
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/GiftCardPageClient.php

@ -0,0 +1,102 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Card;
use EasyWeChat\Kernel\BaseClient;
/**
* Class GiftCardPageClient.
*
* @author overtrue <i@overtrue.me>
*/
class GiftCardPageClient extends BaseClient
{
/**
* 创建-礼品卡货架接口.
*
* @param array $attributes
*
* @return mixed
*/
public function add(array $attributes)
{
$params = [
'page' => $attributes,
];
return $this->httpPostJson('card/giftcard/page/add', $params);
}
/**
* 查询-礼品卡货架信息接口.
*
* @param string $pageId
*
* @return mixed
*/
public function get(string $pageId)
{
$params = [
'page_id' => $pageId,
];
return $this->httpPostJson('card/giftcard/page/get', $params);
}
/**
* 修改-礼品卡货架信息接口.
*
* @param string $pageId
* @param string $bannerPicUrl
* @param array $themeList
*
* @return mixed
*/
public function update(string $pageId, string $bannerPicUrl, array $themeList)
{
$params = [
'page' => [
'page_id' => $pageId,
'banner_pic_url' => $bannerPicUrl,
'theme_list' => $themeList,
],
];
return $this->httpPostJson('card/giftcard/page/update', $params);
}
/**
* 查询-礼品卡货架列表接口.
*
* @return mixed
*/
public function list()
{
return $this->httpPostJson('card/giftcard/page/batchget');
}
/**
* 下架-礼品卡货架接口(下架某一个货架或者全部货架).
*
* @param string $pageId
*
* @return mixed
*/
public function setMaintain(string $pageId = '')
{
$params = ($pageId ? ['page_id' => $pageId] : ['all' => true]) + [
'maintain' => true,
];
return $this->httpPostJson('card/giftcard/maintain/set', $params);
}
}

113
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/InvoiceClient.php

@ -0,0 +1,113 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Card;
use EasyWeChat\Kernel\BaseClient;
/**
* Class InvoiceClient.
*
* @author overtrue <i@overtrue.me>
*/
class InvoiceClient extends BaseClient
{
/**
* 设置支付后开票信息接口.
*
* @param string $mchid
* @param string $sPappid
*
* @return mixed
*/
public function set(string $mchid, string $sPappid)
{
$params = [
'paymch_info' => [
'mchid' => $mchid,
's_pappid' => $sPappid,
],
];
return $this->setBizAttr('set_pay_mch', $params);
}
/**
* 查询支付后开票信息接口.
*
* @return mixed
*/
public function get()
{
return $this->setBizAttr('get_pay_mch');
}
/**
* 设置授权页字段信息接口.
*
* @param array $userData
* @param array $bizData
*
* @return mixed
*/
public function setAuthField(array $userData, array $bizData)
{
$params = [
'auth_field' => [
'user_field' => $userData,
'biz_field' => $bizData,
],
];
return $this->setBizAttr('set_auth_field', $params);
}
/**
* 查询授权页字段信息接口.
*
* @return mixed
*/
public function getAuthField()
{
return $this->setBizAttr('get_auth_field');
}
/**
* 查询开票信息.
*
* @param string $orderId
* @param string $appId
*
* @return mixed
*/
public function getAuthData(string $appId, string $orderId)
{
$params = [
'order_id' => $orderId,
's_appid' => $appId,
];
return $this->httpPost('card/invoice/getauthdata', $params);
}
/**
* @param string $action
* @param array $params
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
private function setBizAttr(string $action, array $params = [])
{
return $this->httpPostJson('card/invoice/setbizattr', $params, ['action' => $action]);
}
}

85
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/JssdkClient.php

@ -0,0 +1,85 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Card;
use EasyWeChat\BasicService\Jssdk\Client as Jssdk;
use EasyWeChat\Kernel\Support\Arr;
use function EasyWeChat\Kernel\Support\str_random;
/**
* Class Jssdk.
*
* @author overtrue <i@overtrue.me>
*/
class JssdkClient extends Jssdk
{
/**
* @param bool $refresh
* @param string $type
*
* @return array
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
* @throws \Psr\SimpleCache\InvalidArgumentException
*/
public function getTicket(bool $refresh = false, string $type = 'wx_card'): array
{
return parent::getTicket($refresh, $type);
}
/**
* 微信卡券:JSAPI 卡券发放.
*
* @param array $cards
*
* @return string
*/
public function assign(array $cards)
{
return json_encode(array_map(function ($card) {
return $this->attachExtension($card['card_id'], $card);
}, $cards));
}
/**
* 生成 js添加到卡包 需要的 card_list 项.
*
* @param string $cardId
* @param array $extension
*
* @return array
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
* @throws \Psr\SimpleCache\InvalidArgumentException
*/
public function attachExtension($cardId, array $extension = [])
{
$timestamp = time();
$nonce = str_random(6);
$ticket = $this->getTicket()['ticket'];
$ext = array_merge(['timestamp' => $timestamp, 'nonce_str' => $nonce], Arr::only(
$extension,
['code', 'openid', 'outer_id', 'balance', 'fixed_begintimestamp', 'outer_str']
));
$ext['signature'] = $this->dictionaryOrderSignature($ticket, $timestamp, $cardId, $ext['code'] ?? '', $ext['openid'] ?? '', $nonce);
return [
'cardId' => $cardId,
'cardExt' => json_encode($ext),
];
}
}

33
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/MeetingTicketClient.php

@ -0,0 +1,33 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Card;
/**
* Class MeetingTicketClient.
*
* @author overtrue <i@overtrue.me>
*/
class MeetingTicketClient extends Client
{
/**
* @param array $params
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function updateUser(array $params)
{
return $this->httpPostJson('card/meetingticket/updateuser', $params);
}
}

123
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/MemberCardClient.php

@ -0,0 +1,123 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Card;
/**
* Class MemberCardClient.
*
* @author overtrue <i@overtrue.me>
*/
class MemberCardClient extends Client
{
/**
* 会员卡接口激活.
*
* @param array $info
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function activate(array $info = [])
{
return $this->httpPostJson('card/membercard/activate', $info);
}
/**
* 设置开卡字段接口.
*
* @param string $cardId
* @param array $settings
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function setActivationForm(string $cardId, array $settings)
{
$params = array_merge(['card_id' => $cardId], $settings);
return $this->httpPostJson('card/membercard/activateuserform/set', $params);
}
/**
* 拉取会员信息接口.
*
* @param string $cardId
* @param string $code
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getUser(string $cardId, string $code)
{
$params = [
'card_id' => $cardId,
'code' => $code,
];
return $this->httpPostJson('card/membercard/userinfo/get', $params);
}
/**
* 更新会员信息.
*
* @param array $params
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function updateUser(array $params = [])
{
return $this->httpPostJson('card/membercard/updateuser', $params);
}
/**
* 获取用户提交资料.
*
* @param string $activateTicket
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getActivationForm($activateTicket)
{
$params = [
'activate_ticket' => $activateTicket,
];
return $this->httpPostJson('card/membercard/activatetempinfo/get', $params);
}
/**
* 获取开卡组件链接接口.
*
* @param array $params 包含会员卡ID和随机字符串
*
* @return string 开卡组件链接
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getActivateUrl(array $params = [])
{
return $this->httpPostJson('card/membercard/activate/geturl', $params);
}
}

33
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/MovieTicketClient.php

@ -0,0 +1,33 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Card;
/**
* Class MovieTicketClient.
*
* @author overtrue <i@overtrue.me>
*/
class MovieTicketClient extends Client
{
/**
* @param array $params
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function updateUser(array $params)
{
return $this->httpPostJson('card/movieticket/updateuser', $params);
}
}

89
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/ServiceProvider.php

@ -0,0 +1,89 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Card;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author overtrue <i@overtrue.me>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['card'] = function ($app) {
return new Card($app);
};
$app['card.client'] = function ($app) {
return new Client($app);
};
$app['card.coin'] = function ($app) {
return new CoinClient($app);
};
$app['card.sub_merchant'] = function ($app) {
return new SubMerchantClient($app);
};
$app['card.code'] = function ($app) {
return new CodeClient($app);
};
$app['card.movie_ticket'] = function ($app) {
return new MovieTicketClient($app);
};
$app['card.member_card'] = function ($app) {
return new MemberCardClient($app);
};
$app['card.general_card'] = function ($app) {
return new GeneralCardClient($app);
};
$app['card.boarding_pass'] = function ($app) {
return new BoardingPassClient($app);
};
$app['card.meeting_ticket'] = function ($app) {
return new MeetingTicketClient($app);
};
$app['card.jssdk'] = function ($app) {
return new JssdkClient($app);
};
$app['card.gift_card'] = function ($app) {
return new GiftCardClient($app);
};
$app['card.gift_card_order'] = function ($app) {
return new GiftCardOrderClient($app);
};
$app['card.gift_card_page'] = function ($app) {
return new GiftCardPageClient($app);
};
$app['card.invoice'] = function ($app) {
return new InvoiceClient($app);
};
}
}

121
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Card/SubMerchantClient.php

@ -0,0 +1,121 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Card;
use EasyWeChat\Kernel\BaseClient;
use EasyWeChat\Kernel\Support\Arr;
/**
* Class SubMerchantClient.
*
* @author overtrue <i@overtrue.me>
*/
class SubMerchantClient extends BaseClient
{
/**
* 添加子商户.
*
* @param array $info
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function create(array $info = [])
{
$params = [
'info' => Arr::only($info, [
'brand_name',
'logo_url',
'protocol',
'end_time',
'primary_category_id',
'secondary_category_id',
'agreement_media_id',
'operator_media_id',
'app_id',
]),
];
return $this->httpPostJson('card/submerchant/submit', $params);
}
/**
* 更新子商户.
*
* @param int $merchantId
* @param array $info
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function update(int $merchantId, array $info = [])
{
$params = [
'info' => array_merge(['merchant_id' => $merchantId],
Arr::only($info, [
'brand_name',
'logo_url',
'protocol',
'end_time',
'primary_category_id',
'secondary_category_id',
'agreement_media_id',
'operator_media_id',
'app_id',
])),
];
return $this->httpPostJson('card/submerchant/update', $params);
}
/**
* 获取子商户信息.
*
* @param int $merchantId
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function get(int $merchantId)
{
return $this->httpPostJson('card/submerchant/get', ['merchant_id' => $merchantId]);
}
/**
* 批量获取子商户信息.
*
* @param int $beginId
* @param int $limit
* @param string $status
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function list(int $beginId = 0, int $limit = 50, string $status = 'CHECKING')
{
$params = [
'begin_id' => $beginId,
'limit' => $limit,
'status' => $status,
];
return $this->httpPostJson('card/submerchant/batchget', $params);
}
}

208
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Comment/Client.php

@ -0,0 +1,208 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Comment;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @author overtrue <i@overtrue.me>
*/
class Client extends BaseClient
{
/**
* Open article comment.
*
* @param string $msgId
* @param int|null $index
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function open(string $msgId, int $index = null)
{
$params = [
'msg_data_id' => $msgId,
'index' => $index,
];
return $this->httpPostJson('cgi-bin/comment/open', $params);
}
/**
* Close comment.
*
* @param string $msgId
* @param int|null $index
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function close(string $msgId, int $index = null)
{
$params = [
'msg_data_id' => $msgId,
'index' => $index,
];
return $this->httpPostJson('cgi-bin/comment/close', $params);
}
/**
* Get article comments.
*
* @param string $msgId
* @param int $index
* @param int $begin
* @param int $count
* @param int $type
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function list(string $msgId, int $index, int $begin, int $count, int $type = 0)
{
$params = [
'msg_data_id' => $msgId,
'index' => $index,
'begin' => $begin,
'count' => $count,
'type' => $type,
];
return $this->httpPostJson('cgi-bin/comment/list', $params);
}
/**
* Mark elect comment.
*
* @param string $msgId
* @param int $index
* @param int $commentId
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function markElect(string $msgId, int $index, int $commentId)
{
$params = [
'msg_data_id' => $msgId,
'index' => $index,
'user_comment_id' => $commentId,
];
return $this->httpPostJson('cgi-bin/comment/markelect', $params);
}
/**
* Unmark elect comment.
*
* @param string $msgId
* @param int $index
* @param int $commentId
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function unmarkElect(string $msgId, int $index, int $commentId)
{
$params = [
'msg_data_id' => $msgId,
'index' => $index,
'user_comment_id' => $commentId,
];
return $this->httpPostJson('cgi-bin/comment/unmarkelect', $params);
}
/**
* Delete comment.
*
* @param string $msgId
* @param int $index
* @param int $commentId
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function delete(string $msgId, int $index, int $commentId)
{
$params = [
'msg_data_id' => $msgId,
'index' => $index,
'user_comment_id' => $commentId,
];
return $this->httpPostJson('cgi-bin/comment/delete', $params);
}
/**
* Reply to a comment.
*
* @param string $msgId
* @param int $index
* @param int $commentId
* @param string $content
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function reply(string $msgId, int $index, int $commentId, string $content)
{
$params = [
'msg_data_id' => $msgId,
'index' => $index,
'user_comment_id' => $commentId,
'content' => $content,
];
return $this->httpPostJson('cgi-bin/comment/reply/add', $params);
}
/**
* Delete a reply.
*
* @param string $msgId
* @param int $index
* @param int $commentId
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function deleteReply(string $msgId, int $index, int $commentId)
{
$params = [
'msg_data_id' => $msgId,
'index' => $index,
'user_comment_id' => $commentId,
];
return $this->httpPostJson('cgi-bin/comment/reply/delete', $params);
}
}

44
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Comment/ServiceProvider.php

@ -0,0 +1,44 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
/**
* ServiceProvider.php.
*
* This file is part of the wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Comment;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author overtrue <i@overtrue.me>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['comment'] = function ($app) {
return new Client($app);
};
}
}

230
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/CustomerService/Client.php

@ -0,0 +1,230 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\CustomerService;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @author overtrue <i@overtrue.me>
*/
class Client extends BaseClient
{
/**
* List all staffs.
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function list()
{
return $this->httpGet('cgi-bin/customservice/getkflist');
}
/**
* List all online staffs.
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function online()
{
return $this->httpGet('cgi-bin/customservice/getonlinekflist');
}
/**
* Create a staff.
*
* @param string $account
* @param string $nickname
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function create(string $account, string $nickname)
{
$params = [
'kf_account' => $account,
'nickname' => $nickname,
];
return $this->httpPostJson('customservice/kfaccount/add', $params);
}
/**
* Update a staff.
*
* @param string $account
* @param string $nickname
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function update(string $account, string $nickname)
{
$params = [
'kf_account' => $account,
'nickname' => $nickname,
];
return $this->httpPostJson('customservice/kfaccount/update', $params);
}
/**
* Delete a staff.
*
* @param string $account
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function delete(string $account)
{
return $this->httpPostJson('customservice/kfaccount/del', [], ['kf_account' => $account]);
}
/**
* Invite a staff.
*
* @param string $account
* @param string $wechatId
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function invite(string $account, string $wechatId)
{
$params = [
'kf_account' => $account,
'invite_wx' => $wechatId,
];
return $this->httpPostJson('customservice/kfaccount/inviteworker', $params);
}
/**
* Set staff avatar.
*
* @param string $account
* @param string $path
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function setAvatar(string $account, string $path)
{
return $this->httpUpload('customservice/kfaccount/uploadheadimg', ['media' => $path], [], ['kf_account' => $account]);
}
/**
* Get message builder.
*
* @param \EasyWeChat\Kernel\Messages\Message|string $message
*
* @return \EasyWeChat\OfficialAccount\CustomerService\Messenger
*/
public function message($message)
{
$messageBuilder = new Messenger($this);
return $messageBuilder->message($message);
}
/**
* Send a message.
*
* @param array $message
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function send(array $message)
{
return $this->httpPostJson('cgi-bin/message/custom/send', $message);
}
/**
* Show typing status.
*
* @param string $openid
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function showTypingStatusToUser(string $openid)
{
return $this->httpPostJson('cgi-bin/message/custom/typing', [
'touser' => $openid,
'command' => 'Typing',
]);
}
/**
* Hide typing status.
*
* @param string $openid
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function hideTypingStatusToUser(string $openid)
{
return $this->httpPostJson('cgi-bin/message/custom/typing', [
'touser' => $openid,
'command' => 'CancelTyping',
]);
}
/**
* Get messages history.
*
* @param int $startTime
* @param int $endTime
* @param int $msgId
* @param int $number
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function messages($startTime, $endTime, int $msgId = 1, int $number = 10000)
{
$params = [
'starttime' => is_numeric($startTime) ? $startTime : strtotime($startTime),
'endtime' => is_numeric($endTime) ? $endTime : strtotime($endTime),
'msgid' => $msgId,
'number' => $number,
];
return $this->httpPostJson('customservice/msgrecord/getmsglist', $params);
}
}

165
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/CustomerService/Messenger.php

@ -0,0 +1,165 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\CustomerService;
use EasyWeChat\Kernel\Exceptions\RuntimeException;
use EasyWeChat\Kernel\Messages\Message;
use EasyWeChat\Kernel\Messages\Raw as RawMessage;
use EasyWeChat\Kernel\Messages\Text;
/**
* Class MessageBuilder.
*
* @author overtrue <i@overtrue.me>
*/
class Messenger
{
/**
* Messages to send.
*
* @var \EasyWeChat\Kernel\Messages\Message;
*/
protected $message;
/**
* Messages target user open id.
*
* @var string
*/
protected $to;
/**
* Messages sender staff id.
*
* @var string
*/
protected $account;
/**
* Customer service instance.
*
* @var \EasyWeChat\OfficialAccount\CustomerService\Client
*/
protected $client;
/**
* MessageBuilder constructor.
*
* @param \EasyWeChat\OfficialAccount\CustomerService\Client $client
*/
public function __construct(Client $client)
{
$this->client = $client;
}
/**
* Set message to send.
*
* @param string|Message $message
*
* @return Messenger
*/
public function message($message)
{
if (is_string($message)) {
$message = new Text($message);
}
$this->message = $message;
return $this;
}
/**
* Set staff account to send message.
*
* @param string $account
*
* @return Messenger
*/
public function by(string $account)
{
$this->account = $account;
return $this;
}
/**
* @param string $account
*
* @return Messenger
*/
public function from(string $account)
{
return $this->by($account);
}
/**
* Set target user open id.
*
* @param string $openid
*
* @return Messenger
*/
public function to($openid)
{
$this->to = $openid;
return $this;
}
/**
* Send the message.
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \EasyWeChat\Kernel\Exceptions\RuntimeException
*/
public function send()
{
if (empty($this->message)) {
throw new RuntimeException('No message to send.');
}
if ($this->message instanceof RawMessage) {
$message = json_decode($this->message->get('content'), true);
} else {
$prepends = [
'touser' => $this->to,
];
if ($this->account) {
$prepends['customservice'] = ['kf_account' => $this->account];
}
$message = $this->message->transformForJsonRequest($prepends);
}
return $this->client->send($message);
}
/**
* Return property.
*
* @param string $property
*
* @return mixed
*/
public function __get(string $property)
{
if (property_exists($this, $property)) {
return $this->$property;
}
return null;
}
}

37
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/CustomerService/ServiceProvider.php

@ -0,0 +1,37 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\CustomerService;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author overtrue <i@overtrue.me>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['customer_service'] = function ($app) {
return new Client($app);
};
$app['customer_service_session'] = function ($app) {
return new SessionClient($app);
};
}
}

104
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/CustomerService/SessionClient.php

@ -0,0 +1,104 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\CustomerService;
use EasyWeChat\Kernel\BaseClient;
/**
* Class SessionClient.
*
* @author overtrue <i@overtrue.me>
*/
class SessionClient extends BaseClient
{
/**
* List all sessions of $account.
*
* @param string $account
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function list(string $account)
{
return $this->httpGet('customservice/kfsession/getsessionlist', ['kf_account' => $account]);
}
/**
* List all the people waiting.
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function waiting()
{
return $this->httpGet('customservice/kfsession/getwaitcase');
}
/**
* Create a session.
*
* @param string $account
* @param string $openid
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function create(string $account, string $openid)
{
$params = [
'kf_account' => $account,
'openid' => $openid,
];
return $this->httpPostJson('customservice/kfsession/create', $params);
}
/**
* Close a session.
*
* @param string $account
* @param string $openid
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function close(string $account, string $openid)
{
$params = [
'kf_account' => $account,
'openid' => $openid,
];
return $this->httpPostJson('customservice/kfsession/close', $params);
}
/**
* Get a session.
*
* @param string $openid
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function get(string $openid)
{
return $this->httpGet('customservice/kfsession/getsession', ['openid' => $openid]);
}
}

340
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/DataCube/Client.php

@ -0,0 +1,340 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\DataCube;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @author overtrue <i@overtrue.me>
*/
class Client extends BaseClient
{
/**
* 获取用户增减数据.
*
* @param string $from
* @param string $to
*
* @return mixed
*/
public function userSummary(string $from, string $to)
{
return $this->query('datacube/getusersummary', $from, $to);
}
/**
* 获取累计用户数据.
*
* @param string $from
* @param string $to
*
* @return mixed
*/
public function userCumulate(string $from, string $to)
{
return $this->query('datacube/getusercumulate', $from, $to);
}
/**
* 获取图文群发每日数据.
*
* @param string $from
* @param string $to
*
* @return mixed
*/
public function articleSummary(string $from, string $to)
{
return $this->query('datacube/getarticlesummary', $from, $to);
}
/**
* 获取图文群发总数据.
*
* @param string $from
* @param string $to
*
* @return mixed
*/
public function articleTotal(string $from, string $to)
{
return $this->query('datacube/getarticletotal', $from, $to);
}
/**
* 获取图文统计数据.
*
* @param string $from
* @param string $to
*
* @return mixed
*/
public function userReadSummary(string $from, string $to)
{
return $this->query('datacube/getuserread', $from, $to);
}
/**
* 获取图文统计分时数据.
*
* @param string $from
* @param string $to
*
* @return mixed
*/
public function userReadHourly(string $from, string $to)
{
return $this->query('datacube/getuserreadhour', $from, $to);
}
/**
* 获取图文分享转发数据.
*
* @param string $from
* @param string $to
*
* @return mixed
*/
public function userShareSummary(string $from, string $to)
{
return $this->query('datacube/getusershare', $from, $to);
}
/**
* 获取图文分享转发分时数据.
*
* @param string $from
* @param string $to
*
* @return mixed
*/
public function userShareHourly(string $from, string $to)
{
return $this->query('datacube/getusersharehour', $from, $to);
}
/**
* 获取消息发送概况数据.
*
* @param string $from
* @param string $to
*
* @return mixed
*/
public function upstreamMessageSummary(string $from, string $to)
{
return $this->query('datacube/getupstreammsg', $from, $to);
}
/**
* 获取消息分送分时数据.
*
* @param string $from
* @param string $to
*
* @return mixed
*/
public function upstreamMessageHourly(string $from, string $to)
{
return $this->query('datacube/getupstreammsghour', $from, $to);
}
/**
* 获取消息发送周数据.
*
* @param string $from
* @param string $to
*
* @return mixed
*/
public function upstreamMessageWeekly(string $from, string $to)
{
return $this->query('datacube/getupstreammsgweek', $from, $to);
}
/**
* 获取消息发送月数据.
*
* @param string $from
* @param string $to
*
* @return mixed
*/
public function upstreamMessageMonthly(string $from, string $to)
{
return $this->query('datacube/getupstreammsgmonth', $from, $to);
}
/**
* 获取消息发送分布数据.
*
* @param string $from
* @param string $to
*
* @return mixed
*/
public function upstreamMessageDistSummary(string $from, string $to)
{
return $this->query('datacube/getupstreammsgdist', $from, $to);
}
/**
* 获取消息发送分布周数据.
*
* @param string $from
* @param string $to
*
* @return mixed
*/
public function upstreamMessageDistWeekly(string $from, string $to)
{
return $this->query('datacube/getupstreammsgdistweek', $from, $to);
}
/**
* 获取消息发送分布月数据.
*
* @param string $from
* @param string $to
*
* @return mixed
*/
public function upstreamMessageDistMonthly(string $from, string $to)
{
return $this->query('datacube/getupstreammsgdistmonth', $from, $to);
}
/**
* 获取接口分析数据.
*
* @param string $from
* @param string $to
*
* @return mixed
*/
public function interfaceSummary(string $from, string $to)
{
return $this->query('datacube/getinterfacesummary', $from, $to);
}
/**
* 获取接口分析分时数据.
*
* @param string $from
* @param string $to
*
* @return mixed
*/
public function interfaceSummaryHourly(string $from, string $to)
{
return $this->query('datacube/getinterfacesummaryhour', $from, $to);
}
/**
* 拉取卡券概况数据接口.
*
* @param string $from
* @param string $to
* @param int $condSource
*
* @return mixed
*/
public function cardSummary(string $from, string $to, $condSource = 0)
{
$ext = [
'cond_source' => intval($condSource),
];
return $this->query('datacube/getcardbizuininfo', $from, $to, $ext);
}
/**
* 获取免费券数据接口.
*
* @param string $from
* @param string $to
* @param int $condSource
* @param string $cardId
*
* @return mixed
*/
public function freeCardSummary(string $from, string $to, int $condSource = 0, string $cardId = '')
{
$ext = [
'cond_source' => intval($condSource),
'card_id' => $cardId,
];
return $this->query('datacube/getcardcardinfo', $from, $to, $ext);
}
/**
* 拉取会员卡数据接口.
*
* @param string $from
* @param string $to
* @param int $condSource
*
* @return mixed
*/
public function memberCardSummary(string $from, string $to, $condSource = 0)
{
$ext = [
'cond_source' => intval($condSource),
];
return $this->query('datacube/getcardmembercardinfo', $from, $to, $ext);
}
/**
* 拉取单张会员卡数据接口.
*
* @param string $from
* @param string $to
* @param string $cardId
*
* @return mixed
*/
public function memberCardSummaryById(string $from, string $to, string $cardId)
{
$ext = [
'card_id' => $cardId,
];
return $this->query('datacube/getcardmembercarddetail', $from, $to, $ext);
}
/**
* 查询数据.
*
* @param string $api
* @param string $from
* @param string $to
* @param array $ext
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
protected function query(string $api, string $from, string $to, array $ext = [])
{
$params = array_merge([
'begin_date' => $from,
'end_date' => $to,
], $ext);
return $this->httpPostJson($api, $params);
}
}

33
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/DataCube/ServiceProvider.php

@ -0,0 +1,33 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\DataCube;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author overtrue <i@overtrue.me>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['data_cube'] = function ($app) {
return new Client($app);
};
}
}

251
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Device/Client.php

@ -0,0 +1,251 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Device;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @see http://iot.weixin.qq.com/wiki/new/index.html
*
* @author soone <66812590@qq.com>
*/
class Client extends BaseClient
{
/**
* @param string $deviceId
* @param string $openid
* @param string $content
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function message(string $deviceId, string $openid, string $content)
{
$params = [
'device_type' => $this->app['config']['device_type'],
'device_id' => $deviceId,
'open_id' => $openid,
'content' => base64_encode($content),
];
return $this->httpPostJson('device/transmsg', $params);
}
/**
* Get device qrcode.
*
* @param array $deviceIds
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function qrCode(array $deviceIds)
{
$params = [
'device_num' => count($deviceIds),
'device_id_list' => $deviceIds,
];
return $this->httpPostJson('device/create_qrcode', $params);
}
/**
* @param array $devices
* @param string $productId
* @param int $opType
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function authorize(array $devices, string $productId, int $opType = 0)
{
$params = [
'device_num' => count($devices),
'device_list' => $devices,
'op_type' => $opType,
'product_id' => $productId,
];
return $this->httpPostJson('device/authorize_device', $params);
}
/**
* 获取 device id 和二维码
*
* @param string $productId
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function createId(string $productId)
{
$params = [
'product_id' => $productId,
];
return $this->httpGet('device/getqrcode', $params);
}
/**
* @param string $openid
* @param string $deviceId
* @param string $ticket
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function bind(string $openid, string $deviceId, string $ticket)
{
$params = [
'ticket' => $ticket,
'device_id' => $deviceId,
'openid' => $openid,
];
return $this->httpPostJson('device/bind', $params);
}
/**
* @param string $openid
* @param string $deviceId
* @param string $ticket
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function unbind(string $openid, string $deviceId, string $ticket)
{
$params = [
'ticket' => $ticket,
'device_id' => $deviceId,
'openid' => $openid,
];
return $this->httpPostJson('device/unbind', $params);
}
/**
* @param string $openid
* @param string $deviceId
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function forceBind(string $openid, string $deviceId)
{
$params = [
'device_id' => $deviceId,
'openid' => $openid,
];
return $this->httpPostJson('device/compel_bind', $params);
}
/**
* @param string $openid
* @param string $deviceId
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function forceUnbind(string $openid, string $deviceId)
{
$params = [
'device_id' => $deviceId,
'openid' => $openid,
];
return $this->httpPostJson('device/compel_unbind', $params);
}
/**
* @param string $deviceId
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function status(string $deviceId)
{
$params = [
'device_id' => $deviceId,
];
return $this->httpGet('device/get_stat', $params);
}
/**
* @param string $ticket
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function verify(string $ticket)
{
$params = [
'ticket' => $ticket,
];
return $this->httpPost('device/verify_qrcode', $params);
}
/**
* @param string $deviceId
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function openid(string $deviceId)
{
$params = [
'device_type' => $this->app['config']['device_type'],
'device_id' => $deviceId,
];
return $this->httpGet('device/get_openid', $params);
}
/**
* @param string $openid
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function listByOpenid(string $openid)
{
$params = [
'openid' => $openid,
];
return $this->httpGet('device/get_bind_device', $params);
}
}

33
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Device/ServiceProvider.php

@ -0,0 +1,33 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Device;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author soone <66812590@qq.com
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['device'] = function ($app) {
return new Client($app);
};
}
}

113
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Goods/Client.php

@ -0,0 +1,113 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Goods;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @author her-cat <hxhsoft@foxmail.com>
*/
class Client extends BaseClient
{
/**
* Add the goods.
*
* @param array $data
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function add(array $data)
{
return $this->httpPostJson('scan/product/v2/add', [
'product' => $data,
]);
}
/**
* Update the goods.
*
* @param array $data
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function update(array $data)
{
return $this->httpPostJson('scan/product/v2/add', [
'product' => $data,
]);
}
/**
* Get add or update goods results.
*
* @param string $ticket
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function status(string $ticket)
{
return $this->httpPostJson('scan/product/v2/status', [
'status_ticket' => $ticket,
]);
}
/**
* Get goods information.
*
* @param string $pid
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function get(string $pid)
{
return $this->httpPostJson('scan/product/v2/getinfo', [
'product' => [
'pid' => $pid,
],
]);
}
/**
* Get a list of goods.
*
* @param string $context
* @param int $page
* @param int $size
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function list(string $context = '', int $page = 1, int $size = 10)
{
return $this->httpPostJson('scan/product/v2/getinfobypage', [
'page_context' => $context,
'page_num' => $page,
'page_size' => $size,
]);
}
}

33
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Goods/ServiceProvider.php

@ -0,0 +1,33 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Goods;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author her-cat <hxhsoft@foxmail.com>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['goods'] = function ($app) {
return new Client($app);
};
}
}

301
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Material/Client.php

@ -0,0 +1,301 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Material;
use EasyWeChat\Kernel\BaseClient;
use EasyWeChat\Kernel\Exceptions\InvalidArgumentException;
use EasyWeChat\Kernel\Http\StreamResponse;
use EasyWeChat\Kernel\Messages\Article;
/**
* Class Client.
*
* @author overtrue <i@overtrue.me>
*/
class Client extends BaseClient
{
/**
* Allow media type.
*
* @var array
*/
protected $allowTypes = ['image', 'voice', 'video', 'thumb', 'news_image'];
/**
* Upload image.
*
* @param string $path
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function uploadImage(string $path)
{
return $this->upload('image', $path);
}
/**
* Upload voice.
*
* @param string $path
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function uploadVoice(string $path)
{
return $this->upload('voice', $path);
}
/**
* Upload thumb.
*
* @param string $path
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function uploadThumb(string $path)
{
return $this->upload('thumb', $path);
}
/**
* Upload video.
*
* @param string $path
* @param string $title
* @param string $description
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function uploadVideo(string $path, string $title, string $description)
{
$params = [
'description' => json_encode(
[
'title' => $title,
'introduction' => $description,
], JSON_UNESCAPED_UNICODE),
];
return $this->upload('video', $path, $params);
}
/**
* Upload articles.
*
* @param array|Article $articles
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function uploadArticle($articles)
{
if ($articles instanceof Article || !empty($articles['title'])) {
$articles = [$articles];
}
$params = ['articles' => array_map(function ($article) {
if ($article instanceof Article) {
return $article->transformForJsonRequestWithoutType();
}
return $article;
}, $articles)];
return $this->httpPostJson('cgi-bin/material/add_news', $params);
}
/**
* Update article.
*
* @param string $mediaId
* @param array|Article $article
* @param int $index
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function updateArticle(string $mediaId, $article, int $index = 0)
{
if ($article instanceof Article) {
$article = $article->transformForJsonRequestWithoutType();
}
$params = [
'media_id' => $mediaId,
'index' => $index,
'articles' => isset($article['title']) ? $article : (isset($article[$index]) ? $article[$index] : []),
];
return $this->httpPostJson('cgi-bin/material/update_news', $params);
}
/**
* Upload image for article.
*
* @param string $path
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function uploadArticleImage(string $path)
{
return $this->upload('news_image', $path);
}
/**
* Fetch material.
*
* @param string $mediaId
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function get(string $mediaId)
{
$response = $this->requestRaw('cgi-bin/material/get_material', 'POST', ['json' => ['media_id' => $mediaId]]);
if (false !== stripos($response->getHeaderLine('Content-disposition'), 'attachment')) {
return StreamResponse::buildFromPsrResponse($response);
}
return $this->castResponseToType($response, $this->app['config']->get('response_type'));
}
/**
* Delete material by media ID.
*
* @param string $mediaId
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function delete(string $mediaId)
{
return $this->httpPostJson('cgi-bin/material/del_material', ['media_id' => $mediaId]);
}
/**
* List materials.
*
* example:
*
* {
* "total_count": TOTAL_COUNT,
* "item_count": ITEM_COUNT,
* "item": [{
* "media_id": MEDIA_ID,
* "name": NAME,
* "update_time": UPDATE_TIME
* },
* // more...
* ]
* }
*
* @param string $type
* @param int $offset
* @param int $count
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function list(string $type, int $offset = 0, int $count = 20)
{
$params = [
'type' => $type,
'offset' => $offset,
'count' => $count,
];
return $this->httpPostJson('cgi-bin/material/batchget_material', $params);
}
/**
* Get stats of materials.
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function stats()
{
return $this->httpGet('cgi-bin/material/get_materialcount');
}
/**
* Upload material.
*
* @param string $type
* @param string $path
* @param array $form
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function upload(string $type, string $path, array $form = [])
{
if (!file_exists($path) || !is_readable($path)) {
throw new InvalidArgumentException(sprintf('File does not exist, or the file is unreadable: "%s"', $path));
}
$form['type'] = $type;
return $this->httpUpload($this->getApiByType($type), ['media' => $path], $form);
}
/**
* Get API by type.
*
* @param string $type
*
* @return string
*/
public function getApiByType(string $type)
{
switch ($type) {
case 'news_image':
return 'cgi-bin/media/uploadimg';
default:
return 'cgi-bin/material/add_material';
}
}
}

44
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Material/ServiceProvider.php

@ -0,0 +1,44 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
/**
* ServiceProvider.php.
*
* This file is part of the wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Material;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author overtrue <i@overtrue.me>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['material'] = function ($app) {
return new Client($app);
};
}
}

103
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Menu/Client.php

@ -0,0 +1,103 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Menu;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @author overtrue <i@overtrue.me>
*/
class Client extends BaseClient
{
/**
* Get all menus.
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function list()
{
return $this->httpGet('cgi-bin/menu/get');
}
/**
* Get current menus.
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function current()
{
return $this->httpGet('cgi-bin/get_current_selfmenu_info');
}
/**
* Add menu.
*
* @param array $buttons
* @param array $matchRule
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function create(array $buttons, array $matchRule = [])
{
if (!empty($matchRule)) {
return $this->httpPostJson('cgi-bin/menu/addconditional', [
'button' => $buttons,
'matchrule' => $matchRule,
]);
}
return $this->httpPostJson('cgi-bin/menu/create', ['button' => $buttons]);
}
/**
* Destroy menu.
*
* @param int $menuId
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function delete(int $menuId = null)
{
if (is_null($menuId)) {
return $this->httpGet('cgi-bin/menu/delete');
}
return $this->httpPostJson('cgi-bin/menu/delconditional', ['menuid' => $menuId]);
}
/**
* Test conditional menu.
*
* @param string $userId
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function match(string $userId)
{
return $this->httpPostJson('cgi-bin/menu/trymatch', ['user_id' => $userId]);
}
}

33
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Menu/ServiceProvider.php

@ -0,0 +1,33 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Menu;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author overtrue <i@overtrue.me>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['menu'] = function ($app) {
return new Client($app);
};
}
}

66
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/OAuth/ServiceProvider.php

@ -0,0 +1,66 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\OAuth;
use Overtrue\Socialite\SocialiteManager as Socialite;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author overtrue <i@overtrue.me>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['oauth'] = function ($app) {
$socialite = (new Socialite([
'wechat' => [
'client_id' => $app['config']['app_id'],
'client_secret' => $app['config']['secret'],
'redirect' => $this->prepareCallbackUrl($app),
],
], $app['request']))->driver('wechat');
$scopes = (array) $app['config']->get('oauth.scopes', ['snsapi_userinfo']);
if (!empty($scopes)) {
$socialite->scopes($scopes);
}
return $socialite;
};
}
/**
* Prepare the OAuth callback url for wechat.
*
* @param Container $app
*
* @return string
*/
private function prepareCallbackUrl($app)
{
$callback = $app['config']->get('oauth.callback');
if (0 === stripos($callback, 'http')) {
return $callback;
}
$baseUrl = $app['request']->getSchemeAndHttpHost();
return $baseUrl.'/'.ltrim($callback, '/');
}
}

85
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/OCR/Client.php

@ -0,0 +1,85 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\OCR;
use EasyWeChat\Kernel\BaseClient;
use EasyWeChat\Kernel\Exceptions\InvalidArgumentException;
/**
* Class Client.
*
* @author joyeekk <xygao2420@gmail.com>
*/
class Client extends BaseClient
{
/**
* Allow image parameter type.
*
* @var array
*/
protected $allowTypes = ['photo', 'scan'];
/**
* ID card OCR.
*
* @param string $path
* @param string $type
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function idCard(string $path, string $type = 'photo')
{
if (!\in_array($type, $this->allowTypes, true)) {
throw new InvalidArgumentException(sprintf("Unsupported type: '%s'", $type));
}
return $this->httpGet('cv/ocr/idcard', [
'type' => $type,
'img_url' => $path,
]);
}
/**
* Bank card OCR.
*
* @param string $path
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function bankCard(string $path)
{
return $this->httpGet('cv/ocr/bankcard', [
'img_url' => $path,
]);
}
/**
* Vehicle license OCR.
*
* @param string $path
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function vehicleLicense(string $path)
{
return $this->httpGet('cv/ocr/driving', [
'img_url' => $path,
]);
}
}

33
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/OCR/ServiceProvider.php

@ -0,0 +1,33 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\OCR;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author joyeekk <xygao2420@gmail.com>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['ocr'] = function ($app) {
return new Client($app);
};
}
}

145
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/POI/Client.php

@ -0,0 +1,145 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\POI;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @author overtrue <i@overtrue.me>
*/
class Client extends BaseClient
{
/**
* Get POI supported categories.
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function categories()
{
return $this->httpGet('cgi-bin/poi/getwxcategory');
}
/**
* Get POI by ID.
*
* @param int $poiId
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function get(int $poiId)
{
return $this->httpPostJson('cgi-bin/poi/getpoi', ['poi_id' => $poiId]);
}
/**
* List POI.
*
* @param int $offset
* @param int $limit
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function list(int $offset = 0, int $limit = 10)
{
$params = [
'begin' => $offset,
'limit' => $limit,
];
return $this->httpPostJson('cgi-bin/poi/getpoilist', $params);
}
/**
* Create a POI.
*
* @param array $baseInfo
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function create(array $baseInfo)
{
$params = [
'business' => [
'base_info' => $baseInfo,
],
];
return $this->httpPostJson('cgi-bin/poi/addpoi', $params);
}
/**
* @param array $databaseInfo
*
* @return int
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
*/
public function createAndGetId(array $databaseInfo)
{
/** @var array $response */
$response = $this->detectAndCastResponseToType($this->create($databaseInfo), 'array');
return $response['poi_id'];
}
/**
* Update a POI.
*
* @param int $poiId
* @param array $baseInfo
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function update(int $poiId, array $baseInfo)
{
$params = [
'business' => [
'base_info' => array_merge($baseInfo, ['poi_id' => $poiId]),
],
];
return $this->httpPostJson('cgi-bin/poi/updatepoi', $params);
}
/**
* Delete a POI.
*
* @param int $poiId
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function delete(int $poiId)
{
return $this->httpPostJson('cgi-bin/poi/delpoi', ['poi_id' => $poiId]);
}
}

33
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/POI/ServiceProvider.php

@ -0,0 +1,33 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\POI;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author overtrue <i@overtrue.me>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['poi'] = function ($app) {
return new Client($app);
};
}
}

45
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Semantic/Client.php

@ -0,0 +1,45 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Semantic;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @author overtrue <i@overtrue.me>
*/
class Client extends BaseClient
{
/**
* Get the semantic content of giving string.
*
* @param string $keyword
* @param string $categories
* @param array $optional
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function query(string $keyword, string $categories, array $optional = [])
{
$params = [
'query' => $keyword,
'category' => $categories,
'appid' => $this->app['config']['app_id'],
];
return $this->httpPostJson('semantic/semproxy/search', array_merge($params, $optional));
}
}

31
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Semantic/ServiceProvider.php

@ -0,0 +1,31 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Semantic;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['semantic'] = function ($app) {
return new Client($app);
};
}
}

30
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Server/Guard.php

@ -0,0 +1,30 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Server;
use EasyWeChat\Kernel\ServerGuard;
/**
* Class Guard.
*
* @author overtrue <i@overtrue.me>
*/
class Guard extends ServerGuard
{
/**
* @return bool
*/
protected function shouldReturnRawResponse(): bool
{
return !is_null($this->app['request']->get('echostr'));
}
}

51
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Server/Handlers/EchoStrHandler.php

@ -0,0 +1,51 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Server\Handlers;
use EasyWeChat\Kernel\Contracts\EventHandlerInterface;
use EasyWeChat\Kernel\Decorators\FinallyResult;
use EasyWeChat\Kernel\ServiceContainer;
/**
* Class EchoStrHandler.
*
* @author overtrue <i@overtrue.me>
*/
class EchoStrHandler implements EventHandlerInterface
{
/**
* @var ServiceContainer
*/
protected $app;
/**
* EchoStrHandler constructor.
*
* @param ServiceContainer $app
*/
public function __construct(ServiceContainer $app)
{
$this->app = $app;
}
/**
* @param mixed $payload
*
* @return FinallyResult|null
*/
public function handle($payload = null)
{
if ($str = $this->app['request']->get('echostr')) {
return new FinallyResult($str);
}
}
}

46
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/Server/ServiceProvider.php

@ -0,0 +1,46 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\Server;
use EasyWeChat\Kernel\Encryptor;
use EasyWeChat\OfficialAccount\Server\Handlers\EchoStrHandler;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author overtrue <i@overtrue.me>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
!isset($app['encryptor']) && $app['encryptor'] = function ($app) {
return new Encryptor(
$app['config']['app_id'],
$app['config']['token'],
$app['config']['aes_key']
);
};
!isset($app['server']) && $app['server'] = function ($app) {
$guard = new Guard($app);
$guard->push(new EchoStrHandler($app));
return $guard;
};
}
}

81
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/ShakeAround/Client.php

@ -0,0 +1,81 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\ShakeAround;
use EasyWeChat\Kernel\BaseClient;
/**
* Class Client.
*
* @author overtrue <i@overtrue.me>
*/
class Client extends BaseClient
{
/**
* @param array $data
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function register($data)
{
return $this->httpPostJson('shakearound/account/register', $data);
}
/**
* Get audit status.
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function status()
{
return $this->httpGet('shakearound/account/auditstatus');
}
/**
* Get shake info.
*
* @param string $ticket
* @param bool $needPoi
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function user(string $ticket, bool $needPoi = false)
{
$params = [
'ticket' => $ticket,
];
if ($needPoi) {
$params['need_poi'] = 1;
}
return $this->httpPostJson('shakearound/user/getshakeinfo', $params);
}
/**
* @param string $ticket
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*/
public function userWithPoi(string $ticket)
{
return $this->user($ticket, true);
}
}

190
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/ShakeAround/DeviceClient.php

@ -0,0 +1,190 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\ShakeAround;
use EasyWeChat\Kernel\BaseClient;
/**
* Class DeviceClient.
*
* @author allen05ren <allen05ren@outlook.com>
*/
class DeviceClient extends BaseClient
{
/**
* @param array $data
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function apply(array $data)
{
return $this->httpPostJson('shakearound/device/applyid', $data);
}
/**
* Get audit status.
*
* @param int $applyId
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function status(int $applyId)
{
$params = [
'apply_id' => $applyId,
];
return $this->httpPostJson('shakearound/device/applystatus', $params);
}
/**
* Update a device comment.
*
* @param array $deviceIdentifier
* @param string $comment
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function update(array $deviceIdentifier, string $comment)
{
$params = [
'device_identifier' => $deviceIdentifier,
'comment' => $comment,
];
return $this->httpPostJson('shakearound/device/update', $params);
}
/**
* Bind location for device.
*
* @param array $deviceIdentifier
* @param int $poiId
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function bindPoi(array $deviceIdentifier, int $poiId)
{
$params = [
'device_identifier' => $deviceIdentifier,
'poi_id' => $poiId,
];
return $this->httpPostJson('shakearound/device/bindlocation', $params);
}
/**
* @param array $deviceIdentifier
* @param int $poiId
* @param string $appId
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function bindThirdPoi(array $deviceIdentifier, int $poiId, string $appId)
{
$params = [
'device_identifier' => $deviceIdentifier,
'poi_id' => $poiId,
'type' => 2,
'poi_appid' => $appId,
];
return $this->httpPostJson('shakearound/device/bindlocation', $params);
}
/**
* Fetch batch of devices by deviceIds.
*
* @param array $deviceIdentifiers
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*/
public function listByIds(array $deviceIdentifiers)
{
$params = [
'type' => 1,
'device_identifiers' => $deviceIdentifiers,
];
return $this->search($params);
}
/**
* Pagination to get batch of devices.
*
* @param int $lastId
* @param int $count
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*/
public function list(int $lastId, int $count)
{
$params = [
'type' => 2,
'last_seen' => $lastId,
'count' => $count,
];
return $this->search($params);
}
/**
* Fetch batch of devices by applyId.
*
* @param int $applyId
* @param int $lastId
* @param int $count
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*/
public function listByApplyId(int $applyId, int $lastId, int $count)
{
$params = [
'type' => 3,
'apply_id' => $applyId,
'last_seen' => $lastId,
'count' => $count,
];
return $this->search($params);
}
/**
* Fetch batch of devices.
*
* @param array $params
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function search(array $params)
{
return $this->httpPostJson('shakearound/device/search', $params);
}
}

167
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/ShakeAround/GroupClient.php

@ -0,0 +1,167 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\ShakeAround;
use EasyWeChat\Kernel\BaseClient;
/**
* Class GroupClient.
*
* @author allen05ren <allen05ren@outlook.com>
*/
class GroupClient extends BaseClient
{
/**
* Add device group.
*
* @param string $name
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function create(string $name)
{
$params = [
'group_name' => $name,
];
return $this->httpPostJson('shakearound/device/group/add', $params);
}
/**
* Update a device group name.
*
* @param int $groupId
* @param string $name
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function update(int $groupId, string $name)
{
$params = [
'group_id' => $groupId,
'group_name' => $name,
];
return $this->httpPostJson('shakearound/device/group/update', $params);
}
/**
* Delete device group.
*
* @param int $groupId
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function delete(int $groupId)
{
$params = [
'group_id' => $groupId,
];
return $this->httpPostJson('shakearound/device/group/delete', $params);
}
/**
* List all device groups.
*
* @param int $begin
* @param int $count
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function list(int $begin, int $count)
{
$params = [
'begin' => $begin,
'count' => $count,
];
return $this->httpPostJson('shakearound/device/group/getlist', $params);
}
/**
* Get detail of a device group.
*
* @param int $groupId
* @param int $begin
* @param int $count
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function get(int $groupId, int $begin, int $count)
{
$params = [
'group_id' => $groupId,
'begin' => $begin,
'count' => $count,
];
return $this->httpPostJson('shakearound/device/group/getdetail', $params);
}
/**
* Add one or more devices to a device group.
*
* @param int $groupId
* @param array $deviceIdentifiers
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function addDevices(int $groupId, array $deviceIdentifiers)
{
$params = [
'group_id' => $groupId,
'device_identifiers' => $deviceIdentifiers,
];
return $this->httpPostJson('shakearound/device/group/adddevice', $params);
}
/**
* Remove one or more devices from a device group.
*
* @param int $groupId
* @param array $deviceIdentifiers
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function removeDevices(int $groupId, array $deviceIdentifiers)
{
$params = [
'group_id' => $groupId,
'device_identifiers' => $deviceIdentifiers,
];
return $this->httpPostJson('shakearound/device/group/deletedevice', $params);
}
}

44
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/ShakeAround/MaterialClient.php

@ -0,0 +1,44 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\ShakeAround;
use EasyWeChat\Kernel\BaseClient;
use EasyWeChat\Kernel\Exceptions\InvalidArgumentException;
/**
* Class MaterialClient.
*
* @author allen05ren <allen05ren@outlook.com>
*/
class MaterialClient extends BaseClient
{
/**
* Upload image material.
*
* @param string $path
* @param string $type
*
* @return string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function uploadImage(string $path, string $type = 'icon')
{
if (!file_exists($path) || !is_readable($path)) {
throw new InvalidArgumentException(sprintf('File does not exist, or the file is unreadable: "%s"', $path));
}
return $this->httpUpload('shakearound/material/add', ['media' => $path], [], ['type' => strtolower($type)]);
}
}

110
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/ShakeAround/PageClient.php

@ -0,0 +1,110 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\ShakeAround;
use EasyWeChat\Kernel\BaseClient;
/**
* Class PageClient.
*
* @author allen05ren <allen05ren@outlook.com>
*/
class PageClient extends BaseClient
{
/**
* @param array $data
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function create(array $data)
{
return $this->httpPostJson('shakearound/page/add', $data);
}
/**
* @param int $pageId
* @param array $data
*
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function update(int $pageId, array $data)
{
return $this->httpPostJson('shakearound/page/update', array_merge(['page_id' => $pageId], $data));
}
/**
* Fetch batch of pages by pageIds.
*
* @param array $pageIds
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function listByIds(array $pageIds)
{
$params = [
'type' => 1,
'page_ids' => $pageIds,
];
return $this->httpPostJson('shakearound/page/search', $params);
}
/**
* Pagination to get batch of pages.
*
* @param int $begin
* @param int $count
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function list(int $begin, int $count)
{
$params = [
'type' => 2,
'begin' => $begin,
'count' => $count,
];
return $this->httpPostJson('shakearound/page/search', $params);
}
/**
* delete a page.
*
* @param int $pageId
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function delete(int $pageId)
{
$params = [
'page_id' => $pageId,
];
return $this->httpPostJson('shakearound/page/delete', $params);
}
}

87
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/ShakeAround/RelationClient.php

@ -0,0 +1,87 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\ShakeAround;
use EasyWeChat\Kernel\BaseClient;
/**
* Class RelationClient.
*
* @author allen05ren <allen05ren@outlook.com>
*/
class RelationClient extends BaseClient
{
/**
* Bind pages for device.
*
* @param array $deviceIdentifier
* @param array $pageIds
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function bindPages(array $deviceIdentifier, array $pageIds)
{
$params = [
'device_identifier' => $deviceIdentifier,
'page_ids' => $pageIds,
];
return $this->httpPostJson('shakearound/device/bindpage', $params);
}
/**
* Get pageIds by deviceId.
*
* @param array $deviceIdentifier
*
* @return array|\EasyWeChat\Kernel\Support\Collection
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function listByDeviceId(array $deviceIdentifier)
{
$params = [
'type' => 1,
'device_identifier' => $deviceIdentifier,
];
return $this->httpPostJson('shakearound/relation/search', $params);
}
/**
* Get devices by pageId.
*
* @param int $pageId
* @param int $begin
* @param int $count
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function listByPageId(int $pageId, int $begin, int $count)
{
$params = [
'type' => 2,
'page_id' => $pageId,
'begin' => $begin,
'count' => $count,
];
return $this->httpPostJson('shakearound/relation/search', $params);
}
}

57
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/ShakeAround/ServiceProvider.php

@ -0,0 +1,57 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\ShakeAround;
use Pimple\Container;
use Pimple\ServiceProviderInterface;
/**
* Class ServiceProvider.
*
* @author allen05ren <allen05ren@outlook.com>
*/
class ServiceProvider implements ServiceProviderInterface
{
/**
* {@inheritdoc}.
*/
public function register(Container $app)
{
$app['shake_around'] = function ($app) {
return new ShakeAround($app);
};
$app['shake_around.device'] = function ($app) {
return new DeviceClient($app);
};
$app['shake_around.page'] = function ($app) {
return new PageClient($app);
};
$app['shake_around.material'] = function ($app) {
return new MaterialClient($app);
};
$app['shake_around.group'] = function ($app) {
return new GroupClient($app);
};
$app['shake_around.relation'] = function ($app) {
return new RelationClient($app);
};
$app['shake_around.stats'] = function ($app) {
return new StatsClient($app);
};
}
}

44
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/ShakeAround/ShakeAround.php

@ -0,0 +1,44 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\ShakeAround;
use EasyWeChat\Kernel\Exceptions\InvalidArgumentException;
/**
* Class Card.
*
* @author overtrue <i@overtrue.me>
*
* @property \EasyWeChat\OfficialAccount\ShakeAround\DeviceClient $device
* @property \EasyWeChat\OfficialAccount\ShakeAround\GroupClient $group
* @property \EasyWeChat\OfficialAccount\ShakeAround\MaterialClient $material
* @property \EasyWeChat\OfficialAccount\ShakeAround\RelationClient $relation
* @property \EasyWeChat\OfficialAccount\ShakeAround\StatsClient $stats
*/
class ShakeAround extends Client
{
/**
* @param string $property
*
* @return mixed
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
*/
public function __get($property)
{
if (isset($this->app["shake_around.{$property}"])) {
return $this->app["shake_around.{$property}"];
}
throw new InvalidArgumentException(sprintf('No shake_around service named "%s".', $property));
}
}

110
addons/weliam_smartcity/vendor/overtrue/wechat/src/OfficialAccount/ShakeAround/StatsClient.php

@ -0,0 +1,110 @@
<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\OfficialAccount\ShakeAround;
use EasyWeChat\Kernel\BaseClient;
/**
* Class StatsClient.
*
* @author allen05ren <allen05ren@outlook.com>
*/
class StatsClient extends BaseClient
{
/**
* Fetch statistics data by deviceId.
*
* @param array $deviceIdentifier
* @param int $beginTime (Unix timestamp)
* @param int $endTime (Unix timestamp)
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function deviceSummary(array $deviceIdentifier, int $beginTime, int $endTime)
{
$params = [
'device_identifier' => $deviceIdentifier,
'begin_date' => $beginTime,
'end_date' => $endTime,
];
return $this->httpPostJson('shakearound/statistics/device', $params);
}
/**
* Fetch all devices statistics data by date.
*
* @param int $timestamp
* @param int $pageIndex
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function devicesSummary(int $timestamp, int $pageIndex)
{
$params = [
'date' => $timestamp,
'page_index' => $pageIndex,
];
return $this->httpPostJson('shakearound/statistics/devicelist', $params);
}
/**
* Fetch statistics data by pageId.
*
* @param int $pageId
* @param int $beginTime (Unix timestamp)
* @param int $endTime (Unix timestamp)
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function pageSummary(int $pageId, int $beginTime, int $endTime)
{
$params = [
'page_id' => $pageId,
'begin_date' => $beginTime,
'end_date' => $endTime,
];
return $this->httpPostJson('shakearound/statistics/page', $params);
}
/**
* Fetch all pages statistics data by date.
*
* @param int $timestamp
* @param int $pageIndex
*
* @return \Psr\Http\Message\ResponseInterface|\EasyWeChat\Kernel\Support\Collection|array|object|string
*
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function pagesSummary(int $timestamp, int $pageIndex)
{
$params = [
'date' => $timestamp,
'page_index' => $pageIndex,
];
return $this->httpPostJson('shakearound/statistics/pagelist', $params);
}
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save