作者 Cool

融云服务端实时消息路由调试

... ... @@ -139,10 +139,73 @@ class Index extends Frontend
}
}
public function test_c() {
// $appSecret = config('rongyun.config')['appsecret']; // 开发者平台分配的 App Secret。
// $nonce = $param['nonce']; // 获取随机数。
// $timestamp = $param['signTimestamp']; // 获取时间戳。
// $signature = $param['signature']; // 获取数据签名。
// $local_signature = sha1($appSecret.$nonce.$timestamp); // 生成本地签名。
// if(strcmp($signature, $local_signature)===0){
// echo'OK';
// } else {
// echo 'ERROR';
// }
// $content = str_replace('"','"',$param['content']);
// $content = json_decode($content,true);
// var_dump($content);
}
// 融云服务端实时消息回调
public function callback() {
$param = $this->request->param();
Cache::set('aaa',$param);
Log::write(date('Y-m-d H:i') . '成功,返回结果:' . json_encode($param, JSON_UNESCAPED_UNICODE), 'rongyun_msg');
return json_encode(['code'=>200,'msg'=>'成功']);exit;
$appSecret = config('rongyun.config')['appsecret']; // 开发者平台分配的 App Secret。
$nonce = $param['nonce']; // 获取随机数。
$timestamp = $param['signTimestamp']; // 获取时间戳。
$signature = $param['signature']; // 获取数据签名。
$local_signature = sha1($appSecret.$nonce.$timestamp); // 生成本地签名。
if(strcmp($signature, $local_signature)===0){
$order = Db::name('order')->where('chat_id',$param['toUserId'])->find();
if($order) {
$content = str_replace('"','"',$param['content']);
$content = json_decode($content,true);
// 处理消息类型
$text = $image = $file = '';
switch ($param['objectName']) {
case 'RC:TxtMsg':
$type = 1;
$text = $content['content'];
break;
case 'RC:ImgMsg':
$type = 2;
$image = $content['content'];
break;
case 'RC:ImgTextMsg':
$type = 3;
$file = $content['content'];
break;
default:
$type = 1;
}
$send_id = Db::name('user')->where(['rongyun_id'=>$param['fromUserId']])->value('id');
$order_chat = [
'order_id' => $order['id'],
'chat_id' => $param['toUserId'],
'send_id' => $send_id,
'receive_id' => $order['teacher_id'],
'type' => $type,
'text' => $text,
'image' => $image,
'file' => $file,
'more' => json_encode($param,JSON_UNESCAPED_UNICODE),
'createtime' => time(),
'updatetime' => time()
];
$result = Db::name('order_chat')->insertGetId($order_chat);
}
Log::write(date('Y-m-d H:i') . '签名验证成功,返回结果:' . json_encode($param, JSON_UNESCAPED_UNICODE), 'rongyun_msg');
} else {
Log::write(date('Y-m-d H:i') . '签名验证失败,返回结果:' . json_encode($param, JSON_UNESCAPED_UNICODE), 'rongyun_msg');
}
echo json_encode(['code'=>200,'msg'=>'成功']);exit;
}
}
... ...