/** * 录入红包信息 * 在调用"创建红包活动"接口之后,调用此接口录入红包信息。注意,此接口每次调用, * 都会向某个活动新增一批红包信息,如果红包数少于100个,请通过一次调用添加所有红包信息。 * 如果红包数大于100,可以多次调用接口添加。请注意确保多次录入的红包ticket总的数目不大于 * 创建该红包活动时设置的total值。 * * @param unknown $accessToken * @param YDWXPacketSetPrizeBucketRequest $request * @throws YDWXException * @return YDWXPacketSetPrizeBucketResponse */ function ydwx_packet_setprizebucket($accessToken, YDWXPacketSetPrizeBucketRequest $request) { $http = new YDHttp(); $info = $http->post(YDWX_WEIXIN_BASE_URL2 . "shakearound/lottery/setprizebucket?access_token={$accessToken}", $request->toJSONString()); $rst = new YDWXPacketSetPrizeBucketResponse($info); if (!$rst->isSuccess()) { throw new YDWXException($rst->errmsg . $request->toJSONString(), $rst->errcode); } return $rst; }
/** * 创建菜单 * * @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); }
/** * 母商户可以通过该接口批量拉取子商户的相关信息,一次调用最多拉取 100 个子商户 * 的信息,可以通过多次拉去满足不同的查询需求。 * * @param unknown $accessTokent 第三方平台的access token * @throws YDWXException * @return YDWXCardMPMerchantBatchGetResponse */ function ydwx_card_batchget_mpmerchant($accessToken, $next_get) { $http = new YDHttp(); $info = $http->post(YDWX_WEIXIN_BASE_URL . "component/batchget_card_merchant?access_token={$accessToken}", ydwx_json_encode(array("next_get" => $next_get))); $msg = new YDWXCardMPMerchantBatchGetResponse($info); if ($msg->isSuccess()) { return $msg; } throw new YDWXException($msg->errmsg, $msg->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; }
/** * 根据分组群发消息, 要求认证 * * @see http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html#.E6.A0.B9.E6.8D.AE.E5.88.86.E7.BB.84.E8.BF.9B.E8.A1.8C.E7.BE.A4.E5.8F.91.E3.80.90.E8.AE.A2.E9.98.85.E5.8F.B7.E4.B8.8E.E6.9C.8D.E5.8A.A1.E5.8F.B7.E8.AE.A4.E8.AF.81.E5.90.8E.E5.9D.87.E5.8F.AF.E7.94.A8.E3.80.91 * @param unknown $accessToken * @param YDWXMassByGroupRequest $arg * @return YDWXMassResponse */ function ydwx_message_send_by_group($accessToken, YDWXMassByGroupRequest $arg) { $openids = (array) $openids; $http = new YDHttp(); $info = $http->post(YDWX_WEIXIN_BASE_URL . "message/mass/sendall?access_token={$accessToken}", $arg->toJSONString()); return new YDWXMassResponse($info); }
/** * 拉取会员卡数据接口 * * 为支持开发者调用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); }
/** * 新增视频类型永久素材 * * @param unknown $accessToken * @param unknown $media * @param unknown $title 视频素材的标题 * @param unknown $introduction 视频素材的描述 * @throws YDWXException * @return YDWXMaterialResponse */ function ydwx_media_add_material_video($accessToken, $media, $title, $introduction) { $http = new YDHttp(); $info = $http->post(YDWX_WEIXIN_BASE_URL . "material/add_material?access_token={$accessToken}&type=video", array("media" => "@" . $media, "description" => ydwx_json_encode(array("title" => $title, "introduction" => $introduction))), true); $msg = new YDWXMaterialResponse($info); if ($msg->isSuccess()) { return $msg; } throw new YDWXException($msg->errmsg); }
/** * 支持通过指定子商户 ID 拉取 子商户信息。 * @param unknown $accessToken 第三方平台的access token * @param unknown $merchant_id * @throws YDWXException * @return YDWXCardSubmerchantResponse */ function ydwx_card_submerchant_get($accessToken, $merchant_id) { $http = new YDHttp(); $info = $http->post(YDWX_WEIXIN_BASE_URL2 . "card/submerchant/get?access_token={$accessToken}", ydwx_json_encode(array("merchant_id" => intval($merchant_id)))); $msg = new YDWXCardSubmerchantResponse($info); if ($msg->isSuccess()) { return $msg; } throw new YDWXException($msg->errmsg, $msg->errcode); }
/** * 批量查询页面统计数据接口 * 接口说明 查询指定时间商家帐号下的每个页面进行摇周边操作的人数、次数,点击摇周边消息的人数、次数。 * 只能查询最近90天内的数据,且一次只能查询一天。 * 此接口无法获取当天的数据,最早只能获取前一天的数据。由于系统在凌晨处理前一天的数据,太早调用此接口可能获取不到数据,建议在早上8:00之后调用此接口。 * 注意:对于摇周边人数、摇周边次数、点击摇周边消息的人数、点击摇周边消息的次数都为0的页面,不在结果列表中返回。 * @param unknown $accessToken * @param unknown $date * @param unknown $page * @throws YDWXException * @return YDWXZBPageStatisticResult */ function ydwx_shakearound_statistics_pagelist($accessToken, $date, $page) { $http = new YDHttp(); $array = array(); $array['page_index'] = $page; $array['date'] = $date; $info = $http->post(YDWX_WEIXIN_BASE_URL2 . "shakearound/statistics/pagelist?access_token={$accessToken}", ydwx_json_encode($array)); $msg = new YDWXZBPageStatisticResult($info); if ($msg->isSuccess()) { return $msg; } 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); }
/** * 删除门店 * 商户可以通过该接口,删除已经成功创建的门店。请商户慎重调用该接口,门店信息被删除后,可能会影响其他与门店相关的业务使用,如卡券等。同样,该门店信息也不会在微信的商户详情页显示,不会再推荐入附近功能。 * * @param unknown $accessToken * @param unknown $poiid * @throws YDWXException * @return boolean */ function ydwx_poi_delete($accessToken, $poiid) { $http = new YDHttp(); $info = $http->post(YDWX_WEIXIN_BASE_URL . "poi/delpoi?access_token={$accessToken}", ydwx_json_encode(array("poi_id" => $poiid))); $msg = new YDWXResponse($info); if ($msg->isSuccess()) { return true; } throw new YDWXException($msg->errmsg); }
/** * 微信统一下单接口,根据构造YDWXPayUnifiedOrderRequest的方式不同返回不同 * 通过 new YDWXPayUnifiedOrderRequest(true);返回的YDWXPayUnifiedOrderResponse中会有code_url(二维码内容) * 其他情况没用 * * 建议采用http://ydimage.yidianhulian.com/qrcode?str=二维码内容来生产二维码 * * @param YDWXPayUnifiedOrderRequest arg * @return YDWXPayUnifiedOrderResponse */ function ydwx_pay_unifiedorder(YDWXPayUnifiedOrderRequest $arg) { $arg->sign(); $args = $arg->toXMLString(); $http = new YDHttp(); $info = $http->post(YDWX_WEIXIN_PAY_URL . "pay/unifiedorder", $args); $msg = new YDWXPayUnifiedOrderResponse($info); if (!$msg->isSuccess()) { throw new YDWXException($msg->errmsg, $msg->errcode); } return $msg; }