/** * 卡券类目查询接口 * 通过调用该接口查询卡券开放的类目ID,类目会随业务发展变更,请每次用接口去查询获取实时卡券类目。 * 注意: * 本接口查询的返回值还有卡券资质ID,此处的卡券资质为:已微信认证的公众号通过微信公众平台申请卡券功能时,所需的资质。 * 对于开发者协助制券(无公众号)模式,子商户无论选择什么类目,均暂不需提供资质,所以不用考虑此处返回的资质字段,返回值仅参考类目ID 即可。 * * @param unknown $accessToken 第三方平台的access token * @throws YDWXException * @return array YDWXCardApplyProtocol 组成的数组 */ function ydwx_card_getapplyprotocol($accessToken) { $http = new YDHttp(); $info = $http->get(YDWX_WEIXIN_BASE_URL2 . "card/getapplyprotocol?access_token={$accessToken}"); $msg = new YDWXResponse($info); $array = array(); if ($msg->isSuccess()) { foreach ($msg->category as $category) { $protocol = new YDWXCardApplyProtocol(); $protocol->category_id = $category['primary_category_id']; $protocol->category_name = $category['category_name']; $protocol->secondary_category = array(); foreach ($category['secondary_category'] as $sub) { $secondary = new YDWXCardApplyProtocol(); $secondary->category_id = $sub['secondary_category_id']; $secondary->category_name = $sub['category_name']; $secondary->can_choose_payment_card = $sub['can_choose_payment_card']; $secondary->can_choose_prepaid_card = $sub['can_choose_prepaid_card']; $protocol->secondary_category[] = $secondary; } $array[] = $protocol; } return $array; } throw new YDWXException($msg->errmsg, $msg->errcode); }
/** * 该接口用于查询子商户资质审核的结果,审核通过后才能进行后续授权流程。注意,用母商户去调用接口,但接口内传入的是子商户的 appid。 * @param unknown $accessTokent 第三方平台的access token * @param unknown $appid * @throws YDWXException * @return YDWX_CARD_CHECK_AGENT_QUALIFICATION_XX常量 */ function ydwx_card_check_mpmerchant_qualification($accessToken, $appid) { $http = new YDHttp(); $info = $http->post(YDWX_WEIXIN_BASE_URL . "component/check_card_merchant_qualification?access_token={$accessToken}", ydwx_json_encode(array("appid" => $appid))); $msg = new YDWXResponse($info); if ($msg->isSuccess()) { return $msg->result; } throw new YDWXException($msg->errmsg, $msg->errcode); }
/** * 上传图片得到URL, * 上传图文消息内的图片获取URL * 请注意,本接口所上传的图片不占用公众号的素材库中图片数量的5000个的限制。 * 图片仅支持jpg/png格式,大小必须在1MB以下。 * @param unknown $accessToken * @param string $media 绝对路径 * @return url * @throws YDWXException */ function ydwx_media_uploadimg($accessToken, $media) { $http = new YDHttp(); $info = $http->post(YDWX_WEIXIN_BASE_URL . "media/uploadimg?access_token={$accessToken}", array("media" => "@" . $media), true); $msg = new YDWXResponse($info); if ($msg->isSuccess()) { return $msg->url; } throw new YDWXException($msg->errmsg); }
/** * 设置红包活动抽奖开关 * * 开发者实时控制红包活动抽奖的开启和关闭。 * 注意活动抽奖开关只在红包活动有效期之内才能生效, * 如果不能确定红包活动有效期,请尽量将红包活动有效期的范围设置大。 * * @param unknown $accessToken * @param unknown $lottery_id 红包抽奖id,来自addlotteryinfo返回的lottery_id * @param boolean $onoff 活动抽奖开关,false:关闭,true:开启 * @throws YDWXException * @return boolean */ function ydwx_packet_setlotteryswitch($accessToken, $lottery_id, $onoff) { $http = new YDHttp(); $info = $http->get(YDWX_WEIXIN_BASE_URL2 . "shakearound/lottery/setlotteryswitch?access_token={$accessToken}&lottery_id={$lottery_id}&onoff=" . ($onoff ? "1" : "0")); $rst = new YDWXResponse($info); if (!$rst->isSuccess()) { throw new YDWXException($rst->errmsg, $rst->errcode); } return true; }
/** * 创建菜单 * * @param unknown $accessToken * @param unknown $menus YDWXMenu数组 * @return boolean * @see http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html */ function ydwx_menu_create($accessToken, $menus) { if (YDWX_WEIXIN_ACCOUNT_TYPE == YDWX_WEIXIN_ACCOUNT_TYPE_SUBSCRIBE && !YDWX_WEIXIN_IS_AUTHED) { throw new YDWXException("不支持创建菜单"); } $http = new YDHttp(); $save_menus = array(); foreach ($menus as $menu) { $save_menus['button'][] = $menu->toArray(); } $info = $http->post(YDWX_WEIXIN_BASE_URL . "menu/create?access_token=" . $accessToken, ydwx_json_encode($save_menus)); $res = new YDWXResponse($info); if ($res->isSuccess()) { return true; } throw new YDWXException($res->errmsg, $res->errcode); }
/** * 获取公众号中所设置的客服基本信息,包括客服工号、客服昵称、客服登录账号。 * * @param unknown $accessToken * @throws YDWXException * @return multitype:KFAccount */ function ydwx_kfaccount_getall($accessToken) { $http = new YDHttp(); $info = $http->post(YDWX_WEIXIN_BASE_URL . "customservice/getkflist?access_token={$accessToken}"); $rst = new YDWXResponse($info); if (!$rst->isSuccess()) { throw new YDWXException($rst->errmsg); } $rsts = array(); foreach ($rst->kf_list as $list) { $kf = new KFAccount(); $kf->kf_account = $list['kf_account']; $kf->kf_nick = $list['kf_nick']; $kf->kf_id = $list['kf_id']; $kf->kf_headimgurl = $list['kf_headimgurl']; $rsts[] = $kf; } return $rsts; }
/** * 设置行业可在MP中完成,每月可修改行业1次,账号仅可使用所属行业中相关的模板, * 为方便第三方开发者,提供通过接口调用的方式来修改账号所属行业 * * @param String $accessToken * @param String $id1 见 YDWX_INDUSTRY_XX * @param String $id2 见 YDWX_INDUSTRY_XX * * @return void */ function ydwx_message_template_set_industry($accessToken, $id1, $id2) { if (!YDWX_WEIXIN_IS_AUTHED || YDWX_WEIXIN_ACCOUNT_TYPE != YDWX_WEIXIN_ACCOUNT_TYPE_SERVICE) { throw new YDWXException("发送模板消息, 要求是认证的服务号"); } $http = new YDHttp(); $info = $http->post(YDWX_WEIXIN_BASE_URL . "template/api_set_industry?access_token={$accessToken}", ydwx_json_encode(array("industry_id1" => $id1, "industry_id2" => $id2))); $rst = new YDWXResponse($info); if (!$rst->isSuccess()) { throw new YDWXException($rst->errmsg); } }
/** * 拉取会员卡数据接口 * * 为支持开发者调用API查看卡券相关数据,微信卡券团队封装数据接口并面向具备卡券功能权限的开发者开放使用。开发者调用该接口可获取本商户下的所有卡券相关的总数据以及指定卡券的相关数据。开发过程请务必注意以下事项: * 1.查询时间区间需<=62天,否则报错{errcode: 61501,errmsg: "date range error"}; * 2.传入时间格式需严格参照示例填写”2015-06-15”,否则报错{errcode":61500,"errmsg":"date format error"}; * 3.需在获取卡券相关数据前区分卡券创建渠道:公众平台创建、调用卡券接口创建。 * * 支持开发者调用该接口拉取公众平台创建的会员卡相关数据。 * @param unknown $accessToken * @param unknown $begindate * @param unknown $enddate * @param unknown $cond_source * @throws YDWXException * @return multitype:YDWXCardCardStatistic */ function ydwx_card_datacube_getmembercardinfo($accessToken, $begindate, $enddate, $cond_source) { $http = new YDHttp(); $info = $http->post(YDWX_WEIXIN_BASE_URL2 . "datacube/getcardmembercardinfo?access_token={$accessToken}", ydwx_json_encode(array("begin_date" => $begindate, "end_date" => $enddate, "cond_source" => $cond_source))); $msg = new YDWXResponse($info); if ($msg->isSuccess()) { $array = array(); foreach ($msg->list as $info) { $obj = new YDWXMemberCardStatistic(); foreach ($info as $name => $value) { $obj->{$name} = $value; } $array[] = $obj; } return $array; } throw new YDWXException($msg->errmsg); }
/** * * 以页面为维度的数据统计接口 * 接口说明 查询单个页面通过摇周边摇出来的人数、次数,点击摇周边页面的人数、次数;查询的最长时间跨度为30天。只能查询最近90天的数据。 * 此接口无法获取当天的数据,最早只能获取前一天的数据。由于系统在凌晨处理前一天的数据,太早调用此接口可能获取不到数据,建议在早上8:00之后调用此接口。 * * @param unknown $accessToken * @param unknown $pageid * @param unknown $begin * @param unknown $end * @throws YDWXException * @return multitype:YDWXZBStatistic YDWXZBStatistic组成的数组 */ function ydwx_shakearound_statistics_page($accessToken, $pageid, $begin, $end) { $http = new YDHttp(); $array = array(); $array['page_id'] = intval($pageid); $array['begin_date'] = $beginDate; $array['end_date'] = $endDate; $info = $http->post(YDWX_WEIXIN_BASE_URL2 . "shakearound/statistics/page?access_token={$accessToken}", ydwx_json_encode($array)); $msg = new YDWXResponse($info); if ($msg->isSuccess()) { $array = array(); foreach ($msg->data as $info) { $stistic = new YDWXZBStatistic(); $stistic->click_pv = $info['click_pv']; $stistic->click_uv = $info['click_uv']; $stistic->ftime = $info['ftime']; $stistic->shake_pv = $info['shake_pv']; $stistic->shake_uv = $info['shake_uv']; $array[] = $stistic; } return $array; } throw new YDWXException($msg->errmsg); }
/** * 该 API 用于第三方平台确认接受公众号将某权限集高级权限的授权 * @param unknown $appid * @param unknown $funcscope_category_id 功能集合,见YDWX_FUNC_XX常量 * @param boolean $confirm true 确认 false取消 * @throws YDWXException * @return boolean */ function ydwx_agent_confirm_authorization($appid, $funcscope_category_id, $confirm) { $accessToken = YDWXHook::do_hook(YDWXHook::GET_AGENT_ACCESS_TOKEN); $http = new YDHttp(); $info = $http->post(YDWX_WEIXIN_BASE_URL . "component/api_confirm_authorization?component_access_token={$accessToken}", ydwx_json_encode(array("component_appid" => YDWX_WEIXIN_COMPONENT_APP_ID, "authorizer_appid" => $appid, "funcscope_category_id" => $funcscope_category_id, "confirm_value" => $confirm ? 1 : 2))); $msg = new YDWXResponse($info); if ($msg->isSuccess()) { return true; } throw new YDWXException($msg->errmsg); }
/** * 取得poi类目 * @param unknown $accessToken * @throws YDWXException * @return array */ function ydwx_poi_getwxcategory($accessToken) { $http = new YDHttp(); $info = $http->get(YDWX_WEIXIN_BASE_URL . "api_getwxcategory?access_token={$accessToken}"); $msg = new YDWXResponse($info); if ($msg->isSuccess()) { return $msg->category_list; } throw new YDWXException($msg->errmsg); }