wuliangbo
2 years ago
174 changed files with 10420 additions and 515 deletions
@ -0,0 +1,49 @@ |
|||||||
|
<?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\Kernel\Messages; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class InteractiveTaskCard. |
||||||
|
* |
||||||
|
* @description 企业微信 interactive_taskcard 任务卡片消息类型 |
||||||
|
* |
||||||
|
* @author xyj2156 |
||||||
|
* @date 2021年5月25日 15:21:03 |
||||||
|
* |
||||||
|
* @property string $title |
||||||
|
* @property string $description |
||||||
|
* @property string $url |
||||||
|
* @property string $task_id |
||||||
|
* @property array $btn |
||||||
|
*/ |
||||||
|
class InteractiveTaskCard extends Message |
||||||
|
{ |
||||||
|
/** |
||||||
|
* Messages type. |
||||||
|
* |
||||||
|
* @var string |
||||||
|
*/ |
||||||
|
protected $type = 'interactive_taskcard'; |
||||||
|
|
||||||
|
/** |
||||||
|
* Properties. |
||||||
|
* |
||||||
|
* @var array |
||||||
|
*/ |
||||||
|
protected $properties = [ |
||||||
|
'title', |
||||||
|
'description', |
||||||
|
'url', |
||||||
|
'task_id', |
||||||
|
'btn', |
||||||
|
]; |
||||||
|
} |
@ -0,0 +1,13 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\Kernel\Messages; |
||||||
|
|
||||||
|
class MiniprogramNotice extends Message |
||||||
|
{ |
||||||
|
protected $type = 'miniprogram_notice'; |
||||||
|
|
||||||
|
protected $properties = [ |
||||||
|
'appid', |
||||||
|
'title', |
||||||
|
]; |
||||||
|
} |
@ -0,0 +1,60 @@ |
|||||||
|
<?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\Kernel\Messages; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class ReplyInteractiveTaskCard |
||||||
|
* |
||||||
|
* @property array{'replace_name':string} $properties |
||||||
|
* |
||||||
|
* @description 专门为回复 InteractiveTaskCard 类型任务卡片消息而创建的类型 |
||||||
|
* @author xyj2156 |
||||||
|
* |
||||||
|
* @package App\Extend\EnterpriseApplication\BusinessWX\Message |
||||||
|
*/ |
||||||
|
class ReplyInteractiveTaskCard extends Message |
||||||
|
{ |
||||||
|
/** |
||||||
|
* Message Type |
||||||
|
* |
||||||
|
* @var string |
||||||
|
*/ |
||||||
|
protected $type = 'update_taskcard'; |
||||||
|
|
||||||
|
/** |
||||||
|
* Properties. |
||||||
|
* |
||||||
|
* @var array |
||||||
|
*/ |
||||||
|
protected $properties = [ |
||||||
|
'replace_name', |
||||||
|
]; |
||||||
|
|
||||||
|
/** |
||||||
|
* ReplyInteractiveTaskCard constructor. |
||||||
|
* |
||||||
|
* @param string $replace_name |
||||||
|
*/ |
||||||
|
public function __construct(string $replace_name = '') |
||||||
|
{ |
||||||
|
parent::__construct(compact('replace_name')); |
||||||
|
} |
||||||
|
|
||||||
|
public function toXmlArray() |
||||||
|
{ |
||||||
|
return [ |
||||||
|
'TaskCard' => [ |
||||||
|
'ReplaceName' => $this->get('replace_name'), |
||||||
|
], |
||||||
|
]; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,149 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
/* |
||||||
|
* This file is part of the overtrue/wechat. |
||||||
|
* |
||||||
|
*/ |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\Business; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
use EasyWeChat\Kernel\Exceptions\InvalidArgumentException; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class Client. |
||||||
|
* |
||||||
|
* @author wangdongzhao <elim051@163.com> |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* Business register |
||||||
|
* @param string $accountName |
||||||
|
* @param string $nickname |
||||||
|
* @param string $iconMediaId |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function register(string $accountName, string $nickname, string $iconMediaId) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'account_name' => $accountName, |
||||||
|
'nickname' => $nickname, |
||||||
|
'icon_media_id' => $iconMediaId, |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/business/register', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Get business |
||||||
|
* @param int $businessId |
||||||
|
* @param string $accountName |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function getBusiness(int $businessId = 0, string $accountName = '') |
||||||
|
{ |
||||||
|
if (empty($businessId) && empty($accountName)) { |
||||||
|
throw new InvalidArgumentException('Missing parameter.'); |
||||||
|
} |
||||||
|
if ($businessId) { |
||||||
|
$params = [ |
||||||
|
'business_id' => $businessId, |
||||||
|
]; |
||||||
|
} else { |
||||||
|
$params = [ |
||||||
|
'account_name' => $accountName, |
||||||
|
]; |
||||||
|
} |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/business/get', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Get business list |
||||||
|
* @param int $offset |
||||||
|
* @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 list(int $offset = 0, int $count = 10) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'offset' => $offset, |
||||||
|
'count' => $count, |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/business/list', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Update business. |
||||||
|
* @param int $businessId |
||||||
|
* @param string $nickname |
||||||
|
* @param string $iconMediaId |
||||||
|
* @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 $businessId, string $nickname = '', string $iconMediaId = '') |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'business_id' => $businessId, |
||||||
|
'nickname' => $nickname, |
||||||
|
'icon_media_id' => $iconMediaId, |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/business/update', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Get message builder. |
||||||
|
* |
||||||
|
* @param \EasyWeChat\Kernel\Messages\Message|string $message |
||||||
|
* |
||||||
|
* @return \EasyWeChat\MiniProgram\Business\Messenger |
||||||
|
*/ |
||||||
|
public function message($message) |
||||||
|
{ |
||||||
|
$messageBuilder = new Messenger($this); |
||||||
|
|
||||||
|
return $messageBuilder->message($message); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Send a message. |
||||||
|
* |
||||||
|
* @return mixed |
||||||
|
* |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function send(array $message) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('cgi-bin/message/custom/business/send', $message); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Typing status. |
||||||
|
* @param int $businessId |
||||||
|
* @param string $toUser openid |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function typing(int $businessId, string $toUser) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'business_id' => $businessId, |
||||||
|
'touser' => $toUser, |
||||||
|
'command' => 'Typing', |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/business/typing', $params); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,179 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
/* |
||||||
|
* This file is part of the overtrue/wechat. |
||||||
|
* |
||||||
|
*/ |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\Business; |
||||||
|
|
||||||
|
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 wangdongzhao <elim051@163.com> |
||||||
|
*/ |
||||||
|
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\MiniProgram\Business\Client |
||||||
|
*/ |
||||||
|
protected $client; |
||||||
|
|
||||||
|
/** |
||||||
|
* Messages businessId |
||||||
|
* |
||||||
|
* @var int |
||||||
|
*/ |
||||||
|
protected $businessId; |
||||||
|
|
||||||
|
/** |
||||||
|
* MessageBuilder constructor. |
||||||
|
* |
||||||
|
* @param \EasyWeChat\MiniProgram\Business\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. |
||||||
|
* |
||||||
|
* @return Messenger |
||||||
|
*/ |
||||||
|
public function by(string $account) |
||||||
|
{ |
||||||
|
$this->account = $account; |
||||||
|
|
||||||
|
return $this; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @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; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Set target business id. |
||||||
|
* |
||||||
|
* @param int $businessId |
||||||
|
* |
||||||
|
* @return Messenger |
||||||
|
*/ |
||||||
|
public function business($businessId) |
||||||
|
{ |
||||||
|
$this->businessId = $businessId; |
||||||
|
|
||||||
|
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]; |
||||||
|
} |
||||||
|
if ($this->businessId) { |
||||||
|
$prepends['businessid'] = $this->businessId; |
||||||
|
} |
||||||
|
$message = $this->message->transformForJsonRequest($prepends); |
||||||
|
} |
||||||
|
|
||||||
|
return $this->client->send($message); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Return property. |
||||||
|
* |
||||||
|
* @return mixed |
||||||
|
*/ |
||||||
|
public function __get(string $property) |
||||||
|
{ |
||||||
|
if (property_exists($this, $property)) { |
||||||
|
return $this->$property; |
||||||
|
} |
||||||
|
|
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,29 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
/* |
||||||
|
* This file is part of the overtrue/wechat. |
||||||
|
* |
||||||
|
*/ |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\Business; |
||||||
|
|
||||||
|
use Pimple\Container; |
||||||
|
use Pimple\ServiceProviderInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class ServiceProvider. |
||||||
|
* |
||||||
|
* @author wangdongzhao <elim051@163.com> |
||||||
|
*/ |
||||||
|
class ServiceProvider implements ServiceProviderInterface |
||||||
|
{ |
||||||
|
/** |
||||||
|
* {@inheritdoc}. |
||||||
|
*/ |
||||||
|
public function register(Container $app) |
||||||
|
{ |
||||||
|
$app['business'] = function ($app) { |
||||||
|
return new Client($app); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,47 @@ |
|||||||
|
<?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\PhoneNumber; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class Client. |
||||||
|
* |
||||||
|
* @package EasyWeChat\MiniProgram\PhoneNumber |
||||||
|
* |
||||||
|
* @author 读心印 <aa24615@qq.com> |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* 获取用户手机号. |
||||||
|
* |
||||||
|
* @see https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/phonenumber/phonenumber.getPhoneNumber.html |
||||||
|
* |
||||||
|
* @param string $code |
||||||
|
* |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
* |
||||||
|
* @author 读心印 <aa24615@qq.com> |
||||||
|
*/ |
||||||
|
public function getUserPhoneNumber(string $code) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'code' => $code |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('wxa/business/getuserphonenumber', $params); |
||||||
|
} |
||||||
|
} |
@ -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\PhoneNumber; |
||||||
|
|
||||||
|
use Pimple\Container; |
||||||
|
use Pimple\ServiceProviderInterface; |
||||||
|
|
||||||
|
class ServiceProvider implements ServiceProviderInterface |
||||||
|
{ |
||||||
|
/** |
||||||
|
* {@inheritdoc}. |
||||||
|
*/ |
||||||
|
public function register(Container $app) |
||||||
|
{ |
||||||
|
$app['phone_number'] = function ($app) { |
||||||
|
return new Client($app); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,126 @@ |
|||||||
|
<?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\QrCode; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
use EasyWeChat\Kernel\Exceptions\InvalidConfigException; |
||||||
|
use EasyWeChat\Kernel\Support\Collection; |
||||||
|
use GuzzleHttp\Exception\GuzzleException; |
||||||
|
use Psr\Http\Message\ResponseInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* QrCode Client |
||||||
|
* |
||||||
|
* 普通链接二维码 |
||||||
|
* |
||||||
|
* @link https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/qrcode/qrcode.html |
||||||
|
* @link https://developers.weixin.qq.com/miniprogram/introduction/qrcode.html |
||||||
|
* |
||||||
|
* @author dysodeng <dysodengs@gmail.com> |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* 获取已设置的二维码规则 |
||||||
|
* |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* |
||||||
|
* @throws InvalidConfigException |
||||||
|
* @throws GuzzleException |
||||||
|
*/ |
||||||
|
public function list() |
||||||
|
{ |
||||||
|
return $this->httpPostJson('cgi-bin/wxopen/qrcodejumpget'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取校验文件名称及内容 |
||||||
|
* |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* |
||||||
|
* @throws GuzzleException |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getVerifyFile() |
||||||
|
{ |
||||||
|
return $this->httpPostJson('cgi-bin/wxopen/qrcodejumpdownload'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 增加或修改二维码规则 |
||||||
|
* |
||||||
|
* @param array $params |
||||||
|
* |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws GuzzleException |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function set(array $params) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('cgi-bin/wxopen/qrcodejumpadd', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 发布已设置的二维码规则 |
||||||
|
* |
||||||
|
* @param string $prefix |
||||||
|
* |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* |
||||||
|
* @throws GuzzleException |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function publish(string $prefix) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'prefix' => $prefix |
||||||
|
]; |
||||||
|
return $this->httpPostJson('cgi-bin/wxopen/qrcodejumppublish', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 删除已设置的二维码规则 |
||||||
|
* |
||||||
|
* @param string $prefix |
||||||
|
* |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* |
||||||
|
* @throws GuzzleException |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function delete(string $prefix) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'prefix' => $prefix |
||||||
|
]; |
||||||
|
return $this->httpPostJson('cgi-bin/wxopen/qrcodejumpdelete', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 将二维码长链接转成短链接 |
||||||
|
* |
||||||
|
* @param string $long_url |
||||||
|
* |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* |
||||||
|
* @throws GuzzleException |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function shortUrl(string $long_url) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'long_url' => $long_url, |
||||||
|
'action' => 'long2short' |
||||||
|
]; |
||||||
|
return $this->httpPostJson('cgi-bin/shorturl', $params); |
||||||
|
} |
||||||
|
} |
@ -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\QrCode; |
||||||
|
|
||||||
|
use Pimple\Container; |
||||||
|
use Pimple\ServiceProviderInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* QrCode ServiceProvider. |
||||||
|
* |
||||||
|
* @author dysodeng <dysodengs@gmail.com> |
||||||
|
*/ |
||||||
|
class ServiceProvider implements ServiceProviderInterface |
||||||
|
{ |
||||||
|
/** |
||||||
|
* {@inheritdoc}. |
||||||
|
*/ |
||||||
|
public function register(Container $pimple) |
||||||
|
{ |
||||||
|
$pimple['qr_code'] = function ($app) { |
||||||
|
return new Client($app); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,32 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\RiskControl; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
use EasyWeChat\Kernel\Exceptions\InvalidConfigException; |
||||||
|
use EasyWeChat\Kernel\Support\Collection; |
||||||
|
use GuzzleHttp\Exception\GuzzleException; |
||||||
|
use Psr\Http\Message\ResponseInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* 安全风控 |
||||||
|
* |
||||||
|
* Class Client |
||||||
|
* @package EasyWeChat\MiniProgram\RiskControl |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* 获取用户的安全等级 |
||||||
|
* |
||||||
|
* @param array $params |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* |
||||||
|
* @throws InvalidConfigException |
||||||
|
* @throws GuzzleException |
||||||
|
*/ |
||||||
|
public function getUserRiskRank(array $params) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('wxa/getuserriskrank', $params); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\RiskControl; |
||||||
|
|
||||||
|
use Pimple\Container; |
||||||
|
use Pimple\ServiceProviderInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* 安全风控 |
||||||
|
* |
||||||
|
* Class ServiceProvider |
||||||
|
* @package EasyWeChat\MiniProgram\RiskControl |
||||||
|
*/ |
||||||
|
class ServiceProvider implements ServiceProviderInterface |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @inheritDoc |
||||||
|
*/ |
||||||
|
public function register(Container $app) |
||||||
|
{ |
||||||
|
$app['risk_control'] = function ($app) { |
||||||
|
return new Client($app); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,67 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\Shop\Account; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
|
||||||
|
/** |
||||||
|
* 自定义版交易组件及开放接口 - 商家入驻接口 |
||||||
|
* |
||||||
|
* @package EasyWeChat\MiniProgram\Shop\Account |
||||||
|
* @author HaoLiang <haoliang@qiyuankeji.cn> |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* 获取商家类目列表 |
||||||
|
* |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function getCategoryList() |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/account/get_category_list'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取商家品牌列表 |
||||||
|
* |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function getBrandList() |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/account/get_brand_list'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 更新商家信息 |
||||||
|
* |
||||||
|
* @param string $path 小程序path |
||||||
|
* @param string $phone 客服联系方式 |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function updateInfo(string $path = '', string $phone = '') |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/account/update_info', [ |
||||||
|
'service_agent_path' => $path, |
||||||
|
'service_agent_phone' => $phone, |
||||||
|
]); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取商家信息 |
||||||
|
* |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function getInfo() |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/account/get_info'); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\Shop\Account; |
||||||
|
|
||||||
|
use Pimple\Container; |
||||||
|
use Pimple\ServiceProviderInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* 自定义版交易组件及开放接口 - 商家入驻接口 |
||||||
|
* |
||||||
|
* @package EasyWeChat\MiniProgram\Shop\Account |
||||||
|
* @author HaoLiang <haoliang@qiyuankeji.cn> |
||||||
|
*/ |
||||||
|
class ServiceProvider implements ServiceProviderInterface |
||||||
|
{ |
||||||
|
/** |
||||||
|
* {@inheritdoc} |
||||||
|
*/ |
||||||
|
public function register(Container $app) |
||||||
|
{ |
||||||
|
$app['shop_account'] = function ($app) { |
||||||
|
return new Client($app); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,54 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\Shop\Aftersale; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
|
||||||
|
/** |
||||||
|
* 自定义版交易组件及开放接口 - 售后接口 |
||||||
|
* |
||||||
|
* @package EasyWeChat\MiniProgram\Shop\Aftersale |
||||||
|
* @author HaoLiang <haoliang@qiyuankeji.cn> |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* 创建售后 |
||||||
|
* |
||||||
|
* @param array $aftersale |
||||||
|
* @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 $aftersale) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/ecaftersale/add', $aftersale); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取订单下售后单 |
||||||
|
* |
||||||
|
* @param array $order 订单数据 |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function get(array $order) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/ecaftersale/get', $order); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 更新售后 |
||||||
|
* |
||||||
|
* @param array $order 订单数据 |
||||||
|
* @param array $aftersale 售后数据 |
||||||
|
* @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 $order, array $aftersale) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/ecaftersale/update', array_merge($order, $aftersale)); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\Shop\Aftersale; |
||||||
|
|
||||||
|
use Pimple\Container; |
||||||
|
use Pimple\ServiceProviderInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* 自定义版交易组件及开放接口 - 售后接口 |
||||||
|
* |
||||||
|
* @package EasyWeChat\MiniProgram\Shop\Aftersale |
||||||
|
* @author HaoLiang <haoliang@qiyuankeji.cn> |
||||||
|
*/ |
||||||
|
class ServiceProvider implements ServiceProviderInterface |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @inheritDoc |
||||||
|
*/ |
||||||
|
public function register(Container $app) |
||||||
|
{ |
||||||
|
$app['shop_aftersale'] = function ($app) { |
||||||
|
return new Client($app); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,110 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\Shop\Basic; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
|
||||||
|
/** |
||||||
|
* 自定义版交易组件及开放接口 - 接入商品前必需接口 |
||||||
|
* |
||||||
|
* @package EasyWeChat\MiniProgram\Shop\Basic |
||||||
|
* @author HaoLiang <haoliang@qiyuankeji.cn> |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* 获取商品类目 |
||||||
|
* |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function getCat() |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/cat/get'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @param string $imageFilePath 图片文件路径 |
||||||
|
* @param int $respType 返回类型 |
||||||
|
* @param int $uploadType 上传类型,本地图片或者网络图片 |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
*/ |
||||||
|
public function imgUpload(string $imageFilePath, int $respType = 1, int $uploadType = 0) |
||||||
|
{ |
||||||
|
if ($uploadType == 0) { |
||||||
|
return $this->httpUpload('shop/img/upload', [ |
||||||
|
'media' => $imageFilePath, |
||||||
|
], [ |
||||||
|
'resp_type' => $respType, |
||||||
|
]); |
||||||
|
} else { |
||||||
|
return $this->httpPostJson('shop/img/upload', [], [ |
||||||
|
'img_url' => $imageFilePath, |
||||||
|
'resp_type' => $respType, |
||||||
|
'upload_type' => $uploadType |
||||||
|
]); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 品牌审核 |
||||||
|
* |
||||||
|
* @param array $brand 品牌信息 |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function auditBrand(array $brand) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/audit/audit_brand', [ |
||||||
|
'audit_req' => $brand |
||||||
|
]); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 类目审核 |
||||||
|
* |
||||||
|
* @param array $category 类目资质 |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function auditCategory(array $category) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/audit/audit_category', [ |
||||||
|
'audit_req' => $category |
||||||
|
]); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取审核结果 |
||||||
|
* |
||||||
|
* @param string $auditId 提交审核时返回的id |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function auditResult(string $auditId) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/audit/result', [ |
||||||
|
'audit_id' => $auditId |
||||||
|
]); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取小程序资质 |
||||||
|
* |
||||||
|
* @param int $reqType |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function getMiniAppCertificate(int $reqType = 2) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/audit/get_miniapp_certificate', [ |
||||||
|
'req_type' => $reqType |
||||||
|
]); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\Shop\Basic; |
||||||
|
|
||||||
|
use Pimple\Container; |
||||||
|
use Pimple\ServiceProviderInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* 自定义版交易组件及开放接口 - 接入商品前必需接口 |
||||||
|
* |
||||||
|
* @package EasyWeChat\MiniProgram\Shop\Basic |
||||||
|
* @author HaoLiang <haoliang@qiyuankeji.cn> |
||||||
|
*/ |
||||||
|
class ServiceProvider implements ServiceProviderInterface |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @inheritDoc |
||||||
|
*/ |
||||||
|
public function register(Container $app) |
||||||
|
{ |
||||||
|
$app['shop_basic'] = function ($app) { |
||||||
|
return new Client($app); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,52 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\Shop\Delivery; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
|
||||||
|
/** |
||||||
|
* 自定义版交易组件及开放接口 - 物流接口 |
||||||
|
* |
||||||
|
* @package EasyWeChat\MiniProgram\Shop\Delivery |
||||||
|
* @author HaoLiang <haoliang@qiyuankeji.cn> |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* 获取快递公司列表 |
||||||
|
* |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function getCompanyList() |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/delivery/get_company_list'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 订单发货 |
||||||
|
* |
||||||
|
* @param array $order |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function send(array $order) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/delivery/send', $order); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 订单确认收货 |
||||||
|
* |
||||||
|
* @param array $order |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function recieve(array $order) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/delivery/recieve', $order); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\Shop\Delivery; |
||||||
|
|
||||||
|
use Pimple\Container; |
||||||
|
use Pimple\ServiceProviderInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* 自定义版交易组件及开放接口 - 物流接口 |
||||||
|
* |
||||||
|
* @package EasyWeChat\MiniProgram\Shop\Delivery |
||||||
|
* @author HaoLiang <haoliang@qiyuankeji.cn> |
||||||
|
*/ |
||||||
|
class ServiceProvider implements ServiceProviderInterface |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @inheritDoc |
||||||
|
*/ |
||||||
|
public function register(Container $app) |
||||||
|
{ |
||||||
|
$app['shop_delivery'] = function ($app) { |
||||||
|
return new Client($app); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,157 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\Shop\Order; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
|
||||||
|
/** |
||||||
|
* 自定义版交易组件及开放接口 - 订单接口 |
||||||
|
* |
||||||
|
* @package EasyWeChat\MiniProgram\Shop\Order |
||||||
|
* @author HaoLiang <haoliang@qiyuankeji.cn> |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* 检查场景值是否在支付校验范围内 |
||||||
|
* |
||||||
|
* @param int $scene 场景值 |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function sceneCheck(int $scene) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/scene/check', ['scene' => $scene]); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 生成订单 |
||||||
|
* |
||||||
|
* @param array $order |
||||||
|
* @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 $order) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/order/add', $order); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 生成订单 |
||||||
|
* |
||||||
|
* @param array $order |
||||||
|
* @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 $order) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/order/add', $order); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取订单详情 |
||||||
|
* |
||||||
|
* @param string $openid 用户的openid |
||||||
|
* @param array $orderId 微信侧订单id (订单id二选一) |
||||||
|
* @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 $openid, array $orderId) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/order/get', array_merge($orderId, ['openid' => $openid])); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 关闭订单 |
||||||
|
* |
||||||
|
* @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 close(array $params) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/order/close', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取订单列表 |
||||||
|
* |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function getList(array $data) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/order/get_list', $data); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 同步订单支付结果 |
||||||
|
* |
||||||
|
* @param array $pay |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function pay(array $pay) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/order/pay', $pay); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 同步订单支付结果 |
||||||
|
* |
||||||
|
* @param array $pay |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function syncPayState(array $pay) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/order/pay', $pay); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 同步订单支付结果 |
||||||
|
* |
||||||
|
* @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 getPayInfo(array $params) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/order/getpaymentparams', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取推广员订单 |
||||||
|
* |
||||||
|
* @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 getFinderOrders(array $params) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/order/get_list_by_finder', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取分享员订单 |
||||||
|
* |
||||||
|
* @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 getSharerOrders(array $params) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/order/get_list_by_sharer', $params); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\Shop\Order; |
||||||
|
|
||||||
|
use Pimple\Container; |
||||||
|
use Pimple\ServiceProviderInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* 自定义版交易组件及开放接口 - 订单接口 |
||||||
|
* |
||||||
|
* @package EasyWeChat\MiniProgram\Shop\Order |
||||||
|
* @author HaoLiang <haoliang@qiyuankeji.cn> |
||||||
|
*/ |
||||||
|
class ServiceProvider implements ServiceProviderInterface |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @inheritDoc |
||||||
|
*/ |
||||||
|
public function register(Container $app) |
||||||
|
{ |
||||||
|
$app['shop_order'] = function ($app) { |
||||||
|
return new Client($app); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,76 @@ |
|||||||
|
<?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\Shop\Register; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class Client. |
||||||
|
* |
||||||
|
* @author her-cat <hxhsoft@foxmail.com> |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* 接入申请 |
||||||
|
* |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
*/ |
||||||
|
public function apply() |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/register/apply'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取接入状态 |
||||||
|
* |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
*/ |
||||||
|
public function check() |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/register/check'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 完成接入任务 |
||||||
|
* |
||||||
|
* @param int $accessInfoItem |
||||||
|
* 6:完成spu接口,7:完成订单接口,8:完成物流接口,9:完成售后接口,10:测试完成,11:发版完成 |
||||||
|
* |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
*/ |
||||||
|
public function finishAccessInfo(int $accessInfoItem) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/register/finish_access_info', [ |
||||||
|
'access_info_item' => $accessInfoItem |
||||||
|
]); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 场景接入申请 |
||||||
|
* |
||||||
|
* @param int $sceneGroupId 1:视频号、公众号场景 |
||||||
|
|
||||||
|
* |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
*/ |
||||||
|
public function applyScene(int $sceneGroupId = 1) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/register/apply_scene', [ |
||||||
|
'scene_group_id' => $sceneGroupId |
||||||
|
]); |
||||||
|
} |
||||||
|
} |
@ -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\Shop\Register; |
||||||
|
|
||||||
|
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['shop_register'] = function ($app) { |
||||||
|
return new Client($app); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,132 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\Shop\Spu; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
|
||||||
|
/** |
||||||
|
* 自定义版交易组件及开放接口 - SPU接口 |
||||||
|
* |
||||||
|
* @package EasyWeChat\MiniProgram\Shop\Spu |
||||||
|
* @author HaoLiang <haoliang@qiyuankeji.cn> |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* 添加商品 |
||||||
|
* |
||||||
|
* @param array $product 商品信息 |
||||||
|
* @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 $product) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/spu/add', $product); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 删除商品 |
||||||
|
* |
||||||
|
* @param array $productId 商品编号信息 |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function del(array $productId) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/spu/del', $productId); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取商品 |
||||||
|
* |
||||||
|
* @param array $productId 商品编号信息 |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function get(array $productId) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/spu/get', $productId); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取商品列表 |
||||||
|
* |
||||||
|
* @param array $product 商品信息 |
||||||
|
* @param array $page 分页信息 |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function getList(array $product, array $page) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/spu/get_list', array_merge($product, $page)); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 撤回商品审核 |
||||||
|
* |
||||||
|
* @param array $productId 商品编号信息 交易组件平台内部商品ID,与out_product_id二选一 |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function delAudit(array $productId) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/spu/del_audit', $productId); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 更新商品 |
||||||
|
* |
||||||
|
* @param array $product |
||||||
|
* @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 $product) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/spu/update', $product); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 该免审更新商品 |
||||||
|
* |
||||||
|
* @param array $product |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function updateWithoutAudit(array $product) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/spu/update_without_audit', $product); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 上架商品 |
||||||
|
* |
||||||
|
* @param array $productId 商品编号数据 交易组件平台内部商品ID,与out_product_id二选一 |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function listing(array $productId) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/spu/listing', $productId); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 下架商品 |
||||||
|
* |
||||||
|
* @param array $productId |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function delisting(array $productId) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('shop/spu/delisting', $productId); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\Shop\Spu; |
||||||
|
|
||||||
|
use Pimple\Container; |
||||||
|
use Pimple\ServiceProviderInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* 自定义版交易组件及开放接口 - SPU接口 |
||||||
|
* |
||||||
|
* @author HaoLiang <haoliang@qiyuankeji.cn> |
||||||
|
* @package EasyWeChat\MiniProgram\Shop\Spu |
||||||
|
*/ |
||||||
|
class ServiceProvider implements ServiceProviderInterface |
||||||
|
{ |
||||||
|
/** |
||||||
|
* {@inheritdoc} |
||||||
|
*/ |
||||||
|
public function register(Container $app) |
||||||
|
{ |
||||||
|
$app['shop_spu'] = function ($app) { |
||||||
|
return new Client($app); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,42 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\ShortLink; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
use EasyWeChat\Kernel\Exceptions\InvalidConfigException; |
||||||
|
use EasyWeChat\Kernel\Support\Collection; |
||||||
|
use GuzzleHttp\Exception\GuzzleException; |
||||||
|
use Psr\Http\Message\ResponseInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class Client. |
||||||
|
* |
||||||
|
* @package EasyWeChat\MiniProgram\ShortLink |
||||||
|
* |
||||||
|
* @author 读心印 <aa24615@qq.com> |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* 获取小程序 Short Link |
||||||
|
* |
||||||
|
* @param string $pageUrl |
||||||
|
* @param string $pageTitle |
||||||
|
* @param bool $isPermanent |
||||||
|
* |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* |
||||||
|
* @throws GuzzleException |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getShortLink(string $pageUrl, string $pageTitle, bool $isPermanent = false) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'page_url' => $pageUrl, |
||||||
|
'page_title' => $pageTitle, |
||||||
|
'is_permanent' => $isPermanent, |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('wxa/genwxashortlink', $params); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\ShortLink; |
||||||
|
|
||||||
|
use Pimple\Container; |
||||||
|
use Pimple\ServiceProviderInterface; |
||||||
|
|
||||||
|
class ServiceProvider implements ServiceProviderInterface |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @inheritDoc |
||||||
|
*/ |
||||||
|
public function register(Container $app) |
||||||
|
{ |
||||||
|
$app['short_link'] = function ($app) { |
||||||
|
return new Client($app); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,228 @@ |
|||||||
|
<?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\Union; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class Client. |
||||||
|
* |
||||||
|
* @author Abbotton <uctoo@foxmail.com> |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* Add promotion. |
||||||
|
* |
||||||
|
* @param string $promotionSourceName |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function createPromotion(string $promotionSourceName) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'promotionSourceName' => $promotionSourceName, |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('union/promoter/promotion/add', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Delete promotion. |
||||||
|
* |
||||||
|
* @param string $promotionSourcePid |
||||||
|
* @param string $promotionSourceName |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function deletePromotion(string $promotionSourcePid, string $promotionSourceName) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'promotionSourceName' => $promotionSourceName, |
||||||
|
'promotionSourcePid' => $promotionSourcePid, |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('union/promoter/promotion/del', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Update promotion. |
||||||
|
* |
||||||
|
* @param array $previousPromotionInfo |
||||||
|
* @param array $promotionInfo |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function updatePromotion(array $previousPromotionInfo, array $promotionInfo) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'previousPromotionInfo' => $previousPromotionInfo, |
||||||
|
'promotionInfo' => $promotionInfo, |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('union/promoter/promotion/upd', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Get a list of promotion spots. |
||||||
|
* |
||||||
|
* @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 getPromotionSourceList(int $start = 0, int $limit = 20) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'start' => $start, |
||||||
|
'limit' => $limit |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpGet('union/promoter/promotion/list', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Get the list of affiliate product categories and category IDs. |
||||||
|
* |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function getProductCategory() |
||||||
|
{ |
||||||
|
return $this->httpGet('union/promoter/product/category'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Get the list and detail of affiliate product. |
||||||
|
* |
||||||
|
* @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 getProductList(array $params) |
||||||
|
{ |
||||||
|
return $this->httpGet('union/promoter/product/list', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Get product promotion materials |
||||||
|
* |
||||||
|
* @param string $pid |
||||||
|
* @param array $productList |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function getProductMaterial(string $pid, array $productList) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'pid' => $pid, |
||||||
|
'productList' => $productList, |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('union/promoter/product/generate', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Query order details based on order ID array. |
||||||
|
* |
||||||
|
* @param array $orderIdList |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function getOrderInfo(array $orderIdList) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('union/promoter/order/info', $orderIdList); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Query and filter the order list. |
||||||
|
* |
||||||
|
* @param int $page |
||||||
|
* @param string $startTimestamp |
||||||
|
* @param string $endTimestamp |
||||||
|
* @param string $commissionStatus |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function searchOrder(int $page = 1, $startTimestamp = '', $endTimestamp = '', $commissionStatus = '') |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'page' => $page, |
||||||
|
'startTimestamp' => $startTimestamp, |
||||||
|
'endTimestamp' => $endTimestamp, |
||||||
|
'commissionStatus' => $commissionStatus |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpGet('union/promoter/order/search', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Get featured products of union. |
||||||
|
* |
||||||
|
* @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 getFeaturedProducts(array $params) |
||||||
|
{ |
||||||
|
return $this->httpGet('union/promoter/product/select', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Query the details of the targeted plan. |
||||||
|
* |
||||||
|
* @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 getTargetPlanInfo(array $params) |
||||||
|
{ |
||||||
|
return $this->httpGet('union/promoter/target/plan_info', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Apply to join the targeted plan. |
||||||
|
* |
||||||
|
* @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 applyJoinTargetPlan(array $params) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('union/promoter/target/apply_target', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Query the status of the targeted plan apply. |
||||||
|
* |
||||||
|
* @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 getTargetPlanStatus(array $params) |
||||||
|
{ |
||||||
|
return $this->httpGet('union/promoter/target/apply_status', $params); |
||||||
|
} |
||||||
|
} |
@ -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\Union; |
||||||
|
|
||||||
|
use Pimple\Container; |
||||||
|
use Pimple\ServiceProviderInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class ServiceProvider. |
||||||
|
* |
||||||
|
* @author Abbotton <uctoo@foxmail.com> |
||||||
|
*/ |
||||||
|
class ServiceProvider implements ServiceProviderInterface |
||||||
|
{ |
||||||
|
/** |
||||||
|
* {@inheritdoc}. |
||||||
|
*/ |
||||||
|
public function register(Container $app) |
||||||
|
{ |
||||||
|
$app['union'] = function ($app) { |
||||||
|
return new Client($app); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,32 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\UrlLink; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
use EasyWeChat\Kernel\Exceptions\InvalidConfigException; |
||||||
|
use EasyWeChat\Kernel\Support\Collection; |
||||||
|
use GuzzleHttp\Exception\GuzzleException; |
||||||
|
use Psr\Http\Message\ResponseInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* Url Scheme |
||||||
|
* |
||||||
|
* Class Client |
||||||
|
* @package EasyWeChat\MiniProgram\UrlLink |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* 获取小程序 URL Link |
||||||
|
* |
||||||
|
* @param array $param |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* |
||||||
|
* @throws GuzzleException |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function generate(array $param = []) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('wxa/generate_urllink', $param); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\UrlLink; |
||||||
|
|
||||||
|
use Pimple\Container; |
||||||
|
use Pimple\ServiceProviderInterface; |
||||||
|
|
||||||
|
class ServiceProvider implements ServiceProviderInterface |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @inheritDoc |
||||||
|
*/ |
||||||
|
public function register(Container $app) |
||||||
|
{ |
||||||
|
$app['url_link'] = function ($app) { |
||||||
|
return new Client($app); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,32 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\UrlScheme; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
use EasyWeChat\Kernel\Exceptions\InvalidConfigException; |
||||||
|
use EasyWeChat\Kernel\Support\Collection; |
||||||
|
use GuzzleHttp\Exception\GuzzleException; |
||||||
|
use Psr\Http\Message\ResponseInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* Url Scheme |
||||||
|
* |
||||||
|
* Class Client |
||||||
|
* @package EasyWeChat\MiniProgram\UrlScheme |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* 获取小程序scheme码 |
||||||
|
* |
||||||
|
* @param array $param |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* |
||||||
|
* @throws GuzzleException |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function generate(array $param = []) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('wxa/generatescheme', $param); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,19 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace EasyWeChat\MiniProgram\UrlScheme; |
||||||
|
|
||||||
|
use Pimple\Container; |
||||||
|
use Pimple\ServiceProviderInterface; |
||||||
|
|
||||||
|
class ServiceProvider implements ServiceProviderInterface |
||||||
|
{ |
||||||
|
/** |
||||||
|
* @inheritDoc |
||||||
|
*/ |
||||||
|
public function register(Container $app) |
||||||
|
{ |
||||||
|
$app['url_scheme'] = function ($app) { |
||||||
|
return new Client($app); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,108 @@ |
|||||||
|
<?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\Draft; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
use EasyWeChat\Kernel\Messages\Article; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class Client. |
||||||
|
* |
||||||
|
* @author wangdongzhao <elim051@163.com> |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* Add new articles to the draft. |
||||||
|
* @param array $articles |
||||||
|
* @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 $articles) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('cgi-bin/draft/add', $articles); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Get article from the draft. |
||||||
|
* @param string $mediaId |
||||||
|
* @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 $mediaId) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('cgi-bin/draft/get', ['media_id' => $mediaId]); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Update article |
||||||
|
* @param string $mediaId |
||||||
|
* @param int $index |
||||||
|
* @param mixed $article |
||||||
|
* @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 $mediaId, int $index, $article) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'media_id' => $mediaId, |
||||||
|
'index' => $index, |
||||||
|
'articles' => $article |
||||||
|
]; |
||||||
|
return $this->httpPostJson('cgi-bin/draft/update', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Get draft total count |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function count() |
||||||
|
{ |
||||||
|
return $this->httpPostJson('cgi-bin/draft/count'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Batch get articles from the draft. |
||||||
|
* @param int $offset |
||||||
|
* @param int $count |
||||||
|
* @param int $noContent |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function batchGet(int $offset = 0, int $count = 20, int $noContent = 0) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'offset' => $offset, |
||||||
|
'count' => $count, |
||||||
|
'no_content' => $noContent |
||||||
|
]; |
||||||
|
return $this->httpPostJson('cgi-bin/draft/batchget', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Delete article. |
||||||
|
* @param string $mediaId |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function delete(string $mediaId) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('cgi-bin/draft/delete', ['media_id' => $mediaId]); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,35 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
/** |
||||||
|
* 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\Draft; |
||||||
|
|
||||||
|
use Pimple\Container; |
||||||
|
use Pimple\ServiceProviderInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class ServiceProvider. |
||||||
|
* |
||||||
|
* @author wangdongzhao <elim051@163.com> |
||||||
|
*/ |
||||||
|
class ServiceProvider implements ServiceProviderInterface |
||||||
|
{ |
||||||
|
/** |
||||||
|
* {@inheritdoc}. |
||||||
|
*/ |
||||||
|
public function register(Container $app) |
||||||
|
{ |
||||||
|
$app['draft'] = function ($app) { |
||||||
|
return new Client($app); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,90 @@ |
|||||||
|
<?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\FreePublish; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
use EasyWeChat\Kernel\Messages\Article; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class Client. |
||||||
|
* |
||||||
|
* @author wangdongzhao <elim051@163.com> |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* Get publish status. |
||||||
|
* @param string $publishId |
||||||
|
* @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 $publishId) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('cgi-bin/freepublish/get', ['publish_id' => $publishId]); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Submit article. |
||||||
|
* @param string $mediaId |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function submit(string $mediaId) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('cgi-bin/freepublish/submit', ['media_id' => $mediaId]); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Get article. |
||||||
|
* @param string $articleId |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function getArticle(string $articleId) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('cgi-bin/freepublish/getarticle', ['article_id' => $articleId]); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Batch get articles. |
||||||
|
* @param int $offset |
||||||
|
* @param int $count |
||||||
|
* @param int $noContent |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function batchGet(int $offset = 0, int $count = 20, int $noContent = 0) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'offset' => $offset, |
||||||
|
'count' => $count, |
||||||
|
'no_content' => $noContent |
||||||
|
]; |
||||||
|
return $this->httpPostJson('cgi-bin/freepublish/batchget', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Delete article |
||||||
|
* @param string $articleId |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \GuzzleHttp\Exception\GuzzleException |
||||||
|
*/ |
||||||
|
public function delete(string $articleId) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('cgi-bin/freepublish/delete', ['article_id' => $articleId]); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,35 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
/** |
||||||
|
* 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\FreePublish; |
||||||
|
|
||||||
|
use Pimple\Container; |
||||||
|
use Pimple\ServiceProviderInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class ServiceProvider. |
||||||
|
* |
||||||
|
* @author wangdongzhao <elim051@163.com> |
||||||
|
*/ |
||||||
|
class ServiceProvider implements ServiceProviderInterface |
||||||
|
{ |
||||||
|
/** |
||||||
|
* {@inheritdoc}. |
||||||
|
*/ |
||||||
|
public function register(Container $app) |
||||||
|
{ |
||||||
|
$app['free_publish'] = function ($app) { |
||||||
|
return new Client($app); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,991 @@ |
|||||||
|
<?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\Guide; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
use EasyWeChat\Kernel\Exceptions\InvalidConfigException; |
||||||
|
use EasyWeChat\Kernel\Support\Collection; |
||||||
|
use Psr\Http\Message\ResponseInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class Client. |
||||||
|
* |
||||||
|
* @author MillsGuo <millsguo@gmail.com> |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* 添加顾问 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @param string $guideHeadImgUrl |
||||||
|
* @param string $guideNickname |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function createAdviser($guideAccount = '', $guideOpenid = '', $guideHeadImgUrl = '', $guideNickname = '') |
||||||
|
{ |
||||||
|
$params = $this->selectAccountAndOpenid(array(), $guideAccount, $guideOpenid); |
||||||
|
if (!empty($guideHeadImgUrl)) { |
||||||
|
$params['guide_headimgurl'] = $guideHeadImgUrl; |
||||||
|
} |
||||||
|
if (!empty($guideNickname)) { |
||||||
|
$params['guide_nickname'] = $guideNickname; |
||||||
|
} |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/addguideacct', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取顾问信息 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getAdviser($guideAccount = '', $guideOpenid = '') |
||||||
|
{ |
||||||
|
$params = $this->selectAccountAndOpenid(array(), $guideAccount, $guideOpenid); |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/getguideacct', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 修改顾问的昵称或头像 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @param string $guideHeadImgUrl |
||||||
|
* @param string $guideNickname |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function updateAdviser($guideAccount = '', $guideOpenid = '', $guideHeadImgUrl = '', $guideNickname = '') |
||||||
|
{ |
||||||
|
$params = $this->selectAccountAndOpenid(array(), $guideAccount, $guideOpenid); |
||||||
|
if (!empty($guideHeadImgUrl)) { |
||||||
|
$params['guide_headimgurl'] = $guideHeadImgUrl; |
||||||
|
} |
||||||
|
if (!empty($guideNickname)) { |
||||||
|
$params['guide_nickname'] = $guideNickname; |
||||||
|
} |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/updateguideacct', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 删除顾问 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function deleteAdviser($guideAccount = '', $guideOpenid = '') |
||||||
|
{ |
||||||
|
$params = $this->selectAccountAndOpenid(array(), $guideAccount, $guideOpenid); |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/delguideacct', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取服务号顾问列表 |
||||||
|
* |
||||||
|
* @return mixed |
||||||
|
* |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getAdvisers($count, $page) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'page' => $page, |
||||||
|
'num' => $count |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/getguideacctlist', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 生成顾问二维码 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @param string $qrCodeInfo |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function createQrCode($guideAccount = '', $guideOpenid = '', $qrCodeInfo = '') |
||||||
|
{ |
||||||
|
$params = $this->selectAccountAndOpenid(array(), $guideAccount, $guideOpenid); |
||||||
|
if (!empty($qrCodeInfo)) { |
||||||
|
$params['qrcode_info'] = $qrCodeInfo; |
||||||
|
} |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/guidecreateqrcode', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取顾问聊天记录 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @param string $openid |
||||||
|
* @param int $beginTime |
||||||
|
* @param int $endTime |
||||||
|
* @param int $page |
||||||
|
* @param int $count |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getBuyerChatRecords($guideAccount = '', $guideOpenid = '', $openid = '', $beginTime = 0, $endTime = 0, $page = 1, $count = 100) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'page' => $page, |
||||||
|
'num' => $count |
||||||
|
]; |
||||||
|
$params = $this->selectAccountAndOpenid($params, $guideAccount, $guideOpenid); |
||||||
|
if (!empty($openid)) { |
||||||
|
$params['openid'] = $openid; |
||||||
|
} |
||||||
|
if (!empty($beginTime)) { |
||||||
|
$params['begin_time'] = $beginTime; |
||||||
|
} |
||||||
|
if (!empty($endTime)) { |
||||||
|
$params['end_time'] = $endTime; |
||||||
|
} |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/getguidebuyerchatrecord', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 设置快捷回复与关注自动回复 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @param bool $isDelete |
||||||
|
* @param array $fastReplyListArray |
||||||
|
* @param array $guideAutoReply |
||||||
|
* @param array $guideAutoReplyPlus |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function setConfig($guideAccount = '', $guideOpenid = '', $isDelete = false, $fastReplyListArray = array(), $guideAutoReply = array(), $guideAutoReplyPlus = array()) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'is_delete' => $isDelete |
||||||
|
]; |
||||||
|
$params = $this->selectAccountAndOpenid($params, $guideAccount, $guideOpenid); |
||||||
|
if (!empty($fastReplyListArray)) { |
||||||
|
$params['guide_fast_reply_list'] = $fastReplyListArray; |
||||||
|
} |
||||||
|
if (!empty($guideAutoReply)) { |
||||||
|
$params['guide_auto_reply'] = $guideAutoReply; |
||||||
|
} |
||||||
|
if (!empty($guideAutoReplyPlus)) { |
||||||
|
$params['guide_auto_reply_plus'] = $guideAutoReplyPlus; |
||||||
|
} |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/setguideconfig', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取快捷回复与关注自动回复 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getConfig($guideAccount = '', $guideOpenid = '') |
||||||
|
{ |
||||||
|
try { |
||||||
|
$params = $this->selectAccountAndOpenid(array(), $guideAccount, $guideOpenid); |
||||||
|
} catch (InvalidConfigException $e) { |
||||||
|
$params = array(); |
||||||
|
} |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/getguideconfig', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 设置离线自动回复与敏感词 |
||||||
|
* @param bool $isDelete |
||||||
|
* @param array $blackKeyword |
||||||
|
* @param array $guideAutoReply |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function setAdviserConfig(bool $isDelete, array $blackKeyword = [], array $guideAutoReply = []) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'is_delete' => $isDelete |
||||||
|
]; |
||||||
|
if (!empty($blackKeyword)) { |
||||||
|
$params['black_keyword'] = $blackKeyword; |
||||||
|
} |
||||||
|
if (!empty($guideAutoReply)) { |
||||||
|
$params['guide_auto_reply'] = $guideAutoReply; |
||||||
|
} |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/setguideacctconfig', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取离线自动回复与敏感词 |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getAdviserConfig() |
||||||
|
{ |
||||||
|
return $this->httpPostJson('cgi-bin/guide/getguideacctconfig', array()); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 允许微信用户复制小程序页面路径 |
||||||
|
* @param string $wxaAppid 小程序APPID |
||||||
|
* @param string $wxUsername 微信用户的微信号 |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function allowCopyMiniAppPath(string $wxaAppid, string $wxUsername) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'wxa_appid' => $wxaAppid, |
||||||
|
'wx_username' => $wxUsername |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/pushshowwxapathmenu', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 传入微信号或OPENID二选一 |
||||||
|
* @param array $params |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @return array |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
protected function selectAccountAndOpenid($params, $guideAccount = '', $guideOpenid = '') |
||||||
|
{ |
||||||
|
if (!is_array($params)) { |
||||||
|
throw new InvalidConfigException("传入配置参数必须为数组"); |
||||||
|
} |
||||||
|
if (!empty($guideOpenid)) { |
||||||
|
$params['guide_openid'] = $guideOpenid; |
||||||
|
} elseif (!empty($guideAccount)) { |
||||||
|
$params['guide_account'] = $guideAccount; |
||||||
|
} else { |
||||||
|
throw new InvalidConfigException("微信号和OPENID不能同时为空"); |
||||||
|
} |
||||||
|
|
||||||
|
return $params; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 新建顾问分组 |
||||||
|
* @param string $groupName |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function createGroup(string $groupName) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'group_name' => $groupName |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/newguidegroup', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取顾问分组列表 |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getGuideGroups() |
||||||
|
{ |
||||||
|
return $this->httpPostJson('cgi-bin/guide/getguidegrouplist', array()); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取指定顾问分组信息 |
||||||
|
* @param int $groupId |
||||||
|
* @param int $page |
||||||
|
* @param int $num |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getGroups(int $groupId, int $page, int $num) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'group_id' => $groupId, |
||||||
|
'page' => $page, |
||||||
|
'num' => $num |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/getgroupinfo', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 分组内添加顾问 |
||||||
|
* @param int $groupId |
||||||
|
* @param string $guideAccount |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function addGroupGuide(int $groupId, string $guideAccount) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'group_id' => $groupId, |
||||||
|
'gruide_account' => $guideAccount |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/addguide2guidegroup', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 分组内删除顾问 |
||||||
|
* @param int $groupId |
||||||
|
* @param string $guideAccount |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function deleteGroupGuide(int $groupId, string $guideAccount) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'group_id' => $groupId, |
||||||
|
'guide_account' => $guideAccount |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/delguide2guidegroup', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取顾问所在分组 |
||||||
|
* @param string $guideAccount |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getGuideGroup(string $guideAccount) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'guide_account' => $guideAccount |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/getgroupbyguide', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 删除指定顾问分组 |
||||||
|
* @param int $groupId |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function deleteGroup(int $groupId) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'group_id' => $groupId |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/delguidegroup', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 为顾问分配客户 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @param array $buyerList |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function createBuyerRelation(string $guideAccount, string $guideOpenid, array $buyerList) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'buyer_list' => $buyerList |
||||||
|
]; |
||||||
|
$params = $this->selectAccountAndOpenid($params, $guideAccount, $guideOpenid); |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/addguidebuyerrelation', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 为顾问移除客户 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @param array $openidList |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function deleteBuyerRelation(string $guideAccount, string $guideOpenid, array $openidList) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'openid_list' => $openidList |
||||||
|
]; |
||||||
|
$params = $this->selectAccountAndOpenid($params, $guideAccount, $guideOpenid); |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/delguidebuyerrelation', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取顾问的客户列表 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @param int $page |
||||||
|
* @param int $num |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getBuyerRelations(string $guideAccount, string $guideOpenid, int $page, int $num) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'page' => $page, |
||||||
|
'num' => $num |
||||||
|
]; |
||||||
|
$params = $this->selectAccountAndOpenid($params, $guideAccount, $guideOpenid); |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/getguidebuyerrelationlist', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 为客户更换顾问 |
||||||
|
* @param string $oldGuideTarget |
||||||
|
* @param string $newGuideTarget |
||||||
|
* @param array $openidList |
||||||
|
* @param bool $useTargetOpenid true使用OPENID,false使用微信号 |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function rebindBuyerGuide(string $oldGuideTarget, string $newGuideTarget, array $openidList, bool $useTargetOpenid = true) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'openid_list' => $openidList |
||||||
|
]; |
||||||
|
if ($useTargetOpenid) { |
||||||
|
$params['old_guide_openid'] = $oldGuideTarget; |
||||||
|
$params['new_guide_openid'] = $newGuideTarget; |
||||||
|
} else { |
||||||
|
$params['old_guide_account'] = $oldGuideTarget; |
||||||
|
$params['new_guide_account'] = $newGuideTarget; |
||||||
|
} |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/rebindguideacctforbuyer', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 修改客户昵称 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @param string $openid |
||||||
|
* @param string $nickname |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function updateBuyerRelation(string $guideAccount, string $guideOpenid, string $openid, string $nickname) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'openid' => $openid, |
||||||
|
'buyer_nickname' => $nickname |
||||||
|
]; |
||||||
|
$params = $this->selectAccountAndOpenid($params, $guideAccount, $guideOpenid); |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/updateguidebuyerrelation', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 查询客户所属顾问 |
||||||
|
* @param string $openid |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getBuyerRelation(string $openid) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'openid' => $openid |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/getguidebuyerrelationbybuyer', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 查询指定顾问和客户的关系 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @param string $openid |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getBuyerRelationByGuide(string $guideAccount, string $guideOpenid, string $openid) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'openid' => $openid |
||||||
|
]; |
||||||
|
$params = $this->selectAccountAndOpenid($params, $guideAccount, $guideOpenid); |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/getguidebuyerrelation', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 新建可查询的标签类型 |
||||||
|
* @param string $tagName |
||||||
|
* @param array $tagValues |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function newTagOption(string $tagName, array $tagValues) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'tag_name' => $tagName, |
||||||
|
'tag_values' => $tagValues |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/newguidetagoption', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 删除指定标签类型 |
||||||
|
* @param string $tagName |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function deleteTagOption(string $tagName) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'tag_name' => $tagName |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/delguidetagoption', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 为标签添加可选值 |
||||||
|
* @param string $tagName |
||||||
|
* @param array $tagValues |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function createTagOption(string $tagName, array $tagValues) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'tag_name' => $tagName, |
||||||
|
'tag_values' => $tagValues |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/addguidetagoption', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取标签和可选值 |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getTagOption() |
||||||
|
{ |
||||||
|
return $this->httpPostJson('cgi-bin/guide/getguidetagoption', array()); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 为客户设置标签 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @param array $openidList |
||||||
|
* @param string $tagValue |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function setBuyersTag(string $guideAccount, string $guideOpenid, array $openidList, string $tagValue) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'tag_value' => $tagValue, |
||||||
|
'openid_list' => $openidList |
||||||
|
]; |
||||||
|
$params = $this->selectAccountAndOpenid($params, $guideAccount, $guideOpenid); |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/addguidebuyertag', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 查询客户标签 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @param string $openid |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getBuyerTags(string $guideAccount, string $guideOpenid, string $openid) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'openid' => $openid |
||||||
|
]; |
||||||
|
$params = $this->selectAccountAndOpenid($params, $guideAccount, $guideOpenid); |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/getguidebuyertag', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 根据标签值筛选粉丝 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @param int $pushCount |
||||||
|
* @param array $tagValues |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getBuyerByTag(string $guideAccount, string $guideOpenid, int $pushCount = 0, array $tagValues = array()) |
||||||
|
{ |
||||||
|
$params = $this->selectAccountAndOpenid(array(), $guideAccount, $guideOpenid); |
||||||
|
if ($pushCount > 0) { |
||||||
|
$params['push_count'] = $pushCount; |
||||||
|
} |
||||||
|
if (count($tagValues) > 0) { |
||||||
|
$params['tag_values'] = $tagValues; |
||||||
|
} |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/queryguidebuyerbytag', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 删除客户标签 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @param string $tagValue |
||||||
|
* @param array $openidList |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function deleteBuyerTag(string $guideAccount, string $guideOpenid, string $tagValue, array $openidList) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'tag_value' => $tagValue |
||||||
|
]; |
||||||
|
$params = $this->selectAccountAndOpenid($params, $guideAccount, $guideOpenid); |
||||||
|
if (count($openidList) > 0) { |
||||||
|
$params['openid_list'] = $openidList; |
||||||
|
} |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/delguidebuyertag', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 设置自定义客户信息 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @param string $openid |
||||||
|
* @param array $displayTagList |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function setBuyerDisplayTags(string $guideAccount, string $guideOpenid, string $openid, array $displayTagList) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'openid' => $openid, |
||||||
|
'display_tag_list' => $displayTagList |
||||||
|
]; |
||||||
|
$params = $this->selectAccountAndOpenid($params, $guideAccount, $guideOpenid); |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/addguidebuyerdisplaytag', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取自定义客户信息 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @param string $openid |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getBuyerDisplayTags(string $guideAccount, string $guideOpenid, string $openid) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'openid' => $openid |
||||||
|
]; |
||||||
|
$params = $this->selectAccountAndOpenid($params, $guideAccount, $guideOpenid); |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/getguidebuyerdisplaytag', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 添加小程序卡片素材 |
||||||
|
* @param string $mediaId |
||||||
|
* @param string $title |
||||||
|
* @param string $path |
||||||
|
* @param string $appid |
||||||
|
* @param int $type |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function createCardMaterial(string $mediaId, string $title, string $path, string $appid, int $type = 0) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'media_id' => $mediaId, |
||||||
|
'type' => $type, |
||||||
|
'title' => $title, |
||||||
|
'path' => $path, |
||||||
|
'appid' => $appid |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/setguidecardmaterial', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 查询小程序卡片素材 |
||||||
|
* @param int $type |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getCardMaterial(int $type = 0) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'type' => $type |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/getguidecardmaterial', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 删除小程序卡片素材 |
||||||
|
* @param string $title |
||||||
|
* @param string $path |
||||||
|
* @param string $appid |
||||||
|
* @param int $type |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function deleteCardMaterial(string $title, string $path, string $appid, int $type = 0) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'type' => $type, |
||||||
|
'title' => $title, |
||||||
|
'path' => $path, |
||||||
|
'appid' => $appid |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/delguidecardmaterial', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 添加图片素材 |
||||||
|
* @param string $mediaId |
||||||
|
* @param int $type |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function createImageMaterial(string $mediaId, int $type = 0) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'media_id' => $mediaId, |
||||||
|
'type' => $type |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/setguideimagematerial', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 查询图片素材 |
||||||
|
* @param int $type |
||||||
|
* @param int $start |
||||||
|
* @param int $num |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getImageMaterial(int $type, int $start, int $num) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'type' => $type, |
||||||
|
'start' => $start, |
||||||
|
'num' => $num |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/getguideimagematerial', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 删除图片素材 |
||||||
|
* @param int $type |
||||||
|
* @param string $picUrl |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function deleteImageMaterial(int $type, string $picUrl) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'type' => $type, |
||||||
|
'picurl' => $picUrl |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/delguideimagematerial', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 添加文字素材 |
||||||
|
* @param int $type |
||||||
|
* @param string $word |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function createWordMaterial(int $type, string $word) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'type' => $type, |
||||||
|
'word' => $word |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/setguidewordmaterial', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 查询文字素材 |
||||||
|
* @param int $type |
||||||
|
* @param int $start |
||||||
|
* @param int $num |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getWordMaterial(int $type, int $start, int $num) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'type' => $type, |
||||||
|
'start' => $start, |
||||||
|
'num' => $num |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/getguidewordmaterial', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 删除文字素材 |
||||||
|
* @param int $type |
||||||
|
* @param string $word |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function deleteWordMaterial(int $type, string $word) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'type' => $type, |
||||||
|
'word' => $word |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/delguidewordmaterial', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 添加群发任务,为指定顾问添加群发任务 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @param string $taskName |
||||||
|
* @param string $taskRemark |
||||||
|
* @param int $pushTime |
||||||
|
* @param array $openidArray |
||||||
|
* @param array $materialArray |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function createMasSendJob(string $guideAccount, string $guideOpenid, string $taskName, string $taskRemark, int $pushTime, array $openidArray, array $materialArray) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'task_name' => $taskName, |
||||||
|
'push_time' => $pushTime, |
||||||
|
'openid' => $openidArray, |
||||||
|
'material' => $materialArray |
||||||
|
]; |
||||||
|
if (!empty($taskRemark)) { |
||||||
|
$params['task_remark'] = $taskRemark; |
||||||
|
} |
||||||
|
$params = $this->selectAccountAndOpenid($params, $guideAccount, $guideOpenid); |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/addguidemassendjob', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取群发任务列表 |
||||||
|
* @param string $guideAccount |
||||||
|
* @param string $guideOpenid |
||||||
|
* @param array $taskStatus |
||||||
|
* @param int $offset |
||||||
|
* @param int $limit |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getMasSendJobs(string $guideAccount, string $guideOpenid, array $taskStatus = [], int $offset = 0, int $limit = 50) |
||||||
|
{ |
||||||
|
$params = $this->selectAccountAndOpenid(array(), $guideAccount, $guideOpenid); |
||||||
|
if (!empty($taskStatus)) { |
||||||
|
$params['task_status'] = $taskStatus; |
||||||
|
} |
||||||
|
if ($offset > 0) { |
||||||
|
$params['offset'] = $offset; |
||||||
|
} |
||||||
|
if ($limit != 50) { |
||||||
|
$params['limit'] = $limit; |
||||||
|
} |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/getguidemassendjoblist', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取指定群发任务信息 |
||||||
|
* @param string $taskId |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function getMasSendJob(string $taskId) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'task_id' => $taskId |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/getguidemassendjob', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 修改群发任务 |
||||||
|
* @param string $taskId |
||||||
|
* @param string $taskName |
||||||
|
* @param string $taskRemark |
||||||
|
* @param int $pushTime |
||||||
|
* @param array $openidArray |
||||||
|
* @param array $materialArray |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function updateMasSendJob(string $taskId, string $taskName, string $taskRemark, int $pushTime, array $openidArray, array $materialArray) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'task_id' => $taskId |
||||||
|
]; |
||||||
|
if (!empty($taskName)) { |
||||||
|
$params['task_name'] = $taskName; |
||||||
|
} |
||||||
|
if (!empty($taskRemark)) { |
||||||
|
$params['task_remark'] = $taskRemark; |
||||||
|
} |
||||||
|
if (!empty($pushTime)) { |
||||||
|
$params['push_time'] = $pushTime; |
||||||
|
} |
||||||
|
if (!empty($openidArray)) { |
||||||
|
$params['openid'] = $openidArray; |
||||||
|
} |
||||||
|
if (!empty($materialArray)) { |
||||||
|
$params['material'] = $materialArray; |
||||||
|
} |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/updateguidemassendjob', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 取消群发任务 |
||||||
|
* @param string $taskId |
||||||
|
* @return array|Collection|object|ResponseInterface|string |
||||||
|
* @throws InvalidConfigException |
||||||
|
*/ |
||||||
|
public function cancelMasSendJob(string $taskId) |
||||||
|
{ |
||||||
|
$params = [ |
||||||
|
'task_id' => $taskId |
||||||
|
]; |
||||||
|
|
||||||
|
return $this->httpPostJson('cgi-bin/guide/cancelguidemassendjob', $params); |
||||||
|
} |
||||||
|
} |
@ -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\Guide; |
||||||
|
|
||||||
|
use Pimple\Container; |
||||||
|
use Pimple\ServiceProviderInterface; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class ServiceProvider. |
||||||
|
* |
||||||
|
* @author millsguo <millsguo@gmail.com> |
||||||
|
*/ |
||||||
|
class ServiceProvider implements ServiceProviderInterface |
||||||
|
{ |
||||||
|
/** |
||||||
|
* {@inheritdoc}. |
||||||
|
*/ |
||||||
|
public function register(Container $app) |
||||||
|
{ |
||||||
|
$app['guide'] = function ($app) { |
||||||
|
return new Client($app); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,189 @@ |
|||||||
|
<?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\SubscribeMessage; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
use EasyWeChat\Kernel\Exceptions\InvalidArgumentException; |
||||||
|
use ReflectionClass; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class Client. |
||||||
|
* |
||||||
|
* @author tegic <teg1c@foxmail.com> |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
protected $message = [ |
||||||
|
'touser' => '', |
||||||
|
'template_id' => '', |
||||||
|
'page' => '', |
||||||
|
'miniprogram' => '', |
||||||
|
'data' => [], |
||||||
|
]; |
||||||
|
|
||||||
|
/** |
||||||
|
* {@inheritdoc}. |
||||||
|
*/ |
||||||
|
protected $required = ['touser', 'template_id', 'data']; |
||||||
|
|
||||||
|
/** |
||||||
|
* Combine templates and add them to your personal template library under your account. |
||||||
|
* |
||||||
|
* @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. |
||||||
|
* |
||||||
|
* @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 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'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Get keyword list under template title. |
||||||
|
* |
||||||
|
* @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. |
||||||
|
* |
||||||
|
* @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'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Send a subscribe message. |
||||||
|
* |
||||||
|
* @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/bizsend', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* @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 (\array_key_exists('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']; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
<?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\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); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -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\OpenPlatform\Authorizer\MiniProgram\Material; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
use EasyWeChat\Kernel\Http\StreamResponse; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class Client. |
||||||
|
* |
||||||
|
* @author overtrue <i@overtrue.me> |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* Allow media type. |
||||||
|
* |
||||||
|
* @var array |
||||||
|
*/ |
||||||
|
protected $allowTypes = ['image', 'voice', 'video', 'thumb', 'news_image']; |
||||||
|
|
||||||
|
/** |
||||||
|
* 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')); |
||||||
|
} |
||||||
|
} |
@ -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\OpenPlatform\Authorizer\MiniProgram\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); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -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\OpenPlatform\Authorizer\MiniProgram\Privacy; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
use EasyWeChat\Kernel\Exceptions\InvalidArgumentException; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class Client. |
||||||
|
* |
||||||
|
* @author lujunyi <lujunyi@shopex.cn> |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* 查询小程序用户隐私保护指引. |
||||||
|
*/ |
||||||
|
public function get() |
||||||
|
{ |
||||||
|
return $this->httpPostJson('cgi-bin/component/getprivacysetting', []); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 配置小程序用户隐私保护指引 |
||||||
|
* |
||||||
|
* @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 set(array $params) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('cgi-bin/component/setprivacysetting', $params); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 上传小程序用户隐私保护指引 |
||||||
|
* |
||||||
|
* @param string $path |
||||||
|
* |
||||||
|
* @return array|\EasyWeChat\Kernel\Support\Collection|object|\Psr\Http\Message\ResponseInterface|string |
||||||
|
* |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException |
||||||
|
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException |
||||||
|
* @throws \EasyWeChat\MicroMerchant\Kernel\Exceptions\InvalidSignException |
||||||
|
*/ |
||||||
|
public function upload(string $path) |
||||||
|
{ |
||||||
|
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('cgi-bin/component/uploadprivacyextfile', ['file' => $path]); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
<?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\OpenPlatform\Authorizer\MiniProgram\Privacy; |
||||||
|
|
||||||
|
use Pimple\Container; |
||||||
|
use Pimple\ServiceProviderInterface; |
||||||
|
|
||||||
|
class ServiceProvider implements ServiceProviderInterface |
||||||
|
{ |
||||||
|
public function register(Container $app) |
||||||
|
{ |
||||||
|
$app['privacy'] = function ($app) { |
||||||
|
return new Client($app); |
||||||
|
}; |
||||||
|
} |
||||||
|
} |
@ -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\OpenPlatform\Authorizer\MiniProgram\Security; |
||||||
|
|
||||||
|
use EasyWeChat\Kernel\BaseClient; |
||||||
|
|
||||||
|
/** |
||||||
|
* Class Client. |
||||||
|
* |
||||||
|
* @author lujunyi <lujunyi@shopex.cn> |
||||||
|
*/ |
||||||
|
class Client extends BaseClient |
||||||
|
{ |
||||||
|
/** |
||||||
|
* 获取隐私接口列表. |
||||||
|
*/ |
||||||
|
public function get() |
||||||
|
{ |
||||||
|
return $this->httpGet('wxa/security/get_privacy_interface'); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 申请隐私接口 |
||||||
|
* |
||||||
|
* @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 set(array $params) |
||||||
|
{ |
||||||
|
return $this->httpPostJson('wxa/security/apply_privacy_interface', $params); |
||||||
|
} |
||||||
|
} |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue