- 按 docs/renew-code-comment.md 将 PHP 文件头改为带边框的 Author 注释\n- 注释中的 crmeb.com 替换为 uj345.cn(代码字符串中的外链未改)\n- 新增 docs/renew-code-comment.md 说明 Made-with: Cursor
60 lines
1.8 KiB
PHP
60 lines
1.8 KiB
PHP
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | Author: ScottPan Team
|
|
// +----------------------------------------------------------------------
|
|
|
|
namespace crmeb\services\wechat\client\official;
|
|
|
|
|
|
use crmeb\services\wechat\client\BaseClient;
|
|
use crmeb\services\wechat\message\MessageInterface;
|
|
use crmeb\services\wechat\message\Raw;
|
|
use EasyWeChat\Kernel\HttpClient\AccessTokenAwareClient;
|
|
use EasyWeChat\Kernel\HttpClient\Response;
|
|
use Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface;
|
|
use Symfony\Contracts\HttpClient\ResponseInterface;
|
|
|
|
/**
|
|
* 消息
|
|
* Class StaffClient
|
|
* @author 等风来
|
|
* @email 136327134@qq.com
|
|
* @date 2023/9/14
|
|
* @package crmeb\services\wechat\client\offical
|
|
*/
|
|
class StaffClient extends BaseClient
|
|
{
|
|
|
|
/**
|
|
* 发送消息
|
|
* @param MessageInterface|string $message
|
|
* @param string $to
|
|
* @param string $account
|
|
* @return Response|ResponseInterface
|
|
* @throws TransportExceptionInterface
|
|
* @author 等风来
|
|
* @email 136327134@qq.com
|
|
* @date 2023/9/14
|
|
*/
|
|
public function send(MessageInterface|string $message, string $to, string $account = ''): ResponseInterface|Response
|
|
{
|
|
if (empty($message)) {
|
|
throw new \RuntimeException('No message to send.');
|
|
}
|
|
|
|
if ($message instanceof Raw) {
|
|
$message = json_decode($message->get('content'), true);
|
|
} else {
|
|
$prepends = [
|
|
'touser' => $to,
|
|
];
|
|
if ($account) {
|
|
$prepends['customservice'] = ['kf_account' => $account];
|
|
}
|
|
$message = $message->transformForJsonRequest($prepends);
|
|
}
|
|
|
|
return $this->api->postJson('cgi-bin/message/custom/send', $message);
|
|
}
|
|
}
|