/** * 上传媒体文件 * * @param string $type * @param string $path * @param array $params * * @return string */ protected function upload($type, $path, $params = array()) { if (!file_exists($path) || !is_readable($path)) { throw new Exception("文件不存在或不可读 '{$path}'"); } if (!in_array($type, $this->allowTypes, true)) { throw new Exception("错误的媒体类型 '{$type}'"); } $queries = array('type' => $type); $options = array('files' => array('media' => $path)); $url = $this->getUrl($type, $queries); $response = $this->http->post($url, $params, $options); $this->forever = false; if ($type == 'image') { return $response; } $response = Arr::only($response, array('media_id', 'thumb_media_id')); return array_pop($response); }
/** * Remove item form Bag. * * @param string $key */ public function forget($key) { Arr::forget($this->data, $key); }
/** * 生成 js添加到卡包 需要的 card_list 项 * * @param string $cardId * @param array $extension * * @return string */ public function attachExtension($cardId, array $extension = array()) { $timestamp = time(); $ext = array('code' => Arr::get($extension, 'code'), 'openid' => Arr::get($extension, 'openid', Arr::get($extension, 'open_id')), 'timestamp' => $timestamp, 'outer_id' => Arr::get($extension, 'outer_id'), 'balance' => Arr::get($extension, 'balance')); $ext['signature'] = $this->getSignature($this->getTicket(), $timestamp, $cardId, $ext['code'], $ext['openid'], $ext['balance']); return array('card_id' => $cardId, 'card_ext' => JSON::encode($ext)); }
/** * 获取用户列表 * * @param int $offset * @param int $limit * * @return Overtrue\Wechat\Utils\Bag */ public function lists($offset = 0, $limit = 10) { $params = array('begin' => $offset, 'limit' => $limit); $stores = $this->http->jsonPost(self::API_LIST, $params); return Arr::fetch($stores['business_list'], 'base_info'); }