40 lines
1.1 KiB
PHP
40 lines
1.1 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace Yzh;
|
||
|
|
|
||
|
|
use Yzh\Utils\Rsa;
|
||
|
|
use Yzh\Utils\Hmac;
|
||
|
|
use Yzh\Utils\MessString;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 专属客服链接
|
||
|
|
* Class CustomerLinkClient
|
||
|
|
*/
|
||
|
|
class CustomerLinkClient extends BaseClient
|
||
|
|
{
|
||
|
|
/**
|
||
|
|
* 获取客服链接
|
||
|
|
* @return str
|
||
|
|
*/
|
||
|
|
public function getCustomerLink($base_url, $member_id)
|
||
|
|
{
|
||
|
|
|
||
|
|
$mess = MessString::rand(16);
|
||
|
|
$timestamp = time();
|
||
|
|
$signature = "";
|
||
|
|
$encodesign = "";
|
||
|
|
// 签名
|
||
|
|
$signdata = "data=member_id=".$member_id."&mess=".$mess."×tamp=".$timestamp."&key=".$this->config->app_key;
|
||
|
|
|
||
|
|
if ($this->config->sign_type == Config::SIGN_TYPE_RSA) {
|
||
|
|
$signature = $this->rsa->sign($signdata);
|
||
|
|
}else if($this->config->sign_type == Config::SIGN_TYPE_HMAC) {
|
||
|
|
$signature = $this->hmac->sign($signdata);
|
||
|
|
}
|
||
|
|
|
||
|
|
$encodesign = urlencode($signature);
|
||
|
|
|
||
|
|
$url = $base_url."?sign_type=".$this->config->sign_type."&sign=".$encodesign."&member_id=".$member_id."&mess=".$mess."×tamp=".$timestamp;
|
||
|
|
return $url;
|
||
|
|
}
|
||
|
|
}
|