Ejemplo n.º 1
0
 /**
  * 上传图文消息内的图片获取URL
  * 
  * @param  string $file 上传的文件(图片仅支持jpg/png格式,大小必须在1MB以下)
  * @return string       url
  */
 public function uploadImg($file)
 {
     if (filesize($file) > 1024 * 1024) {
         throw new Exception(sprintf(trans('wechat.file_max'), '1M'));
     }
     if (!in_array(mb_strtolower(pathinfo($file, PATHINFO_EXTENSION)), ['jpg', 'png'])) {
         throw new Exception(sprintf(trans('wechat.file_type'), '*.jpg, *.png'));
     }
     $json = $this->http->postJson('https://api.weixin.qq.com/cgi-bin/media/uploadimg', ['query' => ['access_token' => wechat()->getAccessToken()], 'multipart' => [['name' => basename($file), 'filename' => basename($file), 'contents' => fopen($file, 'r')]]]);
     $this->exceptionOrNot($json);
     return $json->url;
 }
 /**
  * Run the request filter.
  *
  * @param  \Illuminate\Http\Request $request
  * @param  \Closure $next
  * @return mixed
  * @throws \Exception
  */
 public function handle($request, Closure $next)
 {
     if (!$request->has('signature') || !$request->has('timestamp') || !$request->has('nonce')) {
         throw new \Exception(trans('wechat.illegal_access'));
     }
     $signature = $request->input('signature');
     $timestamp = $request->input('timestamp');
     $nonce = $request->input('nonce');
     $app = wechat($request->route('one'));
     if (!$app->checkSignature($signature, $timestamp, $nonce)) {
         throw new \Exception(trans('wechat.illegal_access'));
     }
     return $next($request);
 }
Ejemplo n.º 3
0
 /**
  * POST请求,由微信主动推送的消息
  * 
  * @param  Request $request 请求
  * @param  [type]  $uniqid  应用的唯一标识,为空时默认为配置中得第一个
  * @return [type]           返回给微信的消息
  */
 public function postAccess(Request $request, $uniqid = null)
 {
     $message = $request->getContent();
     if (empty($message)) {
         echo trans('wechat.data_error');
         exit;
     }
     $app = wechat($uniqid);
     // 找不到uniqid的应用,终止执行
     if (is_null($app)) {
         echo trans('wechat.wechat_not_available');
         exit;
     }
     Log::info("{$uniqid} receve message : {$message}");
     $message = simplexml_load_string($message, 'SimpleXMLElement', LIBXML_NOCDATA);
     return response($app->handle($message));
 }
Ejemplo n.º 4
0
<?php

use Hsin\Wechat\Results\TextResult;
wechat()->on('text', function ($message) {
    return wechat_result(TextResult::class, ['fromUserName' => trim($message->ToUserName), 'toUserName' => trim($message->FromUserName), 'content' => 'hello wechat.']);
});
// wechat('wx...')->on('text', function ($message) {
// 	return wechat_result(TextResult::class, [
//         'fromUserName' => trim($message->ToUserName),
//         'toUserName' => trim($message->FromUserName),
//         'content' => 'hello wechat.',
//     ]);
// });