微信公共平台Node库API,ES6版本
上传Logo
Examples:
api.uploadLogo('filepath');
Result:
{
"errcode":0,
"errmsg":"ok",
"url":"http://mmbiz.qpic.cn/mmbiz/iaL1LJM1mF9aRKPZJkmG8xXhiaHqkKSVMMWeN3hLut7X7hicFNjakmxibMLGWpXrEXB33367o7zHN0CwngnQY7zb7g/0"
}
``` * @name uploadLogo
方法签名
属性 | exports.uploadLogo | ||
参数 | filepath(String) | 文件路径 |
方法签名
属性 | exports.addLocations | ||
名字 | addLocations | ||
参数 | locations(Array) | 位置 |
获取用户已领取的卡券
详细细节 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1451025272&token=&lang=zh_CN
Examples:
api.getCardList('openid', 'card_id');
方法签名
属性 | exports.getCardList | ||
参数 | openid(String) | 用户的openid |
|
参数 | cardId(String) | 卡券的card_id |
根据 appid 和 appsecret 创建API的构造函数
如需跨进程跨机器进行操作Wechat API(依赖access token),access token需要进行全局维护
使用策略如下:
var API = require('wechat-api');
var api = new API('appid', 'secret');
以上即可满足单进程使用。
当多进程时,token 需要全局维护,以下为保存 token 的接口。
var api = new API('appid', 'secret', async function () {
// 传入一个获取全局 token 的方法
var txt = await fs.readFile('access_token.txt', 'utf8');
return JSON.parse(txt);
}, async function (token) {
// 请将 token 存储到全局,跨进程、跨机器级别的全局,比如写到数据库、redis等
// 这样才能在cluster模式及多机情况下使用,以下为写入到文件的示例
await fs.writeFile('access_token.txt', JSON.stringify(token));
});
方法签名
function Object() { [native code] } | constructor() | ||
参数 | appid(String) | 在公众平台上申请得到的appid |
|
参数 | appsecret(String) | 在公众平台上申请得到的app secret |
|
参数 | getToken(AsyncFunction) | 可选的。获取全局token对象的方法,多进程模式部署时需在意 |
|
参数 | saveToken(AsyncFunction) | 可选的。保存全局token对象的方法,多进程模式部署时需在意 |
用于设置urllib的默认options * Examples:
api.setOpts({timeout: 15000});
方法签名
方法 | setOpts() | ||
参数 | opts(Object) | 默认选项 |
用于支持对象合并。将对象合并到API.prototype上,使得能够支持扩展
Examples:
// 媒体管理(上传、下载)
API.mixin(require('./lib/api_media'));
方法签名
方法 | API.mixin() | ||
参数 | obj(Object) | 要合并的对象 |
获取客服聊天记录
详细请看:http://mp.weixin.qq.com/wiki/19/7c129ec71ddfa60923ea9334557e8b23.html
Opts:
{
"starttime" : 123456789,
"endtime" : 987654321,
"openid": "OPENID", // 非必须
"pagesize" : 10,
"pageindex" : 1,
}
Examples:
var result = await api.getRecords(opts);
Result:
{
"recordlist": [
{
"worker": " test1",
"openid": "oDF3iY9WMaswOPWjCIp_f3Bnpljk",
"opercode": 2002,
"time": 1400563710,
"text": " 您好,客服test1为您服务。"
},
{
"worker": " test1",
"openid": "oDF3iY9WMaswOPWjCIp_f3Bnpljk",
"opercode": 2003,
"time": 1400563731,
"text": " 你好,有什么事情? "
},
]
}
方法签名
属性 | exports.getRecords | ||
参数 | opts(Object) | 查询条件 |
获取客服基本信息
详细请看:http://dkf.qq.com/document-3_1.html
Examples:
var result = await api.getCustomServiceList();
Result:
{
"kf_list": [
{
"kf_account": "test1@test",
"kf_nick": "ntest1",
"kf_id": "1001"
},
{
"kf_account": "test2@test",
"kf_nick": "ntest2",
"kf_id": "1002"
},
{
"kf_account": "test3@test",
"kf_nick": "ntest3",
"kf_id": "1003"
}
]
}
方法签名
属性 | exports.getCustomServiceList |
获取在线客服接待信息
详细请看:http://dkf.qq.com/document-3_2.html * Examples:
var result = await api.getOnlineCustomServiceList();
Result:
{
"kf_online_list": [
{
"kf_account": "test1@test",
"status": 1,
"kf_id": "1001",
"auto_accept": 0,
"accepted_case": 1
},
{
"kf_account": "test2@test",
"status": 1,
"kf_id": "1002",
"auto_accept": 0,
"accepted_case": 2
}
]
}
方法签名
属性 | exports.getOnlineCustomServiceList |
添加客服账号
详细请看:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1458044813&token=&lang=zh_CN * Examples:
var result = await api.addKfAccount('test@test', 'nickname', 'password');
Result:
{
"errcode" : 0,
"errmsg" : "ok",
}
方法签名
属性 | exports.addKfAccount | ||
参数 | account(String) | 账号名字,格式为:前缀@公共号名字 |
|
参数 | nick(String) | 昵称 |
邀请绑定客服帐号
详细请看:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1458044813&token=&lang=zh_CN
Examples:
var result = await api.inviteworker('test@test', 'invite_wx');
Result:
{
"errcode" : 0,
"errmsg" : "ok",
}
方法签名
属性 | exports.inviteworker | ||
参数 | account(String) | 账号名字,格式为:前缀@公共号名字 |
|
参数 | wx(String) | 邀请绑定的个人微信账号 |
设置客服账号
详细请看:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1458044813&token=&lang=zh_CN * Examples:
api.updateKfAccount('test@test', 'nickname', 'password');
Result:
{
"errcode" : 0,
"errmsg" : "ok",
}
方法签名
属性 | exports.updateKfAccount | ||
参数 | account(String) | 账号名字,格式为:前缀@公共号名字 |
|
参数 | nick(String) | 昵称 |
删除客服账号
详细请看:http://mp.weixin.qq.com/wiki/9/6fff6f191ef92c126b043ada035cc935.html * Examples:
api.deleteKfAccount('test@test');
Result:
{
"errcode" : 0,
"errmsg" : "ok",
}
方法签名
属性 | exports.deleteKfAccount | ||
参数 | account(String) | 账号名字,格式为:前缀@公共号名字 |
设置客服头像
详细请看:http://mp.weixin.qq.com/wiki/9/6fff6f191ef92c126b043ada035cc935.html * Examples:
api.setKfAccountAvatar('test@test', '/path/to/avatar.png');
Result:
{
"errcode" : 0,
"errmsg" : "ok",
}
方法签名
属性 | exports.setKfAccountAvatar | ||
参数 | account(String) | 账号名字,格式为:前缀@公共号名字 |
|
参数 | filepath(String) | 头像路径 |
创建客服会话
详细请看:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1458044820&token=&lang=zh_CN * Examples:
api.createKfSession('test@test', 'OPENID');
Result:
{
"errcode" : 0,
"errmsg" : "ok",
}
方法签名
属性 | exports.createKfSession | ||
参数 | account(String) | 账号名字,格式为:前缀@公共号名字 |
|
参数 | openid(String) | openid |
标记客户的投诉处理状态
Examples:
api.updateFeedback(openid, feedbackId);
Result:
{
"errcode": 0,
"errmsg": "success"
}
方法签名
属性 | exports.updateFeedback | ||
参数 | openid(String) | 用户ID |
|
参数 | feedbackId(String) | 投诉ID |
获取分组列表
详情请见:http://mp.weixin.qq.com/wiki/0/56d992c605a97245eb7e617854b169fc.html
Examples:
api.getGroups();
Result:
{
"groups": [
{"id": 0, "name": "未分组", "count": 72596},
{"id": 1, "name": "黑名单", "count": 36}
]
}
方法签名
属性 | exports.getGroups |
查询用户在哪个分组
详情请见:http://mp.weixin.qq.com/wiki/0/56d992c605a97245eb7e617854b169fc.html
Examples:
api.getWhichGroup(openid);
Result:
{
"groupid": 102
}
方法签名
属性 | exports.getWhichGroup | ||
参数 | openid(String) | Open ID |
创建分组
详情请见:http://mp.weixin.qq.com/wiki/0/56d992c605a97245eb7e617854b169fc.html
Examples:
api.createGroup('groupname');
Result:
{"group": {"id": 107, "name": "test"}}
方法签名
属性 | exports.createGroup | ||
参数 | name(String) | 分组名字 |
更新分组名字
详情请见:http://mp.weixin.qq.com/wiki/0/56d992c605a97245eb7e617854b169fc.html
Examples:
api.updateGroup(107, 'new groupname');
Result:
{"errcode": 0, "errmsg": "ok"}
方法签名
属性 | exports.updateGroup | ||
参数 | id(Number) | 分组ID |
|
参数 | name(String) | 新的分组名字 |
移动用户进分组
详情请见:http://mp.weixin.qq.com/wiki/0/56d992c605a97245eb7e617854b169fc.html
Examples:
api.moveUserToGroup(openid, groupId);
Result:
{"errcode": 0, "errmsg": "ok"}
方法签名
属性 | exports.moveUserToGroup | ||
参数 | openid(String) | 用户的openid |
|
参数 | groupId(Number) | 分组ID |
批量移动用户分组
详情请见:http://mp.weixin.qq.com/wiki/8/d6d33cf60bce2a2e4fb10a21be9591b8.html
Examples:
api.moveUsersToGroup(openids, groupId);
Result:
{"errcode": 0, "errmsg": "ok"}
方法签名
属性 | exports.moveUsersToGroup | ||
参数 | openids(String) | 用户的openid数组 |
|
参数 | groupId(Number) | 分组ID |
删除分组
详情请见:http://mp.weixin.qq.com/wiki/0/56d992c605a97245eb7e617854b169fc.html
Examples:
api.removeGroup(groupId);
Result:
{"errcode": 0, "errmsg": "ok"}
方法签名
属性 | exports.removeGroup | ||
参数 | groupId(Number) | 分组ID |
获取微信服务器IP地址
详情请见:http://mp.weixin.qq.com/wiki/index.php?title=获取微信服务器IP地址
Examples:
api.getIp();
Result:
{
"ip_list":["127.0.0.1","127.0.0.1"]
}
方法签名
属性 | exports.getIp |
多台服务器负载均衡时,ticketToken需要外部存储共享。
需要调用此registerTicketHandle来设置获取和保存的自定义方法。 * Examples:
api.registerTicketHandle(getTicketToken, saveTicketToken);
// getTicketToken
function getTicketToken(type) {
settingModel.getItem(type, {key: 'weixin_ticketToken'}, function (err, setting) {
if (err) return callback(err);
callback(null, setting.value);
});
}
// saveTicketToken
function saveTicketToken(type, _ticketToken) {
settingModel.setItem(type, {key:'weixin_ticketToken', value: ticketToken}, function (err) {
if (err) return callback(err);
callback(null);
});
}
方法签名
方法 | exports.registerTicketHandle() | ||
参数 | getTicketToken(Function) | 获取外部ticketToken的函数 |
|
参数 | saveTicketToken(Function) | 存储外部ticketToken的函数 |
获取js sdk所需的有效js ticket
err
, 异常对象result
, 正常获取时的数据 * Result:errcode
, 0为成功errmsg
, 成功为'ok',错误则为详细错误信息ticket
, js sdk有效票据,如:bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKAexpires_in
, 有效期7200秒,开发者必须在自己的服务全局缓存jsapi_ticket方法签名
属性 | exports.getTicket |
获取微信JS SDK Config的所需参数 * Examples:
var param = {
debug: false,
jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'],
url: 'http://www.xxx.com'
};
api.getJsConfig(param);
result
, 调用正常时得到的js sdk config所需参数方法签名
属性 | exports.getJsConfig | ||
参数 | param(Object) | 参数 |
获取微信JS SDK Config的所需参数
Examples:
var param = {
card_id: 'p-hXXXXXXX',
code: '1234',
openid: '111111',
balance: 100
};
api.getCardExt(param);
result
, 调用正常时得到的card_ext对象,包含所需参数方法签名
属性 | exports.getCardExt | ||
名字 | getCardExt | ||
参数 | param(Object) | 参数 |
获取最新的js api ticket
Examples:
api.getLatestTicket();
err
, 获取js api ticket出现异常时的异常对象ticket
, 获取的ticket方法签名
属性 | exports.getLatestTicket |
上传多媒体文件,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:
api.uploadNews(news);
News:
{
"articles": [
{
"thumb_media_id":"qI6_Ze_6PtV7svjolgs-rN6stStuHIjs9_DidOHaj0Q-mwvBelOXCFZiq2OsIU-p",
"author":"xxx",
"title":"Happy Day",
"content_source_url":"www.qq.com",
"content":"content",
"digest":"digest",
"show_cover_pic":"1"
},
{
"thumb_media_id":"qI6_Ze_6PtV7svjolgs-rN6stStuHIjs9_DidOHaj0Q-mwvBelOXCFZiq2OsIU-p",
"author":"xxx",
"title":"Happy Day",
"content_source_url":"www.qq.com",
"content":"content",
"digest":"digest",
"show_cover_pic":"0"
}
]
}
Result:
{
"type":"news",
"media_id":"CsEf3ldqkAYJAU6EJeIkStVDSvffUJ54vqbThMgplD-VJXXof6ctX5fI6-aYyUiQ",
"created_at":1391857799
}
``` * @param {Object} news 图文消息对象
方法签名
属性 | exports.uploadNews |
将通过上传下载多媒体文件得到的视频media_id变成视频素材
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:
api.uploadMPVideo(opts);
Opts:
{
"media_id": "rF4UdIMfYK3efUfyoddYRMU50zMiRmmt_l0kszupYh_SzrcW5Gaheq05p_lHuOTQ",
"title": "TITLE",
"description": "Description"
}
Result:
{
"type":"video",
"media_id":"IhdaAQXuvJtGzwwc0abfXnzeezfO0NgPK6AQYShD8RQYMTtfzbLdBIQkQziv2XJc",
"created_at":1391857799
}
``` * @param {Object} opts 待上传为素材的视频
方法签名
属性 | exports.uploadMPVideo |
群发消息,分别有图文(news)、文本(text)、语音(voice)、图片(image)和视频(video)
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:
api.massSend(opts, receivers);
opts:
{
"image":{
"media_id":"123dsdajkasd231jhksad"
},
"msgtype":"image"
}
Result:
{
"errcode":0,
"errmsg":"send job submission success",
"msg_id":34182
}
``` * @param {Object} opts 待发送的数据
方法签名
属性 | exports.massSend | ||
参数 | receivers(String,Array) | 接收人。一个组,或者openid列表 |
群发图文(news)消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:
api.massSendNews(mediaId, receivers);
Result:
{
"errcode":0,
"errmsg":"send job submission success",
"msg_id":34182
}
``` * @param {String} mediaId 图文消息的media id
方法签名
属性 | exports.massSendNews | ||
参数 | receivers(String,Array,Boolean) | 接收人。一个组,或者openid列表, 或者true(群发给所有人) |
群发文字(text)消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:
api.massSendText(content, receivers);
Result:
{
"errcode":0,
"errmsg":"send job submission success",
"msg_id":34182
}
``` * @param {String} content 文字消息内容
方法签名
属性 | exports.massSendText | ||
参数 | receivers(String,Array) | 接收人。一个组,或者openid列表 |
群发声音(voice)消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:
api.massSendVoice(media_id, receivers);
Result:
{
"errcode":0,
"errmsg":"send job submission success",
"msg_id":34182
}
``` * @param {String} mediaId 声音media id
方法签名
属性 | exports.massSendVoice | ||
参数 | receivers(String,Array) | 接收人。一个组,或者openid列表 |
群发图片(image)消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:
api.massSendImage(media_id, receivers);
Result:
{
"errcode":0,
"errmsg":"send job submission success",
"msg_id":34182
}
``` * @param {String} mediaId 图片media id
方法签名
属性 | exports.massSendImage | ||
参数 | receivers(String,Array) | 接收人。一个组,或者openid列表 |
群发视频(video)消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:
api.massSendVideo(mediaId, receivers);
Result:
{
"errcode":0,
"errmsg":"send job submission success",
"msg_id":34182
}
``` * @param {String} mediaId 视频media id
方法签名
属性 | exports.massSendVideo | ||
参数 | receivers(String,Array) | 接收人。一个组,或者openid列表 |
群发视频(video)消息,直接通过上传文件得到的media id进行群发(自动生成素材)
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:
api.massSendMPVideo(data, receivers);
Data:
{
"media_id": "rF4UdIMfYK3efUfyoddYRMU50zMiRmmt_l0kszupYh_SzrcW5Gaheq05p_lHuOTQ",
"title": "TITLE",
"description": "Description"
}
Result:
{
"errcode":0,
"errmsg":"send job submission success",
"msg_id":34182
}
``` * @param {Object} data 视频数据
方法签名
属性 | exports.massSendMPVideo | ||
参数 | receivers(String,Array) | 接收人。一个组,或者openid列表 |
删除群发消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:
api.deleteMass(message_id);
Result:
{
"errcode":0,
"errmsg":"ok"
}
``` * @param {String} messageId 待删除群发的消息id
方法签名
属性 | exports.deleteMass |
预览接口,预览图文消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:
api.previewNews(openid, mediaId);
Result:
{
"errcode":0,
"errmsg":"send job submission success",
"msg_id": 34182
}
``` * @param {String} openid 用户openid
方法签名
属性 | exports.previewNews | ||
参数 | mediaId(String) | 图文消息mediaId |
预览接口,预览文本消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:
api.previewText(openid, content);
Result:
{
"errcode":0,
"errmsg":"send job submission success",
"msg_id": 34182
}
方法签名
属性 | exports.previewText | ||
参数 | openid(String) | 用户openid |
|
参数 | content(String) | 文本消息 |
预览接口,预览语音消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:
api.previewVoice(openid, mediaId);
Result:
{
"errcode":0,
"errmsg":"send job submission success",
"msg_id": 34182
}
``` * @param {String} openid 用户openid
方法签名
属性 | exports.previewVoice | ||
参数 | mediaId(String) | 语音mediaId |
预览接口,预览图片消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:
api.previewImage(openid, mediaId);
Result:
{
"errcode":0,
"errmsg":"send job submission success",
"msg_id": 34182
}
``` * @param {String} openid 用户openid
方法签名
属性 | exports.previewImage | ||
参数 | mediaId(String) | 图片mediaId |
预览接口,预览视频消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:
api.previewVideo(openid, mediaId);
Result:
{
"errcode":0,
"errmsg":"send job submission success",
"msg_id": 34182
}
``` * @param {String} openid 用户openid
方法签名
属性 | exports.previewVideo | ||
参数 | mediaId(String) | 视频mediaId |
查询群发消息状态
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:
api.getMassMessageStatus(messageId);
Result:
{
"msg_id":201053012,
"msg_status":"SEND_SUCCESS"
}
``` * @param {String} messageId 消息ID
方法签名
属性 | exports.getMassMessageStatus |
上传永久素材,分别有图片(image)、语音(voice)、和缩略图(thumb)
详情请见:http://mp.weixin.qq.com/wiki/14/7e6c03263063f4813141c3e17dd4350a.html
Examples:
api.uploadMaterial('filepath', type);
Result:
{"type":"TYPE","media_id":"MEDIA_ID","created_at":123456789}
Shortcut: * - exports.uploadImageMaterial(filepath);
exports.uploadVoiceMaterial(filepath);
exports.uploadThumbMaterial(filepath);
* @param {String} filepath 文件路径方法签名
属性 | exports.uploadMaterial | ||
参数 | type(String) | 媒体类型,可用值有image、voice、video、thumb |
上传永久素材,视频(video)
详情请见:http://mp.weixin.qq.com/wiki/14/7e6c03263063f4813141c3e17dd4350a.html
Examples:
var description = {
"title":VIDEO_TITLE,
"introduction":INTRODUCTION
};
api.uploadVideoMaterial('filepath', description);
Result:
{"media_id":"MEDIA_ID"}
方法签名
属性 | exports.uploadVideoMaterial | ||
参数 | filepath(String) | 视频文件路径 |
|
参数 | description(Object) | 描述 |
新增永久图文素材 * News:
{
"articles": [
{
"title": TITLE,
"thumb_media_id": THUMB_MEDIA_ID,
"author": AUTHOR,
"digest": DIGEST,
"show_cover_pic": SHOW_COVER_PIC(0 / 1),
"content": CONTENT,
"content_source_url": CONTENT_SOURCE_URL
},
//若新增的是多图文素材,则此处应还有几段articles结构
]
}
Examples:
api.uploadNewsMaterial(news);
Result:
{"errcode":0,"errmsg":"ok"}
方法签名
属性 | exports.uploadNewsMaterial | ||
参数 | news(Object) | 图文对象 |
更新永久图文素材
News:
{
"media_id":MEDIA_ID,
"index":INDEX,
"articles": [
{
"title": TITLE,
"thumb_media_id": THUMB_MEDIA_ID,
"author": AUTHOR,
"digest": DIGEST,
"show_cover_pic": SHOW_COVER_PIC(0 / 1),
"content": CONTENT,
"content_source_url": CONTENT_SOURCE_URL
},
//若新增的是多图文素材,则此处应还有几段articles结构
]
}
Examples:
api.uploadNewsMaterial(news);
Result:
{"errcode":0,"errmsg":"ok"}
方法签名
属性 | exports.updateNewsMaterial | ||
参数 | news(Object) | 图文对象 |
根据媒体ID获取永久素材
详情请见:http://mp.weixin.qq.com/wiki/4/b3546879f07623cb30df9ca0e420a5d0.html
Examples:
api.getMaterial('media_id');
result
, 调用正常时得到的文件Buffer对象res
, HTTP响应对象 * @param {String} mediaId 媒体文件的ID方法签名
属性 | exports.getMaterial |
删除永久素材
详情请见:http://mp.weixin.qq.com/wiki/5/e66f61c303db51a6c0f90f46b15af5f5.html
Examples:
api.removeMaterial('media_id');
result
, 调用正常时得到的文件Buffer对象res
, HTTP响应对象 * @param {String} mediaId 媒体文件的ID方法签名
属性 | exports.removeMaterial |
获取素材总数
详情请见:http://mp.weixin.qq.com/wiki/16/8cc64f8c189674b421bee3ed403993b8.html
Examples:
api.getMaterialCount();
result
, 调用正常时得到的文件Buffer对象res
, HTTP响应对象 * Result:{
"voice_count":COUNT,
"video_count":COUNT,
"image_count":COUNT,
"news_count":COUNT
}
方法签名
属性 | exports.getMaterialCount |
获取永久素材列表
详情请见:http://mp.weixin.qq.com/wiki/12/2108cd7aafff7f388f41f37efa710204.html
Examples:
api.getMaterials(type, offset, count);
result
, 调用正常时得到的文件Buffer对象res
, HTTP响应对象 * Result:{
"total_count": TOTAL_COUNT,
"item_count": ITEM_COUNT,
"item": [{
"media_id": MEDIA_ID,
"name": NAME,
"update_time": UPDATE_TIME
},
//可能会有多个素材
]
}
方法签名
属性 | exports.getMaterials | ||
参数 | type(String) | 素材的类型,图片(image)、视频(video)、语音 (voice)、图文(news) |
|
参数 | offset(Number) | 从全部素材的该偏移位置开始返回,0表示从第一个素材 返回 |
|
参数 | count(Number) | 返回素材的数量,取值在1到20之间 |
新增临时素材,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)
详情请见:http://mp.weixin.qq.com/wiki/5/963fc70b80dc75483a271298a76a8d59.html
Examples:
api.uploadMedia('filepath', type);
Result:
{"type":"TYPE","media_id":"MEDIA_ID","created_at":123456789}
Shortcut:
exports.uploadImageMedia(filepath);
exports.uploadVoiceMedia(filepath);
exports.uploadVideoMedia(filepath);
exports.uploadThumbMedia(filepath);
不再推荐使用:
exports.uploadImage(filepath);
exports.uploadVoice(filepath);
exports.uploadVideo(filepath);
exports.uploadThumb(filepath);
方法签名
属性 | exports.uploadMedia | ||
参数 | filepath(String,Buffer) | 文件路径/文件Buffer数据 |
|
参数 | type(String) | 媒体类型,可用值有image、voice、video、thumb |
|
参数 | filename(String) | 文件名 |
|
参数 | mime(String) | 文件类型,filepath为Buffer数据时才需要传 |
获取临时素材
详情请见:http://mp.weixin.qq.com/wiki/11/07b6b76a6b6e8848e855a435d5e34a5f.html
Examples:
api.getMedia('media_id');
result
, 调用正常时得到的文件Buffer对象res
, HTTP响应对象方法签名
属性 | exports.getMedia | ||
参数 | mediaId(String) | 媒体文件的ID |
上传图文消息内的图片获取URL
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:
api.uploadImage('filepath');
Result:
{"url": "http://mmbiz.qpic.cn/mmbiz/gLO17UPS6FS2xsypf378iaNhWacZ1G1UplZYWEYfwvuU6Ont96b1roYsCNFwaRrSaKTPCUdBK9DgEHicsKwWCBRQ/0"}
方法签名
属性 | exports.uploadImage | ||
参数 | filepath(String) | 图片文件路径 |
客服消息,发送文字消息
详细细节 http://mp.weixin.qq.com/wiki/index.php?title=发送客服消息
Examples:
api.sendText('openid', 'Hello world');
方法签名
属性 | exports.sendText | ||
参数 | openid(String) | 用户的openid |
|
参数 | text(String) | 发送的消息内容 |
客服消息,发送图片消息
详细细节 http://mp.weixin.qq.com/wiki/index.php?title=发送客服消息
Examples:
api.sendImage('openid', 'media_id');
方法签名
属性 | exports.sendImage | ||
参数 | openid(String) | 用户的openid |
|
参数 | mediaId(String) | 媒体文件的ID,参见uploadMedia方法 |
客服消息,发送卡券
详细细节 http://mp.weixin.qq.com/wiki/index.php?title=发送客服消息
Examples:
api.sendCard('openid', 'card_id');
方法签名
属性 | exports.sendCard | ||
参数 | openid(String) | 用户的openid |
|
参数 | card_id(String) | 卡券的ID |
客服消息,发送语音消息
详细细节 http://mp.weixin.qq.com/wiki/index.php?title=发送客服消息
Examples:
api.sendVoice('openid', 'media_id');
方法签名
属性 | exports.sendVoice | ||
参数 | openid(String) | 用户的openid |
|
参数 | mediaId(String) | 媒体文件的ID |
客服消息,发送视频消息
详细细节 http://mp.weixin.qq.com/wiki/index.php?title=发送客服消息
Examples:
api.sendVideo('openid', 'media_id', 'thumb_media_id');
方法签名
属性 | exports.sendVideo | ||
参数 | openid(String) | 用户的openid |
|
参数 | mediaId(String) | 媒体文件的ID |
|
参数 | thumbMediaId(String) | 缩略图文件的ID |
客服消息,发送音乐消息
详细细节 http://mp.weixin.qq.com/wiki/index.php?title=发送客服消息
Examples:
var music = {
title: '音乐标题', // 可选
description: '描述内容', // 可选
musicurl: 'http://url.cn/xxx', 音乐文件地址
hqmusicurl: "HQ_MUSIC_URL",
thumb_media_id: "THUMB_MEDIA_ID"
};
api.sendMusic('openid', music);
方法签名
属性 | exports.sendMusic | ||
参数 | openid(String) | 用户的openid |
|
参数 | music(Object) | 音乐文件 |
客服消息,发送图文消息
详细细节 http://mp.weixin.qq.com/wiki/index.php?title=发送客服消息
Examples:
var articles = [
{
"title":"Happy Day",
"description":"Is Really A Happy Day",
"url":"URL",
"picurl":"PIC_URL"
},
{
"title":"Happy Day",
"description":"Is Really A Happy Day",
"url":"URL",
"picurl":"PIC_URL"
}];
api.sendNews('openid', articles);
方法签名
属性 | exports.sendNews | ||
参数 | openid(String) | 用户的openid |
|
参数 | articles(Array) | 图文列表 |
获取自动回复规则
详细请看:http://mp.weixin.qq.com/wiki/19/ce8afc8ae7470a0d7205322f46a02647.html
Examples:
var result = await api.getAutoreply();
Result:
{
"is_add_friend_reply_open": 1,
"is_autoreply_open": 1,
"add_friend_autoreply_info": {
"type": "text",
"content": "Thanks for your attention!"
},
"message_default_autoreply_info": {
"type": "text",
"content": "Hello, this is autoreply!"
},
"keyword_autoreply_info": {
"list": [
{
"rule_name": "autoreply-news",
"create_time": 1423028166,
"reply_mode": "reply_all",
"keyword_list_info": [
{
"type": "text",
"match_mode": "contain",
"content": "news测试"//此处content即为关键词内容
}
],
"reply_list_info": [
{
"type": "news",
"news_info": {
"list": [
{
"title": "it's news",
"author": "jim",
"digest": "it's digest",
"show_cover": 1,
"cover_url": "http://mmbiz.qpic.cn/mmbiz/GE7et87vE9vicuCibqXsX9GPPLuEtBfXfKbE8sWdt2DDcL0dMfQWJWTVn1N8DxI0gcRmrtqBOuwQHeuPKmFLK0ZQ/0",
"content_url": "http://mp.weixin.qq.com/s?__biz=MjM5ODUwNTM3Ng==&mid=203929886&idx=1&sn=628f964cf0c6d84c026881b6959aea8b#rd",
"source_url": "http://www.url.com"
}
]
}
},
{
....
}
]
},
{
"rule_name": "autoreply-voice",
"create_time": 1423027971,
"reply_mode": "random_one",
"keyword_list_info": [
{
"type": "text",
"match_mode": "contain",
"content": "voice测试"
}
],
"reply_list_info": [
{
"type": "voice",
"content": "NESsxgHEvAcg3egJTtYj4uG1PTL6iPhratdWKDLAXYErhN6oEEfMdVyblWtBY5vp"
}
]
},
...
]
}
}
方法签名
属性 | exports.getAutoreply |
微信公众号支付: 发货通知
详情请见:http://mp.weixin.qq.com/htmledition/res/bussiness-faq/wx_mp_pay.zip 接口文档订单发货通知 * Data:
{
"appid" : "wwwwb4f85f3a797777",
"openid" : "oX99MDgNcgwnz3zFN3DNmo8uwa-w",
"transid" : "111112222233333",
"out_trade_no" : "555666uuu",
"deliver_timestamp" : "1369745073",
"deliver_status" : "1",
"deliver_msg" : "ok",
"app_signature" : "53cca9d47b883bd4a5c85a9300df3da0cb48565c",
"sign_method" : "sha1"
}
Examples:
api.deliverNotify(data);
Result:
{"errcode":0, "errmsg":"ok"}
``` * @param {Object} package package对象
方法签名
属性 | exports.deliverNotify |
微信公众号支付: 订单查询
详情请见:http://mp.weixin.qq.com/htmledition/res/bussiness-faq/wx_mp_pay.zip 接口文档订单查询部分 * Package:
{
"appid" : "wwwwb4f85f3a797777",
"package" : "out_trade_no=11122&partner=1900090055&sign=4e8d0df3da0c3d0df38f",
"timestamp" : "1369745073",
"app_signature" : "53cca9d47b883bd4a5c85a9300df3da0cb48565c",
"sign_method" : "sha1"
}
Examples:
api.orderQuery(query);
Result:
{
"errcode":0,
"errmsg":"ok",
"order_info": {
"ret_code":0,
"ret_msg":"",
"input_charset":"GBK",
"trade_state":"0",
"trade_mode":"1",
"partner":"1900000109",
"bank_type":"CMB_FP",
"bank_billno":"207029722724",
"total_fee":"1",
"fee_type":"1",
"transaction_id":"1900000109201307020305773741",
"out_trade_no":"2986872580246457300",
"is_split":"false",
"is_refund":"false",
"attach":"",
"time_end":"20130702175943",
"transport_fee":"0",
"product_fee":"1",
"discount":"0",
"rmb_total_fee":""
}
}
``` * @param {Object} query query对象
方法签名
属性 | exports.orderQuery |
创建门店 * Tips:
{
"sid": "5794560",
"business_name": "肯打鸡",
"branch_name": "东方路店",
"province": "上海市",
"city": "上海市",
"district": "浦东新区",
"address": "东方路88号",
"telephone": "021-5794560",
"categories": ["美食,快餐小吃"],
"offset_type": 1,
"longitude": 125.5794560,
"latitude": 45.5794560,
"photo_list": [{
"photo_url": "https://5794560.qq.com/1"
}, {
"photo_url": "https://5794560.qq.com/2"
}],
"recommend": "脉娜鸡腿堡套餐,脉乐鸡,全家捅",
"special": "免费WIFE,外卖服务",
"introduction": "肯打鸡是全球大型跨国连锁餐厅,2015年创立于米国,在世界上大约拥有3 亿间分店,主要售卖肯打鸡等垃圾食品",
"open_time": "10:00-18:00",
"avg_price": 88
}
Examples:
api.addPoi(poi);
Result:
{"errcode":0,"errmsg":"ok"}
方法签名
属性 | exports.addPoi | ||
名字 | addPoi | ||
参数 | poi(Object) | 门店对象 |
获取门店信息 * Examples:
api.getPoi(POI_ID);
Result:
{
"sid": "5794560",
"business_name": "肯打鸡",
"branch_name": "东方路店",
"province": "上海市",
"city": "上海市",
"district": "浦东新区",
"address": "东方路88号",
"telephone": "021-5794560",
"categories": ["美食,快餐小吃"],
"offset_type": 1,
"longitude": 125.5794560,
"latitude": 45.5794560,
"photo_list": [{
"photo_url": "https://5794560.qq.com/1"
}, {
"photo_url": "https://5794560.qq.com/2"
}],
"recommend": "脉娜鸡腿堡套餐,脉乐鸡,全家捅",
"special": "免费WIFE,外卖服务",
"introduction": "肯打鸡是全球大型跨国连锁餐厅,2015年创立于米国,在世界上大约拥有3 亿间分店,主要售卖肯打鸡等垃圾食品",
"open_time": "10:00-18:00",
"avg_price": 88,
"available_state": 3,
"update_status": 0
}
方法签名
属性 | exports.getPoi | ||
名字 | getPoi | ||
参数 | poiId(Number) | 门店ID |
获取门店列表
Examples:
api.getPois(0, 20);
Result:
{
"errcode": 0,
"errmsg": "ok"
"business_list": [{
"base_info": {
"sid": "100",
"poi_id": "5794560",
"business_name": "肯打鸡",
"branch_name": "东方路店",
"address": "东方路88号",
"available_state": 3
}
}, {
"base_info": {
"sid": "101",
"business_name": "肯打鸡",
"branch_name": "西方路店",
"address": "西方路88号",
"available_state": 4
}
}],
"total_count": "2",
}
方法签名
属性 | exports.getPois | ||
名字 | getPois | ||
参数 | begin(Number) | 开始位置,0即为从第一条开始查询 |
|
参数 | limit(Number) | 返回数据条数,最大允许50,默认为20 |
删除门店
Tips:
api.delPoi(POI_ID);
方法签名
属性 | exports.delPoi | ||
名字 | delPoi | ||
参数 | poiId(Number) | 门店ID |
修改门店服务信息 * Tips: * - 待审核门店不允许修改 * Poi:
{
"poi_id": "5794560",
"telephone": "021-5794560",
"photo_list": [{
"photo_url": "https://5794560.qq.com/1"
}, {
"photo_url": "https://5794560.qq.com/2"
}],
"recommend": "脉娜鸡腿堡套餐,脉乐鸡,全家捅",
"special": "免费WIFE,外卖服务",
"introduction": "肯打鸡是全球大型跨国连锁餐厅,2015年创立于米国,在世界上大约拥有3 亿间分店,主要售卖肯打鸡等垃圾食品",
"open_time": "10:00-18:00",
"avg_price": 88
}
特别注意,以上7个字段,若有填写内容则为覆盖更新,若无内容则视为不修改,维持原有内容。
photo_list字段为全列表覆盖,若需要增加图片,需将之前图片同样放入list中,在其后增加新增图片。 * Examples:
api.updatePoi(poi);
Result:
{"errcode":0,"errmsg":"ok"}
方法签名
属性 | exports.updatePoi | ||
名字 | updatePoi | ||
参数 | poi(Object) | 门店对象 |
创建临时二维码
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=生成带参数的二维码
Examples:
api.createTmpQRCode(10000, 1800);
Result:
{
"ticket":"gQG28DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0FuWC1DNmZuVEhvMVp4NDNMRnNRAAIEesLvUQMECAcAAA==",
"expire_seconds":1800
}
方法签名
属性 | exports.createTmpQRCode | ||
参数 | sceneId(Number) | 场景ID |
|
参数 | expire(Number) | 过期时间,单位秒。最大不超过1800 |
创建永久二维码
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=生成带参数的二维码
Examples:
api.createLimitQRCode(100);
Result:
{
"ticket":"gQG28DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0FuWC1DNmZuVEhvMVp4NDNMRnNRAAIEesLvUQMECAcAAA=="
}
方法签名
属性 | exports.createLimitQRCode | ||
参数 | sceneId(Number) | 场景ID。ID不能大于100000 |
生成显示二维码的链接。微信扫描后,可立即进入场景
Examples:
api.showQRCodeURL(ticket);
// => https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET
方法签名
方法 | exports.showQRCodeURL() | ||
参数 | ticket(String) | 二维码Ticket |
|
返回 | String | 显示二维码的URL地址,通过img标签可以显示出来 |
发送语义理解请求
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=%E8%AF%AD%E4%B9%89%E7%90%86%E8%A7%A3 * Opts:
{
"query":"查一下明天从北京到上海的南航机票",
"city":"北京",
"category": "flight,hotel"
}
Examples:
api.semantic(uid, opts);
Result:
{
"errcode":0,
"query":"查一下明天从北京到上海的南航机票",
"type":"flight",
"semantic":{
"details":{
"start_loc":{
"type":"LOC_CITY",
"city":"北京市",
"city_simple":"北京",
"loc_ori":"北京"
},
"end_loc": {
"type":"LOC_CITY",
"city":"上海市",
"city_simple":"上海",
"loc_ori":"上海"
},
"start_date": {
"type":"DT_ORI",
"date":"2014-03-05",
"date_ori":"明天"
},
"airline":"中国南方航空公司"
},
"intent":"SEARCH"
}
方法签名
属性 | exports.semantic | ||
参数 | openid(String) | 用户ID |
|
参数 | opts(Object) | 查询条件 |
申请开通功能
接口说明:
申请开通摇一摇周边功能。成功提交申请请求后,工作人员会在三个工作日内完成审核。若审核不通过,可以重新提交申请请求。
若是审核中,请耐心等待工作人员审核,在审核中状态不能再提交申请请求。
详情请参见:http://mp.weixin.qq.com/wiki/13/025f1d471dc999928340161c631c6635.html * Options:
{
"name": "zhang_san",
"phone_number": "13512345678",
"email": "weixin123@qq.com",
"industry_id": "0118",
"qualification_cert_urls": [
"http://shp.qpic.cn/wx_shake_bus/0/1428565236d03d864b7f43db9ce34df5f720509d0e/0",
"http://shp.qpic.cn/wx_shake_bus/0/1428565236d03d864b7f43db9ce34df5f720509d0e/0"
],
"apply_reason": "test"
}
``` * Examples:
api.registerShakeAccount(options);
Result:
{
"data" : { },
"errcode": 0,
"errmsg": "success."
}
方法签名
属性 | exports.registerShakeAccount | ||
参数 | options(Object) | 请求参数 |
查询审核状态
接口说明:
查询已经提交的开通摇一摇周边功能申请的审核状态。在申请提交后,工作人员会在三个工作日内完成审核。
详情请参见:http://mp.weixin.qq.com/wiki/13/025f1d471dc999928340161c631c6635.html
Examples:
api.checkShakeAccountStatus();
Result:
{
"data" : {
"apply_time": 1432026025,
"audit_comment": "test",
"audit_status": 1, //审核状态。0:审核未通过、1:审核中、2:审核已通过;审核会在三个工作日内完成
"audit_time": 0
},
"errcode": 0,
"errmsg": "success."
}
``` * @name checkShakeAccountStatus
方法签名
属性 | exports.checkShakeAccountStatus |
设备管理: 申请设备ID。
接口说明:
申请配置设备所需的UUID、Major、Minor。若激活率小于50%,不能新增设备。单次新增设备超过500个,
需走人工审核流程。审核通过后,可用返回的批次ID用“查询设备列表”接口拉取本次申请的设备ID。
详情请参见:http://mp.weixin.qq.com/wiki/15/b9e012f917e3484b7ed02771156411f3.html * Options:
{
"quantity":3,
"apply_reason":"测试",
"comment":"测试专用",
"poi_id":1234
}
``` * Examples:
api.applyBeacons(options);
Result:
{
"data" : { ... },
"errcode": 0,
"errmsg": "success."
}
方法签名
属性 | exports.applyBeacons | ||
参数 | options(Object) | 请求参数 |
设备管理: 编辑设备的备注信息。
接口说明:
可用设备ID或完整的UUID、Major、Minor指定设备,二者选其一。
详情请参见:http://mp.weixin.qq.com/wiki/15/b9e012f917e3484b7ed02771156411f3.html
Options:
{
"device_identifier": {
// 设备编号,若填了UUID、major、minor,则可不填设备编号,若二者都填,则以设备编号为优先
"device_id": 10011,
"uuid": "FDA50693-A4E2-4FB1-AFCF-C6EB07647825",
"major": 1002,
"minor": 1223
},
"comment": "test"
}
Examples:
api.updateBeacon(options);
Result:
{
"data" : {
},
"errcode": 0,
"errmsg": "success."
}
``` * @name updateBeacon
方法签名
属性 | exports.updateBeacon | ||
参数 | options(Object) | 请求参数 |
设备管理: 配置设备与门店的关联关系。
接口说明:
修改设备关联的门店ID、设备的备注信息。可用设备ID或完整的UUID、Major、Minor指定设备,二者选其一。
详情请参见:http://mp.weixin.qq.com/wiki/15/b9e012f917e3484b7ed02771156411f3.html
Options:
{
"device_identifier": {
"device_id": 10011,
"uuid": "FDA50693-A4E2-4FB1-AFCF-C6EB07647825",
"major": 1002,
"minor": 1223
},
"poi_id": 1231
}
Examples:
api.bindBeaconLocation(options);
Result:
{
"data" : {
},
"errcode": 0,
"errmsg": "success."
}
``` * @name bindBeaconLocation
方法签名
属性 | exports.bindBeaconLocation | ||
参数 | options(Object) | 请求参数 |
设备管理: 查询设备列表
接口说明:
查询已有的设备ID、UUID、Major、Minor、激活状态、备注信息、关联门店、关联页面等信息。
可指定设备ID或完整的UUID、Major、Minor查询,也可批量拉取设备信息列表。
详情请参见:http://mp.weixin.qq.com/wiki/15/b9e012f917e3484b7ed02771156411f3.html
Options:
{
"device_identifier": [
{
"device_id":10011,
"uuid":"FDA50693-A4E2-4FB1-AFCF-C6EB07647825",
"major":1002,
"minor":1223
}
]
}
{
"begin": 0,
"count": 3
}
{
"apply_id": 1231,
"begin": 0,
"count": 3
}
Examples:
api.getBeacons(options);
Result:
{
"data": {
"devices": [
{
"comment": "",
"device_id": 10097,
"major": 10001,
"minor": 12102,
"page_ids": "15369",
"status": 1, //激活状态,0:未激活,1:已激活(但不活跃),2:活跃
"poi_id": 0,
"uuid": "FDA50693-A4E2-4FB1-AFCF-C6EB07647825"
},
{
"comment": "",
"device_id": 10098,
"major": 10001,
"minor": 12103,
"page_ids": "15368",
"status": 1,
"poi_id": 0,
"uuid": "FDA50693-A4E2-4FB1-AFCF-C6EB07647825"
}
],
"total_count": 151
},
"errcode": 0,
"errmsg": "success."
}
``` * @name getBeacons
方法签名
属性 | exports.getBeacons | ||
参数 | options(Object) | 请求参数 |
页面管理: 新增页面
接口说明:
新增摇一摇出来的页面信息,包括在摇一摇页面出现的主标题、副标题、图片和点击进去的超链接。
其中,图片必须为用素材管理接口(uploadPageIcon函数)上传至微信侧服务器后返回的链接。
详情请参见:http://mp.weixin.qq.com/wiki/5/6626199ea8757c752046d8e46cf13251.html
Page:
{
"title":"主标题",
"description":"副标题",
"page_url":" https://zb.weixin.qq.com",
"comment":"数据示例",
"icon_url":"http://shp.qpic.cn/wx_shake_bus/0/14288351768a23d76e7636b56440172120529e8252/120"
//调用uploadPageIcon函数获取到该URL
}
Examples:
api.createPage(page);
Result:
{
"data" : {
"page_id": 28840
},
"errcode": 0,
"errmsg": "success."
}
``` * @name createPage
方法签名
属性 | exports.createPage | ||
参数 | page(Object) | 请求参数 |
页面管理: 编辑页面信息
接口说明:
编辑摇一摇出来的页面信息,包括在摇一摇页面出现的主标题、副标题、图片和点击进去的超链接。
详情请参见:http://mp.weixin.qq.com/wiki/5/6626199ea8757c752046d8e46cf13251.html
Page:
{
"page_id":12306,
"title":"主标题",
"description":"副标题",
"page_url":" https://zb.weixin.qq.com",
"comment":"数据示例",
"icon_url":"http://shp.qpic.cn/wx_shake_bus/0/14288351768a23d76e7636b56440172120529e8252/120"
//调用uploadPageIcon函数获取到该URL
}
Examples:
api.updatePage(page);
Result:
{
"data" : {
"page_id": 28840
},
"errcode": 0,
"errmsg": "success."
}
``` * @name updatePage
方法签名
属性 | exports.updatePage | ||
参数 | page(Object) | 请求参数 |
页面管理: 删除页面
接口说明:
删除已有的页面,包括在摇一摇页面出现的主标题、副标题、图片和点击进去的超链接。
只有页面与设备没有关联关系时,才可被删除。
详情请参见:http://mp.weixin.qq.com/wiki/5/6626199ea8757c752046d8e46cf13251.html
Page_ids:
{
"page_ids":[12345,23456,34567]
}
Examples:
api.deletePages(options);
Result:
{
"data" : {
},
"errcode": 0,
"errmsg": "success."
}
方法签名
属性 | exports.deletePages | ||
名字 | deletePages | ||
参数 | page_ids(Object) | 请求参数 |
页面管理: 查询页面列表
接口说明:
查询已有的页面,包括在摇一摇页面出现的主标题、副标题、图片和点击进去的超链接。提供两种查询方式,可指定页面ID查询,也可批量拉取页面列表。
详情请参见:http://mp.weixin.qq.com/wiki/5/6626199ea8757c752046d8e46cf13251.html
Options:
{
"page_ids":[12345, 23456, 34567]
}
{
"begin": 0,
"count": 3
}
``` * Examples:
api.getBeacons(options);
Result:
{
"data": {
"pages": [
{
"comment": "just for test",
"description": "test",
"icon_url": "https://www.baidu.com/img/bd_logo1",
"page_id": 28840,
"page_url": "http://xw.qq.com/testapi1",
"title": "测试1"
},
{
"comment": "just for test",
"description": "test",
"icon_url": "https://www.baidu.com/img/bd_logo1",
"page_id": 28842,
"page_url": "http://xw.qq.com/testapi2",
"title": "测试2"
}
],
"total_count": 2
},
"errcode": 0,
"errmsg": "success."
}
方法签名
属性 | exports.getPages | ||
参数 | options(Object) | 请求参数 |
上传图片素材
接口说明:
上传在摇一摇页面展示的图片素材,素材保存在微信侧服务器上。
格式限定为:jpg,jpeg,png,gif,图片大小建议120px*120 px,限制不超过200 px *200 px,图片需为正方形。
详情请参见:http://mp.weixin.qq.com/wiki/5/e997428269ff189d8f9a4b9e177be2d9.html
Examples:
api.uploadPageIcon('filepath');
Result:
{
"data" : {
"pic_url": "http://shp.qpic.cn/wechat_shakearound_pic/0/1428377032e9dd2797018cad79186e03e8c5aec8dc/120"
},
"errcode": 0,
"errmsg": "success."
}
``` * @name uploadPageIcon
方法签名
属性 | exports.uploadPageIcon | ||
参数 | filepath(String) | 文件路径 |
配置设备与页面的关联关系
接口说明:
配置设备与页面的关联关系。支持建立或解除关联关系,也支持新增页面或覆盖页面等操作。
配置完成后,在此设备的信号范围内,即可摇出关联的页面信息。若设备配置多个页面,则随机出现页面信息。
详情请参见:http://mp.weixin.qq.com/wiki/6/c449687e71510db19564f2d2d526b6ea.html
Options:
{
"device_identifier": {
// 设备编号,若填了UUID、major、minor,则可不填设备编号,若二者都填,则以设备编号为优先
"device_id":10011,
"uuid":"FDA50693-A4E2-4FB1-AFCF-C6EB07647825",
"major":1002,
"minor":1223
},
"page_ids":[12345, 23456, 334567]
}
Examples:
api.bindBeaconWithPages(options);
Result:
{
"data" : {
},
"errcode": 0,
"errmsg": "success."
}
``` * @name bindBeaconWithPages
方法签名
属性 | exports.bindBeaconWithPages | ||
参数 | options(Object) | 请求参数 |
查询设备与页面的关联关系
接口说明:
查询设备与页面的关联关系。提供两种查询方式,可指定页面ID分页查询该页面所关联的所有的设备信息;
也可根据设备ID或完整的UUID、Major、Minor查询该设备所关联的所有页面信息。
详情请参见:http://mp.weixin.qq.com/wiki/6/c449687e71510db19564f2d2d526b6ea.html
Options:
{
"type": 1,
"device_identifier": {
// 设备编号,若填了UUID、major、minor,则可不填设备编号,若二者都填,则以设备编号为优先
"device_id":10011,
"uuid":"FDA50693-A4E2-4FB1-AFCF-C6EB07647825",
"major":1002,
"minor":1223
}
}
api.searchBeaconPageRelation(options);
Result:
{
"data": {
"relations": [
{
"device_id": 797994,
"major": 10001,
"minor": 10023,
"page_id": 50054,
"uuid": "FDA50693-A4E2-4FB1-AFCF-C6EB07647825"
},
{
"device_id": 797994,
"major": 10001,
"minor": 10023,
"page_id": 50055,
"uuid": "FDA50693-A4E2-4FB1-AFCF-C6EB07647825"
}
],
"total_count": 2
},
"errcode": 0,
"errmsg": "success."
}
``` * @name searchBeaconPageRelation
方法签名
属性 | exports.searchBeaconPageRelation | ||
参数 | options(Object) | 请求参数 |
获取摇周边的设备及用户信息
接口说明:
获取设备信息,包括UUID、major、minor,以及距离、openID等信息。
详情请参见:http://mp.weixin.qq.com/wiki/3/34904a5db3d0ec7bb5306335b8da1faf.html
Ticket:
{
"ticket":”6ab3d8465166598a5f4e8c1b44f44645”
}
Examples:
api.getShakeInfo(ticket);
Result:
{
"data" : {
},
"errcode": 0,
"errmsg": "success."
}
``` * @name getShakeInfo
方法签名
属性 | exports.getShakeInfo | ||
参数 | ticket(Object) | 摇周边业务的ticket,可在摇到的URL中得到,ticket生效时间为30分钟 |
数据统计: 以设备为维度的数据统计接口
接口说明:
查询单个设备进行摇周边操作的人数、次数,点击摇周边消息的人数、次数;查询的最长时间跨度为30天。
详情请参见:http://mp.weixin.qq.com/wiki/0/8a24bcacad40fe7ee98d1573cb8a6764.html
Options:
{
"device_identifier": {
"device_id":10011, //设备编号,若填了UUID、major、minor,则可不填设备编号,若二者都填,则以设备编号为优先
"uuid":"FDA50693-A4E2-4FB1-AFCF-C6EB07647825", //UUID、major、minor,三个信息需填写完整,若填了设备编号,则可不填此信息。
"major":1002,
"minor":1223
},
"begin_date": 12313123311,
"end_date": 123123131231
}
Examples:
api.getDeviceStatistics(options);
Result:
{
"data" : {
{
"click_pv": 0,
"click_uv": 0,
"ftime": 1425052800,
"shake_pv": 0,
"shake_uv": 0
},
{
"click_pv": 0,
"click_uv": 0,
"ftime": 1425139200,
"shake_pv": 0,
"shake_uv": 0
}
},
"errcode": 0,
"errmsg": "success."
}
方法签名
属性 | exports.getDeviceStatistics | ||
名字 | getDeviceStatistics | ||
参数 | options(Object) | 请求参数 |
数据统计: 以页面为维度的数据统计接口
接口说明:
查询单个页面通过摇周边摇出来的人数、次数,点击摇周边页面的人数、次数;查询的最长时间跨度为30天。
详情请参见:http://mp.weixin.qq.com/wiki/0/8a24bcacad40fe7ee98d1573cb8a6764.html
Options:
{
"page_id": 12345,
"begin_date": 12313123311,
"end_date": 123123131231
}
Examples:
api.getPageStatistics(options);
Result:
{
"data" : {
{
"click_pv": 0,
"click_uv": 0,
"ftime": 1425052800,
"shake_pv": 0,
"shake_uv": 0
},
{
"click_pv": 0,
"click_uv": 0,
"ftime": 1425139200,
"shake_pv": 0,
"shake_uv": 0
}
},
"errcode": 0,
"errmsg": "success."
}
``` * @name getPageStatistics
方法签名
属性 | exports.getPageStatistics | ||
参数 | options(Object) | 请求参数 |
上传图片
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.uploadPicture('/path/to/your/img.jpg');
Result:
{
"errcode": 0,
"errmsg": "success"
"image_url": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2ibl4JWwwnW3icSJGqecVtRiaPxwWEIr99eYYL6AAAp1YBo12CpQTXFH6InyQWXITLvU4CU7kic4PcoXA/0"
}
方法签名
属性 | exports.uploadPicture | ||
参数 | filepath(String) | 文件路径 |
增加邮费模板
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.addExpress(express);
Express:
{
"delivery_template": {
"Name": "testexpress",
"Assumer": 0,
"Valuation": 0,
"TopFee": [
{
"Type": 10000027,
"Normal": {
"StartStandards": 1,
"StartFees": 2,
"AddStandards": 3,
"AddFees": 1
},
"Custom": [
{
"StartStandards": 1,
"StartFees": 100,
"AddStandards": 1,
"AddFees": 3,
"DestCountry": "中国",
"DestProvince": "广东省",
"DestCity": "广州市"
}
]
},
{
"Type": 10000028,
"Normal": {
"StartStandards": 1,
"StartFees": 3,
"AddStandards": 3,
"AddFees": 2
},
"Custom": [
{
"StartStandards": 1,
"StartFees": 10,
"AddStandards": 1,
"AddFees": 30,
"DestCountry": "中国",
"DestProvince": "广东省",
"DestCity": "广州市"
}
]
},
{
"Type": 10000029,
"Normal": {
"StartStandards": 1,
"StartFees": 4,
"AddStandards": 3,
"AddFees": 3
},
"Custom": [
{
"StartStandards": 1,
"StartFees": 8,
"AddStandards": 2,
"AddFees": 11,
"DestCountry": "中国",
"DestProvince": "广东省",
"DestCity": "广州市"
}
]
}
]
}
}
Result:
{
"errcode": 0,
"errmsg": "success"
"template_id": 123456
}
方法签名
属性 | exports.addExpressTemplate | ||
参数 | express(Object) | 邮费模版 |
修改邮费模板
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.deleteExpressTemplate(templateId);
Result:
{
"errcode": 0,
"errmsg": "success"
}
方法签名
属性 | exports.deleteExpressTemplate | ||
参数 | templateId(Number) | 邮费模版ID |
修改邮费模板
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.updateExpressTemplate(template);
Express:
{
"template_id": 123456,
"delivery_template": ...
}
Result:
{
"errcode": 0,
"errmsg": "success"
}
方法签名
属性 | exports.updateExpressTemplate | ||
参数 | template(Object) | 邮费模版 |
获取指定ID的邮费模板
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.getExpressTemplateById(templateId);
Result:
{
"errcode": 0,
"errmsg": "success",
"template_info": {
"Id": 103312916,
"Name": "testexpress",
"Assumer": 0,
"Valuation": 0,
"TopFee": [
{
"Type": 10000027,
"Normal": {
"StartStandards": 1,
"StartFees": 2,
"AddStandards": 3,
"AddFees": 1
},
"Custom": [
{
"StartStandards": 1,
"StartFees": 1000,
"AddStandards": 1,
"AddFees": 3,
"DestCountry": "中国",
"DestProvince": "广东省",
"DestCity": "广州市"
}
]
},
...
]
}
}
方法签名
属性 | exports.getExpressTemplateById | ||
参数 | templateId(Number) | 邮费模版Id |
获取所有邮费模板的未封装版本
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.getAllExpressTemplates();
Result:
{
"errcode": 0,
"errmsg": "success",
"templates_info": [
{
"Id": 103312916,
"Name": "testexpress1",
"Assumer": 0,
"Valuation": 0,
"TopFee": [...],
},
{
"Id": 103312917,
"Name": "testexpress2",
"Assumer": 0,
"Valuation": 2,
"TopFee": [...],
},
{
"Id": 103312918,
"Name": "testexpress3",
"Assumer": 0,
"Valuation": 1,
"TopFee": [...],
}
]
}
方法签名
属性 | exports.getAllExpressTemplates |
增加商品
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.createGoods(goods);
Goods:
{
"product_base":{
"category_id":[
"537074298"
],
"property":[
{"id":"1075741879","vid":"1079749967"},
{"id":"1075754127","vid":"1079795198"},
{"id":"1075777334","vid":"1079837440"}
],
"name":"testaddproduct",
"sku_info":[
{
"id":"1075741873",
"vid":["1079742386","1079742363"]
}
],
"main_img": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2iccsvYbHvnphkyGtnvjD3ulEKogfsiaua49pvLfUS8Ym0GSYjViaLic0FD3vN0V8PILcibEGb2fPfEOmw/0",
"img":[
"http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2iccsvYbHvnphkyGtnvjD3ulEKogfsiaua49pvLfUS8Ym0GSYjViaLic0FD3vN0V8PILcibEGb2fPfEOmw/0"
],
"detail":[
{"text":"testfirst"},
{"img": 4whpV1VZl2iccsvYbHvnphkyGtnvjD3ul1UcLcwxrFdwTKYhH9Q5YZoCfX4Ncx655ZK6ibnlibCCErbKQtReySaVA/0"},
{"text":"testagain"}
],
"buy_limit":10
},
"sku_list":[
{
"sku_id":"1075741873:1079742386",
"price":30,
"icon_url": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl28bJj62XgfHPibY3ORKicN1oJ4CcoIr4BMbfA8LqyyjzOZzqrOGz3f5K Wq1QGP3fo6TOTSYD3TBQjuw/0",
"product_code":"testing",
"ori_price":9000000,
"quantity":800
},
{
"sku_id":"1075741873:1079742363",
"price":30,
"icon_url": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl28bJj62XgfHPibY3ORKicN1oJ4CcoIr4BMbfA8LqyyjzOZzqrOGz3f5K Wq1QGP3fo6TOTSYD3TBQjuw/0",
"product_code":"testingtesting",
"ori_price":9000000,
"quantity":800
}
],
"attrext":{
"location":{
"country":"中国",
"province":"广东省",
"city":"广州市",
"address":"T.I.T创意园"
},
"isPostFree":0,
"isHasReceipt":1,
"isUnderGuaranty":0,
"isSupportReplace":0
},
"delivery_info":{
"delivery_type":0,
"template_id":0,
"express":[
{"id":10000027,"price":100},
{"id":10000028,"price":100},
{"id":10000029,"price":100}
]
}
}
Result:
{
"errcode": 0,
"errmsg": "success",
"product_id": "pDF3iYwktviE3BzU3BKiSWWi9Nkw"
}
方法签名
属性 | exports.createGoods | ||
参数 | goods(Object) | 商品信息 |
删除商品
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.deleteGoods(productId);
Result:
{
"errcode": 0,
"errmsg": "success",
}
方法签名
属性 | exports.deleteGoods | ||
参数 | productId(String) | 商品Id |
修改商品
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.updateGoods(goods);
Goods:
{
"product_id":"pDF3iY6Kr_BV_CXaiYysoGqJhppQ",
"product_base":{
"category_id":[
"537074298"
],
"property":[
{"id":"1075741879","vid":"1079749967"},
{"id":"1075754127","vid":"1079795198"},
{"id":"1075777334","vid":"1079837440"}
],
"name":"testaddproduct",
"sku_info":[
{
"id":"1075741873",
"vid":["1079742386","1079742363"]
}
],
"main_img": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2iccsvYbHvnphkyGtnvjD3ulEKogfsiaua49pvLfUS8Ym0GSYjViaLic0FD3vN0V8PILcibEGb2fPfEOmw/0",
"img":[
"http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2iccsvYbHvnphkyGtnvjD3ulEKogfsiaua49pvLfUS8Ym0GSYjViaLic0FD3vN0V8PILcibEGb2fPfEOmw/0"
],
"detail":[
{"text":"testfirst"},
{"img": 4whpV1VZl2iccsvYbHvnphkyGtnvjD3ul1UcLcwxrFdwTKYhH9Q5YZoCfX4Ncx655ZK6ibnlibCCErbKQtReySaVA/0"},
{"text":"testagain"}
],
"buy_limit":10
},
"sku_list":[
{
"sku_id":"1075741873:1079742386",
"price":30,
"icon_url": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl28bJj62XgfHPibY3ORKicN1oJ4CcoIr4BMbfA8LqyyjzOZzqrOGz3f5K Wq1QGP3fo6TOTSYD3TBQjuw/0",
"product_code":"testing",
"ori_price":9000000,
"quantity":800
},
{
"sku_id":"1075741873:1079742363",
"price":30,
"icon_url": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl28bJj62XgfHPibY3ORKicN1oJ4CcoIr4BMbfA8LqyyjzOZzqrOGz3f5K Wq1QGP3fo6TOTSYD3TBQjuw/0",
"product_code":"testingtesting",
"ori_price":9000000,
"quantity":800
}
],
"attrext":{
"location":{
"country":"中国",
"province":"广东省",
"city":"广州市",
"address":"T.I.T创意园"
},
"isPostFree":0,
"isHasReceipt":1,
"isUnderGuaranty":0,
"isSupportReplace":0
},
"delivery_info":{
"delivery_type":0,
"template_id":0,
"express":[
{"id":10000027,"price":100},
{"id":10000028,"price":100},
{"id":10000029,"price":100}
]
}
}
Result:
{
"errcode": 0,
"errmsg": "success"
}
方法签名
属性 | exports.updateGoods | ||
参数 | goods(Object) | 商品信息 |
查询商品
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.getGoods(productId);
Result:
{
"errcode": 0,
"errmsg": "success",
"product_info":{
"product_id":"pDF3iY6Kr_BV_CXaiYysoGqJhppQ",
"product_base":{
"name":"testaddproduct",
"category_id":[537074298],
"img":[
"http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2iccsvYbHvnphkyGtnvjD3ulEKogfsiaua49pvLfUS8Ym0GSYjViaLic0FD3vN0V8PILcibEGb2fPfEOmw/0"
],
"property":[
{"id":"品牌","vid":"Fujifilm/富⼠士"},
{"id":"屏幕尺⼨寸","vid":"1.8英⼨寸"},
{"id":"防抖性能","vid":"CCD防抖"}
],
"sku_info":[
{
"id":"1075741873",
"vid":[
"1079742386",
"1079742363"
]
}
],
"buy_limit":10,
"main_img": 4whpV1VZl2iccsvYbHvnphkyGtnvjD3ulEKogfsiaua49pvLfUS8Ym0GSYjViaLic 0FD3vN0V8PILcibEGb2fPfEOmw/0",
"detail_html": "<div class=\"item_pic_wrp\" style= \"margin-bottom:8px;font-size:0;\"><img class=\"item_pic\" style= \"width:100%;\" alt=\"\" src=\"http://mmbiz.qpic.cn/mmbiz/ 4whpV1VZl2iccsvYbHvnphkyGtnvjD3ulEKogfsiaua49pvLfUS8Ym0GSYjViaLic 0FD3vN0V8PILcibEGb2fPfEOmw/0\" ></div><p style=\"margin-bottom: 11px;margin-top:11px;\">test</p><div class=\"item_pic_wrp\" style=\"margin-bottom:8px;font-size:0;\"><img class=\"item_pic\" style=\"width:100%;\" alt=\"\" src=\"http://mmbiz.qpic.cn/mmbiz/ 4whpV1VZl2iccsvYbHvnphkyGtnvjD3ul1UcLcwxrFdwTKYhH9Q5YZoCfX4Ncx655 ZK6ibnlibCCErbKQtReySaVA/0\" ></div><p style=\"margin-bottom: 11px;margin-top:11px;\">test again</p>"
},
"sku_list":[
{
"sku_id":"1075741873:1079742386",
"price":30,
"icon_url": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2iccsvYbHvnphkyGtnvjD3ulEKogfsiaua49pvLfUS8Ym0GSYjViaLic0FD3vN0V8PILcibEGb2fPfEOmw/0",
"quantity":800,
"product_code":"testing",
"ori_price":9000000
},
{
"sku_id":"1075741873:1079742363",
"price":30,
"icon_url": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl28bJj62XgfHPibY3ORKicN1oJ4CcoIr4BMbfA8LqyyjzOZzqrOGz3f5KWq1QGP3fo6TOTSYD3TBQjuw/0",
"quantity":800,
"product_code":"testingtesting",
"ori_price":9000000
}
],
"attrext":{
"isPostFree":0,
"isHasReceipt":1,
"isUnderGuaranty":0,
"isSupportReplace":0,
"location":{
"country":"中国",
"province":"广东省",
"city":"⼲州市",
"address":"T.I.T创意园"
}
},
"delivery_info":{
"delivery_type":1,
"template_id":103312920
}
}
}
方法签名
属性 | exports.getGoods | ||
参数 | productId(String) | 商品Id |
获取指定状态的所有商品
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.deleteGoods(productId);
Result:
{
"errcode": 0,
"errmsg": "success",
"products_info": [
{
"product_base": ...,
"sku_list": ...,
"attrext": ...,
"delivery_info": ...,
"product_id": "pDF3iY-mql6CncpbVajaB_obC321",
"status": 1
}
]
}
方法签名
属性 | exports.getGoodsByStatus | ||
参数 | status(Number) | 状态码。(0-全部, 1-上架, 2-下架) |
商品上下架
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.updateGoodsStatus(productId, status);
Result:
{
"errcode": 0,
"errmsg": "success"
}
方法签名
属性 | exports.updateGoodsStatus | ||
参数 | productId(String) | 商品Id |
|
参数 | status(Number) | 状态码。(0-全部, 1-上架, 2-下架) |
获取指定分类的所有子分类
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.getSubCats(catId);
Result:
{
"errcode": 0,
"errmsg": "success"
"cate_list": [!
{"id": "537074292","name": "数码相机"},
{"id": "537074293","name": "家⽤用摄像机"},
{"id": "537074298",! "name": "单反相机"}
]
}
方法签名
属性 | exports.getSubCats | ||
参数 | catId(Number) | 大分类ID |
获取指定子分类的所有SKU
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.getSKUs(catId);
Result:
{
"errcode": 0,
"errmsg": "success"
"sku_table": [
{
"id": "1075741873",
"name": "颜⾊色",
"value_list": [
{"id": "1079742375", "name": "撞⾊色"},
{"id": "1079742376","name": "桔⾊色"}
]
}
]
}
方法签名
属性 | exports.getSKUs | ||
参数 | catId(Number) | 大分类ID |
获取指定分类的所有属性
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.getProperties(catId);
Result:
{
"errcode": 0,
"errmsg": "success"
"properties": [
{
"id": "1075741879",
"name": "品牌",
"property_value": [
{"id": "200050867","name": "VIC&"},
{"id": "200050868","name": "Kate&"},
{"id": "200050971","name": "M&"},
{"id": "200050972","name": "Black&"}
]
},
{
"id": "123456789",
"name": "颜⾊色",
"property_value": ...
}
]
}
方法签名
属性 | exports.getProperties | ||
参数 | catId(Number) | 分类ID |
创建商品分组
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.createGoodsGroup(groupName, productList);
Result:
{
"errcode": 0,
"errmsg": "success",
"group_id": 19
}
方法签名
属性 | exports.createGoodsGroup | ||
参数 | groupName(String) | 分组名 |
|
参数 | productList(Array) | 该组商品列表 |
|
参数 | callback(Function) | 回调函数 |
删除商品分组
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.deleteGoodsGroup(groupId);
Result:
{
"errcode": 0,
"errmsg": "success"
}
方法签名
属性 | exports.deleteGoodsGroup | ||
参数 | groupId(String) | 分组ID |
修改商品分组属性
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.updateGoodsGroup(groupId, groupName);
Result:
{
"errcode": 0,
"errmsg": "success"
}
方法签名
属性 | exports.updateGoodsGroup | ||
参数 | groupId(String) | 分组ID |
|
参数 | groupName(String) | 分组名 |
修改商品分组内的商品
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.updateGoodsForGroup(groupId, addProductList, delProductList);
Result:
{
"errcode": 0,
"errmsg": "success"
}
方法签名
属性 | exports.updateGoodsForGroup | ||
参数 | groupId(Object) | 分组ID |
|
参数 | addProductList(Array) | 待添加的商品数组 |
|
参数 | delProductList(Array) | 待删除的商品数组 |
|
参数 | callback(Function) | 回调函数 |
获取所有商品分组
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.getAllGroups();
Result:
{
"errcode": 0,
"errmsg": "success"
"groups_detail": [
{
"group_id": 200077549,
"group_name": "新品上架"
},{
"group_id": 200079772,
"group_name": "全球热卖"
}
]
}
方法签名
属性 | exports.getAllGroups |
根据ID获取商品分组
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.getGroupById(groupId);
Result:
{
"errcode": 0,
"errmsg": "success"
"group_detail": {
"group_id": 200077549,
"group_name": "新品上架",
"product_list": [
"pDF3iYzZoY-Budrzt8O6IxrwIJAA",
"pDF3iY3pnWSGJcO2MpS2Nxy3HWx8",
"pDF3iY33jNt0Dj3M3UqiGlUxGrio"
]
}
}
方法签名
属性 | exports.getGroupById | ||
参数 | groupId(String) | 分组ID |
根据订单Id获取订单详情
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.getOrderById(orderId);
Result:
{
"errcode": 0,
"errmsg": "success",
"order": {
"order_id": "7197417460812533543",
"order_status": 6,
"order_total_price": 6,
"order_create_time": 1394635817,
"order_express_price": 5,
"buyer_openid": "oDF3iY17NsDAW4UP2qzJXPsz1S9Q",
"buyer_nick": "likeacat",
"receiver_name": "张小猫",
"receiver_province": "广东省",
"receiver_city": "广州市",
"receiver_address": "华景路一号南方通信大厦5楼",
"receiver_mobile": "123456789",
"receiver_phone": "123456789",
"product_id": "pDF3iYx7KDQVGzB7kDg6Tge5OKFo",
"product_name": "安莉芳E-BRA专柜女士舒适内衣蕾丝3/4薄杯聚拢上托性感文胸KB0716",
"product_price": 1,
"product_sku": "10000983:10000995;10001007:10001010",
"product_count": 1,
"product_img": "http://img2.paipaiimg.com/00000000/item-52B87243-63CCF66C00000000040100003565C1EA.0.300x300.jpg",
"delivery_id": "1900659372473",
"delivery_company": "059Yunda",
"trans_id": "1900000109201404103172199813"
}
}
方法签名
属性 | exports.getOrderById | ||
参数 | orderId(String) | 订单Id |
根据订单状态/创建时间获取订单详情
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.getOrdersByStatus([status,] [beginTime,] [endTime,]);
Usage:
当只传入callback参数时,查询所有状态,所有时间的订单
当传入一个参数,参数为Number类型,查询指定状态,所有时间的订单
当传入一个参数,参数为Date类型,查询所有状态,指定订单创建起始时间的订单(待测试)
当传入二个参数,第一参数为订单状态码,第二参数为订单创建起始时间
当传入三个参数,第一参数为订单状态码,第二参数为订单创建起始时间,第三参数为订单创建终止时间
Result:
{
"errcode": 0,
"errmsg": "success",
"order_list": [
{
"order_id": "7197417460812533543",
"order_status": 6,
"order_total_price": 6,
"order_create_time": 1394635817,
"order_express_price": 5,
"buyer_openid": "oDF3iY17NsDAW4UP2qzJXPsz1S9Q",
"buyer_nick": "likeacat",
"receiver_name": "张小猫",
"receiver_province": "广东省",
"receiver_city": "广州市",
"receiver_address": "华景路一号南方通信大厦5楼",
"receiver_mobile": "123456",
"receiver_phone": "123456",
"product_id": "pDF3iYx7KDQVGzB7kDg6Tge5OKFo",
"product_name": "安莉芳E-BRA专柜女士舒适内衣蕾丝3/4薄杯聚拢上托性感文胸KB0716",
"product_price": 1,
"product_sku": "10000983:10000995;10001007:10001010",
"product_count": 1,
"product_img": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2icND8WwMThBEcehjhDv2icY4GrDSG5RLM3B2qd9kOicWGVJcsAhvXfibhWRNoGOvCfMC33G9z5yQr2Qw/0",
"delivery_id": "1900659372473",
"delivery_company": "059Yunda",
"trans_id": "1900000109201404103172199813"
},
{
"order_id": "7197417460812533569",
"order_status": 8,
"order_total_price": 1,
"order_create_time": 1394636235,
"order_express_price": 0,
"buyer_openid": "oDF3iY17NsDAW4UP2qzJXPsz1S9Q",
"buyer_nick": "likeacat",
"receiver_name": "张小猫",
"receiver_province": "广东省",
"receiver_city": "广州市",
"receiver_address": "华景路一号南方通信大厦5楼",
"receiver_mobile": "123456",
"receiver_phone": "123456",
"product_id": "pDF3iYx7KDQVGzB7kDg6Tge5OKFo",
"product_name": "项坠333",
"product_price": 1,
"product_sku": "1075741873:1079742377",
"product_count": 1,
"product_img": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2icND8WwMThBEcehjhDv2icY4GrDSG5RLM3B2qd9kOicWGVJcsAhvXfibhWRNoGOvCfMC33G9z5yQr2Qw/0",
"delivery_id": "1900659372473",
"delivery_company": "059Yunda",
"trans_id": "1900000109201404103172199813"
}
]
}
方法签名
属性 | exports.getOrdersByStatus | ||
参数 | status(Number) | 状态码。(无此参数-全部状态, 2-待发货, 3-已发货, 5-已完成, 8-维权中) |
|
参数 | beginTime(Date) | 订单创建时间起始时间。(无此参数则不按照时间做筛选) |
|
参数 | endTime(Date) | 订单创建时间终止时间。(无此参数则不按照时间做筛选) |
设置订单发货信息
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.setExpressForOrder(orderId, deliveryCompany, deliveryTrackNo, isOthers);
Result:
{
"errcode": 0,
"errmsg": "success"
}
方法签名
属性 | exports.setExpressForOrder | ||
参数 | orderId(String) | 订单Id |
|
参数 | deliveryCompany(String) | 物流公司 (物流公司Id请参考微信小店API手册) |
|
参数 | deliveryTrackNo(String) | 运单Id |
|
参数 | isOthers(Number) | 是否为6.4.5表之外的其它物流公司(0-否,1-是,无该字段默认为不是其它物流公司) |
设置订单发货信息-不需要物流配送
适用于不需要实体物流配送的虚拟商品,完成本操作后订单即完成。
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.setNoDeliveryForOrder(orderId);
Result:
{
"errcode": 0,
"errmsg": "success"
}
方法签名
属性 | exports.setNoDeliveryForOrder | ||
参数 | orderId(String) | 订单Id |
关闭订单
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.closeOrder(orderId);
Result:
{
"errcode": 0,
"errmsg": "success"
}
方法签名
属性 | exports.closeOrder | ||
参数 | orderId(String) | 订单Id |
增加货架
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.createShelf(shelf);
Shelf:
{
"shelf_data": {
"module_infos": [
{
"group_info": {
"filter": {
"count": 2
},
"group_id": 50
},
"eid": 1
},
{
"group_infos": {
"groups": [
{
"group_id": 49
},
{
"group_id": 50
},
{
"group_id": 51
}
]
},
"eid": 2
},
{
"group_info": {
"group_id": 52,
"img": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl29nqqObBwFwnIX3licVPnFV5Jm64z4I0TTicv0TjN7Vl9bykUUibYKIOjicAwIt6Oy0Y6a1Rjp5Tos8tg/0"
},
"eid": 3
},
{
"group_infos": {
"groups": [
{
"group_id": 49,
"img": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl29nqqObBwFwnIX3licVPnFV5uUQx7TLx4tB9qZfbe3JmqR4NkkEmpb5LUWoXF1ek9nga0IkeSSFZ8g/0"
},
{
"group_id": 50,
"img": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl29nqqObBwFwnIX3licVPnFV5G1kdy3ViblHrR54gbCmbiaMnl5HpLGm5JFeENyO9FEZAy6mPypEpLibLA/0"
},
{
"group_id": 52,
"img": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl29nqqObBwFwnIX3licVPnFV5uUQx7TLx4tB9qZfbe3JmqR4NkkEmpb5LUWoXF1ek9nga0IkeSSFZ8g/0"
}
]
},
"eid": 4
},
{
"group_infos": {
"groups": [
{
"group_id": 43
},
{
"group_id": 44
},
{
"group_id": 45
},
{
"group_id": 46
}
],
"img_background": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl29nqqObBwFwnIX3licVPnFV5uUQx7TLx4tB9qZfbe3JmqR4NkkEmpb5LUWoXF1ek9nga0IkeSSFZ8g/0"
},
"eid": 5
}
]
},
"shelf_banner": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2ibrWQn8zWFUh1YznsMV0XEiavFfLzDWYyvQOBBszXlMaiabGWzz5B2KhNn2IDemHa3iarmCyribYlZYyw/0",
"shelf_name": "测试货架"
}
Result:
{
"errcode": 0,
"errmsg": "success",
"shelf_id": 12
}
方法签名
属性 | exports.createShelf | ||
参数 | shelf(Object) | 货架信息 |
删除货架
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.deleteShelf(shelfId);
Result:
{
"errcode": 0,
"errmsg": "success"
}
方法签名
属性 | exports.deleteShelf | ||
参数 | shelfId(String) | 货架Id |
修改货架
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.updateShelf(shelf);
Shelf:
{
"shelf_id": 12345,
"shelf_data": ...,
"shelf_banner": "http://mmbiz.qpic.cn/mmbiz/ 4whpV1VZl2ibrWQn8zWFUh1YznsMV0XEiavFfLzDWYyvQOBBszXlMaiabGWzz5B2K hNn2IDemHa3iarmCyribYlZYyw/0",
"shelf_name": "货架名称"
}
Result:
{
"errcode": 0,
"errmsg": "success"
}
方法签名
属性 | exports.updateShelf | ||
参数 | shelf(Object) | 货架信息 |
获取所有货架
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.getAllShelf();
Result:
{
"errcode": 0,
"errmsg": "success",
"shelves": [
{
"shelf_info": {
"module_infos": [
{
"group_infos": {
"groups": [
{
"group_id": 200080093
},
{
"group_id": 200080118
},
{
"group_id": 200080119
},
{
"group_id": 200080135
}
],
"img_background": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl294FzPwnf9dAcaN7ButStztAZyy2yHY8pW6sTQKicIhAy5F0a2CqmrvDBjMFLtc2aEhAQ7uHsPow9A/0"
},
"eid": 5
}
]
},
"shelf_banner": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl294FzPwnf9dAcaN7ButStztAZyy2yHY8pW6sTQKicIhAy5F0a2CqmrvDBjMFLtc2aEhAQ7uHsPow9A/0",
"shelf_name": "新新人类",
"shelf_id": 22
},
{
"shelf_info": {
"module_infos": [
{
"group_info": {
"group_id": 200080119,
"filter": {
"count": 4
}
},
"eid": 1
}
]
},
"shelf_banner": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl294FzPwnf9dAcaN7ButStztAZyy2yHY8pW6sTQKicIhAy5F0a2CqmrvDBjMFLtc2aEhAQ7uHsPow9A/0",
"shelf_name": "店铺",
"shelf_id": 23
}
]
}
方法签名
属性 | exports.getAllShelves |
根据货架ID获取货架信息
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.getShelfById(shelfId);
Result:
{
"errcode": 0,
"errmsg": "success",
"shelf_info": {
"module_infos": [...]
},
"shelf_banner": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2ibp2DgDXiaic6WdflMpNdInS8qUia2BztlPu1gPlCDLZXEjia2qBdjoLiaCGUno9zbs1UyoqnaTJJGeEew/0",
"shelf_name": "新建货架",
"shelf_id": 97
}
方法签名
属性 | exports.getShelfById | ||
参数 | shelfId(String) | 货架Id |
增加库存
详细请看:http://mp.weixin.qq.com/wiki/index.php?title=微信小店接口
Examples:
api.updateStock(10, productId, sku); // 增加10件库存
api.updateStock(-10, productId, sku); // 减少10件库存
Result:
{
"errcode": 0,
"errmsg": "success"
}
方法签名
属性 | exports.updateStock | ||
参数 | number(Number) | 增加或者删除的数量 |
|
参数 | productId(String) | 商品ID |
|
参数 | sku(String) | SKU信息 |
设置所属行业
Examples:
var industryIds = {
"industry_id1":'1',
"industry_id2":"4"
};
api.setIndustry(industryIds);
方法签名
属性 | exports.setIndustry | ||
参数 | industryIds(Object) | 公众号模板消息所属行业编号 |
获得模板ID
Examples:
var templateIdShort = 'TM00015';
api.addTemplate(templateIdShort);
方法签名
属性 | exports.addTemplate | ||
参数 | templateIdShort(String) | 模板库中模板的编号,有“TM**”和“OPENTMTM**”等形式 |
发送模板消息
Examples:
var templateId: '模板id';
// URL置空,则在发送后,点击模板消息会进入一个空白页面(ios), 或无法点击(android)
var url: 'http://weixin.qq.com/download';
var topcolor = '#FF0000'; // 顶部颜色
var data = {
user:{
"value":'黄先生',
"color":"#173177"
}
};
api.sendTemplate('openid', templateId, url, topColor, data);
方法签名
属性 | exports.sendTemplate | ||
参数 | openid(String) | 用户的openid |
|
参数 | templateId(String) | 模板ID |
|
参数 | url(String) | URL置空,则在发送后,点击模板消息会进入一个空白页面(ios),或无法点击(android) |
|
参数 | topColor(String) | 顶部颜色 |
|
参数 | data(Object) | 渲染模板的数据 |
短网址服务
详细细节 http://mp.weixin.qq.com/wiki/index.php?title=长链接转短链接接口
Examples:
api.shorturl('http://mp.weixin.com');
方法签名
属性 | exports.shorturl | ||
参数 | longUrl(String) | 需要转换的长链接,支持http://、https://、weixin://wxpay格式的url |
获取用户基本信息。可以设置lang,其中zh_CN 简体,zh_TW 繁体,en 英语。默认为en
详情请见:http://mp.weixin.qq.com/wiki/index.php?title=获取用户基本信息
Examples:
api.getUser(openid);
api.getUser({openid: 'openid', lang: 'en'});
Result:
{
"subscribe": 1,
"openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M",
"nickname": "Band",
"sex": 1,
"language": "zh_CN",
"city": "广州",
"province": "广东",
"country": "中国",
"headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
"subscribe_time": 1382694957
}
方法签名
属性 | exports.getUser | ||
参数 | options(String,Object) | 用户的openid。或者配置选项,包含openid和lang两个属性。 |
批量获取用户基本信息
Example:
api.batchGetUsers(['openid1', 'openid2'])
Result:
{
"user_info_list": [{
"subscribe": 1,
"openid": "otvxTs4dckWG7imySrJd6jSi0CWE",
"nickname": "iWithery",
"sex": 1,
"language": "zh_CN",
"city": "Jieyang",
"province": "Guangdong",
"country": "China",
"headimgurl": "http://wx.qlogo.cn/mmopen/xbIQx1GRqdvyqkMMhEaGOX802l1CyqMJNgUzKP8MeAeHFicRDSnZH7FY4XB7p8XHXIf6uJA2SCunTPicGKezDC4saKISzRj3nz/0",
"subscribe_time": 1434093047,
"unionid": "oR5GjjgEhCMJFyzaVZdrxZ2zRRF4",
"remark": "",
"groupid": 0
}, {
"subscribe": 0,
"openid": "otvxTs_JZ6SEiP0imdhpi50fuSZg",
"unionid": "oR5GjjjrbqBZbrnPwwmSxFukE41U",
}]
}
方法签名
属性 | exports.batchGetUsers | ||
参数 | openids(Array) | 用户的openid数组。 |
获取关注者列表
详细细节 http://mp.weixin.qq.com/wiki/index.php?title=获取关注者列表
Examples:
api.getFollowers();
// or
api.getFollowers(nextOpenid);
Result:
{
"total":2,
"count":2,
"data":{
"openid":["","OPENID1","OPENID2"]
},
"next_openid":"NEXT_OPENID"
}
方法签名
属性 | exports.getFollowers | ||
参数 | nextOpenid(String) | 调用一次之后,传递回来的nextOpenid。第一次获取时可不填 |
设置用户备注名
详细细节 http://mp.weixin.qq.com/wiki/index.php?title=设置用户备注名接口
Examples:
api.updateRemark(openid, remark);
Result:
{
"errcode":0,
"errmsg":"ok"
}
方法签名
属性 | exports.updateRemark | ||
参数 | openid(String) | 用户的openid |
|
参数 | remark(String) | 新的备注名,长度必须小于30字符 |
创建标签
详细细节 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140837&token=&lang=zh_CN
Examples:
api.createTags(name);
Result:
{
"id":tagId,
"name":tagName
}
方法签名
属性 | exports.createTags | ||
参数 | name(String) | 标签名 |
获取公众号已创建的标签
详细细节 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140837&token=&lang=zh_CN
Examples:
api.getTags();
Result:
{
"tags":[{
"id":1,
"name":"每天一罐可乐星人",
"count":0 //此标签下粉丝数
},{
"id":2,
"name":"星标组",
"count":0
},{
"id":127,
"name":"广东",
"count":5
}
]
}
方法签名
属性 | exports.getTags |
编辑标签
详细细节 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140837&token=&lang=zh_CN
Examples:
api.updateTag(id,name);
Result:
{
"errcode":0,
"errmsg":"ok"
}
方法签名
属性 | exports.updateTag | ||
参数 | id(String) | 标签id |
|
参数 | name(String) | 标签名 |
删除标签
详细细节 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140837&token=&lang=zh_CN
Examples:
api.deleteTag(id);
Result:
{
"errcode":0,
"errmsg":"ok"
}
方法签名
属性 | exports.deleteTag | ||
参数 | id(String) | 标签id |
获取标签下粉丝列表
详细细节 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140837&token=&lang=zh_CN
Examples:
api.getUsersFromTag(tagId,nextOpenId);
Result:
{
"count":2,//这次获取的粉丝数量
"data":{//粉丝列表
"openid":[
"ocYxcuAEy30bX0NXmGn4ypqx3tI0",
"ocYxcuBt0mRugKZ7tGAHPnUaOW7Y"
]
},
方法签名
属性 | exports.getUsersFromTag | ||
参数 | tagId(String) | 标签id |
|
参数 | nextOpenId(String) | 第一个拉取的OPENID,不填默认从头开始拉取 |
批量为用户打标签
详细细节 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140837&token=&lang=zh_CN
Examples:
api.batchTagging(openIdList,tagId);
Result:
{
"errcode":0,
"errmsg":"ok"
}
方法签名
属性 | exports.batchTagging | ||
参数 | openIdList(Array) | openId列表 |
|
参数 | tagId(String) | 标签id |
批量为用户取消标签
详细细节 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140837&token=&lang=zh_CN
Examples:
api.batchUnTagging(openIdList,tagId);
Result:
{
"errcode":0,
"errmsg":"ok"
}
方法签名
属性 | exports.batchUnTagging | ||
参数 | openIdList(Array) | openId列表 |
|
参数 | tagId(String) | 标签id |
获取用户身上的标签列表
详细细节 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140837&token=&lang=zh_CN
Examples:
api.getIdList(openId);
Result:
{
"tagid_list":[//被置上的标签列表 134,2]
}
方法签名
属性 | exports.getIdList |