wechat-api Version: 1.34.0 By @Jackson Tian

微信公共平台Node库 API

api_card: API索引


uploadLogo

上传Logo
Examples:

api.uploadLogo('filepath', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode":0,
 "errmsg":"ok",
 "url":"http://mmbiz.qpic.cn/mmbiz/iaL1LJM1mF9aRKPZJkmG8xXhiaHqkKSVMMWeN3hLut7X7hicFNjakmxibMLGWpXrEXB33367o7zHN0CwngnQY7zb7g/0"
}

方法签名

方法 make()
名字 uploadLogo
参数 filepath(String)

文件路径

参数 callback(Function)

回调函数

addLocations

方法签名

方法 make()
名字 addLocations
参数 locations(Array)

位置

参数 callback(Function)

回调函数

createCardQRCode

创建用于投放的卡卷二维码,支持投放单张卡卷和多张卡卷
Examples:

api.createCardQRCode('info', 'expire_seconds', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "ok",
 "ticket":      "gQHB8DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0JIV3lhX3psZmlvSDZmWGVMMTZvAAIEsNnKVQMEIAMAAA==",//获取ticket后需调用换取二维码接口获取二维码图片,详情见字段说明。
 "expire_seconds": 1800,
 "url": "http://weixin.qq.com/q/BHWya_zlfioH6fXeL16o ",
 "show_qrcode_url": " https://mp.weixin.qq.com/cgi-bin/showqrcode?  ticket=gQH98DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0czVzRlSWpsamlyM2plWTNKVktvAAIE6SfgVQMEgDPhAQ%3D%3D"
 }

方法签名

方法 make()
名字 createCardQRCode
参数 info(Object)

卡卷信息,支持单张和多张模式 二维码投放单张卡卷

{
  "expire_seconds": 1800,
   "card": {
      "card_id": "pAtUNs1c3cBtMs5KeL8FP1f3fOaE"
    }
}
二维码投放多张卡卷
{
  "expire_seconds": 1800,
   "multiple_card": {
      "card_list": [
          {
            "card_id": "pAtUNs-HV0evhGTWbU3ohp99tW7k"
          },
          {
            "card_id": "pAtUNs1c3cBtMs5KeL8FP1f3fOaE"
          }
      ]
  }
}
参数 expire_seconds(number)

二维码的有效时间,范围是60 ~ 1800秒。不填默认为永久有效。

参数 callback(Function)

回调函数

activateMembercardUserForm

设置开卡字段接口

Examples:

api.activateMembercardUserForm(info, callback);

Callback:

- `err`, 调用失败时得到的异常
- `result`, 调用正常时得到的对象

Result:

{
"errcode":0,
"errmsg":"ok"
}

方法签名

方法 make()
名字 activateMembercardUserForm
参数 info(Object)

参数

参数 callback(Function)

回调函数

importCustomizedCodes

导入code接口
接口说明
开发者可调用该接口将自定义code导入微信卡券后台,由微信侧代理存储并下发code,本接口仅用于支持自定义code的卡券参与互通。
code:

[
  "11111",
  "22222",
  "33333"
]

Examples:

api.importCustomizedCodes('cardId', code, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode":0,
 "errmsg":"ok"
}

方法签名

方法 make()
名字 importCustomizedCodes
参数 cardId(String)

卡券ID

参数 code(Array)

待导入自定义code

参数 callback(Function)

回调函数

checkCustomizedCodes

核查code接口
接口说明
支持开发者调用该接口查询code导入微信后台的情况。
code:

[
  "11111",
  "22222",
  "33333"
]

Examples:

api.checkCustomizedCodes('cardId', code, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode":0,
 "errmsg":"ok",
 "exist_code":["11111","22222"],
 "not_exist_code":["33333"]
}

方法签名

方法 make()
名字 checkCustomizedCodes
参数 cardId(String)

卡券ID

参数 code(Array)

待核查自定义code

参数 callback(Function)

回调函数

getDepositCodesCount

查询导入code数目接口
接口说明
支持开发者调用该接口查询code导入微信后台成功的数目。
Examples:

api.getDepositCodesCount('cardId', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode":0,
 "errmsg":"ok",
 "count":123
}

方法签名

方法 make()
名字 getDepositCodesCount
参数 cardId(String)

卡券ID

参数 callback(Function)

回调函数

make

拉取卡券概况数据

方法签名

方法 make()
参数 beginDate(String)

开始时间

参数 endDate(String)

结束时间(结束时间不能为当天,不然会报错,可设为昨天)

参数 source(int)

卡券来源,0为公众平台创建的卡券数据、1是API创建的卡券数据

make

获取免费券数据

方法签名

方法 make()
参数 cardId(String)

cardId 卡券ID

参数 beginDate(String)

开始时间

参数 endDate(String)

结束时间(结束时间不能为当天,不然会报错,可设为昨天)

参数 source(int)

卡券来源,0为公众平台创建的卡券数据、1是API创建的卡券数据

addConsumer

设置商户的核销员
接口说明
开发者需调用该接口设置商户的核销员,并指定核销员的门店。
Examples:

api.addConsumer('username', 'locationId', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode":0,
 "errmsg":"ok"
}

方法签名

方法 make()
名字 addConsumer
参数 username(String)

店员的微信号,开发者须确认该微信号在设置之前已 经关注”卡券商户助手公众号“

参数 locationId(String)

当前核销员关联的门店值

参数 callback(Function)

回调函数

getApplyProtocol

卡券开放类目查询接口
接口说明
通过调用该接口查询卡券开放的类目ID,类目会随业务发展变更,请每次用接口去查询获取实时卡券类目。
注意:

  1. 本接口查询的返回值还有卡券资质ID,此处的卡券资质为:已微信认证的公众号通过微信公众平台申请卡券功能时,所需的资质。
    2.对于第三方开发者代制(无公众号)模式,子商户无论选择什么类目,均暂不需按照此返回提供资质,返回值仅参考类目ID 即可。
    Examples:
api.getApplyProtocol(callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "category": [
       {
           "primary_category_id": 1,
           "category_name": "美食",
           "secondary_category": [
               {
                   "secondary_category_id": 101,
                   "category_name": "粤菜",
                   "need_qualification_stuffs": [
                       "food_service_license_id",
                       "food_service_license_bizmedia_id"
                   ],
                   "can_choose_prepaid_card": 1,
                   "can_choose_payment_card": 1
               },
       }
   ],
 "errcode":0,
 "errmsg":"ok"
}

方法签名

方法 make()
名字 getApplyProtocol
参数 options(Object)

子商户相关资料

参数 callback(Function)

回调函数

submitSubmerchant

创建子商户接口
接口说明
支持母商户调用该接口传入子商户的相关资料,并获取子商户ID,用于子商户的卡券功能管理。
子商户的资质包括:商户名称、商户logo(图片)、卡券类目、授权函(扫描件或彩照)、授权函有效期截止时间。
Examples:

api.submitSubmerchant(options, callback);

options:
{
"brand_name": "aaaaaa",
"app_id":"xxxxxxxxxxx",
"logo_url": "http://mmbiz.xxxx",
"protocol": "xxxxxxxxxx",
"agreement_media_id":"xxxxxxxxxx",
"operator_media_id":"xxxxxxxx",
"end_time": 1438990559,
"primary_category_id": 1,
"secondary_category_id": 101
}

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 make()
名字 submitSubmerchant
参数 options(Object)

子商户相关资料

参数 callback(Function)

回调函数

updateSubmerchant

更新子商户接口
接口说明
支持调用该接口更新子商户信息。
Examples:

api.updateSubmerchant(options, callback);

options:
{
"merchant_id": 12,
"brand_name": "aaaaaa",
"app_id":"xxxxxxxxxxx",
"logo_url": "http://mmbiz.xxxx",
"protocol": "xxxxxxxxxx",
"agreement_media_id":"xxxxxxxxxx",
"operator_media_id":"xxxxxxxx",
"end_time": 1438990559,
"primary_category_id": 1,
"secondary_category_id": 101
}

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 make()
名字 updateSubmerchant
参数 options(Object)

子商户相关资料

参数 callback(Function)

回调函数

getSubmerchant

拉取单个子商户信息接口
接口说明
通过指定的子商户merchant_id,拉取该子商户的基础信息。
注意,用母商户去调用接口,但接口内传入的是子商户的merchant_id。
Examples:

api.getSubmerchant('merchantId', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 make()
名字 getSubmerchant
参数 merchantId(String)

子商户相关资料

参数 callback(Function)

回调函数

batchgetSubmerchant

批量拉取子商户信息接口
接口说明
母商户可以通过该接口批量拉取子商户的相关信息,一次调用最多拉取100个子商户的信息,可以通过多次拉去满足不同的查询需求
Examples:

api.batchgetSubmerchant(data, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 make()
名字 batchgetSubmerchant
参数 data(Object)

查询条件 {"begin_id": 0,"limit": 50,"status": "CHECKING"}

参数 callback(Function)

回调函数

getMemberCardUserInfo

拉取拉取会员信息接口
接口说明
支持开发者根据CardID和Code查询会员信息。
Examples:

api.getMemberCardUserInfo({"card_id": abd5e78412e5d12ff,"code": 5566778811002233}, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 make()
名字 getMemberCardUserInfo
参数 info(Object)

查询条件 {"card_id": abd5e78412e5d12ff,"code": 5566778811002233}

参数 callback(Function)

回调函数

getMemberCardUserInfo

更新会员信息
接口说明
当会员持卡消费后,支持开发者调用该接口更新会员信息。会员卡交易后的每次信息变更需通过该接口通知微信,便于后续消息通知及其他扩展功能。
Examples:

api.updateMemberCardUserInfo(data, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 make()
名字 getMemberCardUserInfo
参数 data(Object)

查询条件 {"card_id": abd5e78412e5d12ff,"code": 5566778811002233, "record_bonus" : 3000}

参数 callback(Function)

回调函数

api_common: API索引


API

根据appid和appsecret创建API的构造函数
如需跨进程跨机器进行操作Wechat API(依赖access token),access token需要进行全局维护
使用策略如下:

  1. 调用用户传入的获取token的异步方法,获得token之后使用
  2. 使用appid/appsecret获取token。并调用用户传入的保存token方法保存

Tips:

  • 如果跨机器运行wechat模块,需要注意同步机器之间的系统时间。

Examples:

var API = require('wechat-api');
var api = new API('appid', 'secret');

以上即可满足单进程使用。
当多进程时,token需要全局维护,以下为保存token的接口。

var api = new API('appid', 'secret', function (callback) {
  // 传入一个获取全局token的方法
  fs.readFile('access_token.txt', 'utf8', function (err, txt) {
    if (err) {return callback(err);}
    callback(null, JSON.parse(txt));
  });
}, function (token, callback) {
  // 请将token存储到全局,跨进程、跨机器级别的全局,比如写到数据库、redis等
  // 这样才能在cluster模式及多机情况下使用,以下为写入到文件的示例
  fs.writeFile('access_token.txt', JSON.stringify(token), callback);
});

方法签名

函数 API()
参数 appid(String)

在公众平台上申请得到的appid

参数 appsecret(String)

在公众平台上申请得到的app secret

参数 getToken(Function)

可选的。获取全局token对象的方法,多进程模式部署时需在意

参数 saveToken(Function)

可选的。保存全局token对象的方法,多进程模式部署时需在意

setEndpoint

用于设置接入点

  • 通用域名(api.weixin.qq.com),使用该域名将访问官方指定就近的接入点;
  • 上海域名(sh.api.weixin.qq.com),使用该域名将访问上海的接入点;
  • 深圳域名(sz.api.weixin.qq.com),使用该域名将访问深圳的接入点;
  • 香港域名(hk.api.weixin.qq.com),使用该域名将访问香港的接入点。

Examples:

api.setEndpoint('api.weixin.qq.com');

方法签名

方法 API.prototype.setEndpoint()
参数 domain(String)

域名,默认为api.weixin.qq.com

setOpts

用于设置urllib的默认options

Examples:

api.setOpts({timeout: 15000});

方法签名

方法 API.prototype.setOpts()
参数 opts(Object)

默认选项

request

设置urllib的hook

Examples:

api.setHook(function (options) {
  // options
});

方法签名

方法 API.prototype.request()
参数 beforeRequest(Function)

需要封装的方法

getLatestToken

获取最新的token

Examples:

api.getLatestToken(callback);

Callback:

  • err, 获取access token出现异常时的异常对象
  • token, 获取的token

方法签名

方法 API.prototype.getLatestToken()
参数 method(Function)

需要封装的方法

参数 args(Array)

方法需要的参数

mixin

用于支持对象合并。将对象合并到API.prototype上,使得能够支持扩展
Examples:

// 媒体管理(上传、下载)
API.mixin(require('./lib/api_media'));

方法签名

方法 API.mixin()
参数 obj(Object)

要合并的对象

patch

用于扩展API.
作用是:当微信的官方 API 添加新功能,而wechat-api没有来得及升级时,用这个方法快速添加此功能。
当 api 升级后应该用 API 内提供的方法。
Examples:

// 为 API 添加一个 createQr 方法。
API.ext("createQr", "https://api.weixin.qq.com/card/qrcode/create");

Usage:

// 调用这个 createQr 方法。
 api.createQr({'card_id': ’dkjeuDfsfeu3242w3dnjlq23i'}, callback);

方法签名

方法 API.patch()
参数 functionName(String)

用户调用的方法名

参数 apiUrl(String)

此 API 的 url 地址

参数 override(Bool)

如果填写 true 则覆盖原来 api 已有的方法, false 或不传,则抛错。

api_custom_service: API索引


make

获取客服聊天记录
详细请看:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1464937269_mUtmK&token=&lang=zh_CN

Opts:

{
 "starttime" : 123456789, 起始时间,unix时间戳
 "endtime" : 987654321,   结束时间,unix时间戳,每次查询时段不能超过24小时
 "msgid" : 1,             消息id顺序从小到大,从1开始
 "number" : 10000         每次获取条数,最多10000条
}

Examples:

api.getRecords(opts, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "recordlist": [
   {
     "worker": " test1",
     "openid": "oDF3iY9WMaswOPWjCIp_f3Bnpljk",
     "opercode": 2002,
     "time": 1400563710,
     "text": " 您好,客服test1为您服务。"
   },
   {
     "worker": " test1",
     "openid": "oDF3iY9WMaswOPWjCIp_f3Bnpljk",
     "opercode": 2003,
     "time": 1400563731,
     "text": " 你好,有什么事情? "
   },
 ]
}

方法签名

方法 make()
参数 opts(Object)

查询条件

参数 callback(Function)

回调函数

make

获取客服基本信息
详细请看:http://dkf.qq.com/document-3_1.html

Examples:

api.getCustomServiceList(callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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"
    }
  ]
}

方法签名

方法 make()
参数 callback(Function)

回调函数

make

获取在线客服接待信息
详细请看:http://dkf.qq.com/document-3_2.html

Examples:

api.getOnlineCustomServiceList(callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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
    }
  ]
}

方法签名

方法 make()
参数 callback(Function)

回调函数

make

添加客服账号
详细请看:http://mp.weixin.qq.com/wiki/9/6fff6f191ef92c126b043ada035cc935.html

Examples:

api.addKfAccount('test@test', 'nickname', 'password', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode" : 0,
 "errmsg" : "ok",
}

方法签名

方法 make()
参数 account(String)

账号名字,格式为:前缀@公共号名字

参数 nick(String)

昵称

参数 password(String)

密码,可以直接传递明文,wechat模块自动进行md5加密

参数 callback(Function)

回调函数

make

设置客服账号
详细请看:http://mp.weixin.qq.com/wiki/9/6fff6f191ef92c126b043ada035cc935.html

Examples:

api.updateKfAccount('test@test', 'nickname', 'password', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode" : 0,
 "errmsg" : "ok",
}

方法签名

方法 make()
参数 account(String)

账号名字,格式为:前缀@公共号名字

参数 nick(String)

昵称

参数 password(String)

密码,可以直接传递明文,wechat模块自动进行md5加密

参数 callback(Function)

回调函数

make

删除客服账号
详细请看:http://mp.weixin.qq.com/wiki/9/6fff6f191ef92c126b043ada035cc935.html

Examples:

api.deleteKfAccount('test@test', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode" : 0,
 "errmsg" : "ok",
}

方法签名

方法 make()
参数 account(String)

账号名字,格式为:前缀@公共号名字

参数 callback(Function)

回调函数

make

设置客服头像
详细请看:http://mp.weixin.qq.com/wiki/9/6fff6f191ef92c126b043ada035cc935.html

Examples:

api.setKfAccountAvatar('test@test', '/path/to/avatar.png', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode" : 0,
 "errmsg" : "ok",
}

方法签名

方法 make()
参数 account(String)

账号名字,格式为:前缀@公共号名字

参数 filepath(String)

头像路径

参数 callback(Function)

回调函数

make

创建会话
详细请看:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1458044820&token=&lang=zh_CN

Examples:

api.createKfSession('test@test', 'openidxxx', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode" : 0,
 "errmsg" : "ok",
}

方法签名

方法 make()
参数 account(String)

完整客服帐号,格式为:帐号前缀@公众号微信号

参数 openid(String)

粉丝的openid

参数 callback(Function)

回调函数

make

关闭会话
详细请看:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1458044820&token=&lang=zh_CN

Examples:

api.closeKfSession('test@test', 'openidxxx', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode" : 0,
 "errmsg" : "ok",
}

方法签名

方法 make()
参数 account(String)

完整客服帐号,格式为:帐号前缀@公众号微信号

参数 openid(String)

粉丝的openid

参数 callback(Function)

回调函数

make

获取客户会话状态
详细请看:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1458044820&token=&lang=zh_CN

Examples:

api.getKfSession('openidxxx', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
   "createtime" : 123456789,
   "kf_account" : "test1@test"
}

方法签名

方法 make()
参数 openid(String)

粉丝的openid

参数 callback(Function)

回调函数

make

获取客服会话列表
详细请看:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1458044820&token=&lang=zh_CN

Examples:

api.getKfSessionList('openidxxx', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
   "sessionlist" : [
      {
         "createtime" : 123456789,
         "openid" : "OPENID"
      },
      {
         "createtime" : 123456789,
         "openid" : "OPENID"
      }
   ]
}

方法签名

方法 make()
参数 account(String)

完整客服帐号,格式为:帐号前缀@公众号微信号

参数 callback(Function)

回调函数

make

获取未接入会话列表
详细请看:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1458044820&token=&lang=zh_CN

Examples:

api.getKfSessionWaitCase(callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
   "count" : 150,                    //未接入会话数量
   "waitcaselist" : [                //未接入会话列表,最多返回100条数据,按照来访顺序
      {
         "latest_time" : 123456789,
         "openid" : "OPENID"
      },
      {
         "latest_time" : 123456789,
         "openid" : "OPENID"
      }
   ]
}

方法签名

方法 make()
参数 callback(Function)

回调函数

api_datacube: API索引


api_device: API索引


api_feedback: API索引


updateFeedback

标记客户的投诉处理状态
Examples:

api.updateFeedback(openid, feedbackId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success"
}

方法签名

方法 exports.updateFeedback()
参数 openid(String)

用户ID

参数 feedbackId(String)

投诉ID

参数 callback(Function)

回调函数

api_group: API索引


make

获取分组列表
详情请见:http://mp.weixin.qq.com/wiki/0/56d992c605a97245eb7e617854b169fc.html
Examples:

api.getGroups(callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "groups": [
   {"id": 0, "name": "未分组", "count": 72596},
   {"id": 1, "name": "黑名单", "count": 36}
 ]
}

方法签名

方法 make()
参数 callback(Function)

回调函数

make

查询用户在哪个分组
详情请见:http://mp.weixin.qq.com/wiki/0/56d992c605a97245eb7e617854b169fc.html
Examples:

api.getWhichGroup(openid, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "groupid": 102
}

方法签名

方法 make()
参数 openid(String)

Open ID

参数 callback(Function)

回调函数

make

创建分组
详情请见:http://mp.weixin.qq.com/wiki/0/56d992c605a97245eb7e617854b169fc.html
Examples:

api.createGroup('groupname', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"group": {"id": 107, "name": "test"}}

方法签名

方法 make()
参数 name(String)

分组名字

参数 callback(Function)

回调函数

make

更新分组名字
详情请见:http://mp.weixin.qq.com/wiki/0/56d992c605a97245eb7e617854b169fc.html
Examples:

api.updateGroup(107, 'new groupname', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"errcode": 0, "errmsg": "ok"}

方法签名

方法 make()
参数 id(Number)

分组ID

参数 name(String)

新的分组名字

参数 callback(Function)

回调函数

make

移动用户进分组
详情请见:http://mp.weixin.qq.com/wiki/0/56d992c605a97245eb7e617854b169fc.html
Examples:

api.moveUserToGroup(openid, groupId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"errcode": 0, "errmsg": "ok"}

方法签名

方法 make()
参数 openid(String)

用户的openid

参数 groupId(Number)

分组ID

参数 callback(Function)

回调函数

make

删除分组
详情请见:http://mp.weixin.qq.com/wiki/0/56d992c605a97245eb7e617854b169fc.html
Examples:

api.removeGroup(groupId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"errcode": 0, "errmsg": "ok"}

方法签名

方法 make()
参数 groupId(Number)

分组ID

参数 callback(Function)

回调函数

api_ip: API索引


make

获取微信服务器IP地址
详情请见:http://mp.weixin.qq.com/wiki/0/2ad4b6bfd29f30f71d39616c2a0fcedc.html
Examples:

api.getIp(callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "ip_list":["127.0.0.1","127.0.0.1"]
}

方法签名

方法 make()
参数 callback(Function)

回调函数

api_js: API索引


registerTicketHandle

多台服务器负载均衡时,ticketToken需要外部存储共享。
需要调用此registerTicketHandle来设置获取和保存的自定义方法。

Examples:

api.registerTicketHandle(getTicketToken, saveTicketToken);
// getTicketToken
function getTicketToken(type, callback) {
 settingModel.getItem(type, {key: 'weixin_ticketToken'}, function (err, setting) {
   if (err) return callback(err);
   callback(null, setting.value);
 });
}
// saveTicketToken
function saveTicketToken(type, _ticketToken, callback) {
 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的函数

getTicket

获取js sdk所需的有效js ticket

Callback:

  • err, 异常对象
  • result, 正常获取时的数据

Result:

  • errcode, 0为成功
  • errmsg, 成功为'ok',错误则为详细错误信息
  • ticket, js sdk有效票据,如:bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA
  • expires_in, 有效期7200秒,开发者必须在自己的服务全局缓存jsapi_ticket

方法签名

方法 exports.getTicket()
参数 callback(Function)

回调函数

getJsConfig

获取微信JS SDK Config的所需参数

Examples:

var param = {
 debug: false,
 jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'],
 url: 'http://www.xxx.com'
};
api.getJsConfig(param, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的js sdk config所需参数

方法签名

方法 exports.getJsConfig()
参数 param(Object)

参数

参数 callback(Function)

回调函数

getCardExt

获取微信JS SDK Config的所需参数

Examples:

var param = {
 card_id: 'p-hXXXXXXX',
 code: '1234',
 openid: '111111',
 balance: 100
};
api.getCardExt(param, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的card_ext对象,包含所需参数

方法签名

方法 exports.getCardExt()
名字 getCardExt
参数 param(Object)

参数

参数 callback(Function)

回调函数

getLatestTicket

获取最新的js api ticket

Examples:

api.getLatestTicket(callback);

Callback:

  • err, 获取js api ticket出现异常时的异常对象
  • ticket, 获取的ticket

方法签名

方法 exports.getLatestTicket()
参数 callback(Function)

回调函数

api_mass_send: API索引


uploadNews

上传多媒体文件,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:

api.uploadNews(news, callback);

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"
  }
 ]
}

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "type":"news",
 "media_id":"CsEf3ldqkAYJAU6EJeIkStVDSvffUJ54vqbThMgplD-VJXXof6ctX5fI6-aYyUiQ",
 "created_at":1391857799
}

方法签名

方法 exports.uploadNews()
参数 news(Object)

图文消息对象

参数 callback(Function)

回调函数

uploadMPVideo

将通过上传下载多媒体文件得到的视频media_id变成视频素材
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:

api.uploadMPVideo(opts, callback);

Opts:

{
 "media_id": "rF4UdIMfYK3efUfyoddYRMU50zMiRmmt_l0kszupYh_SzrcW5Gaheq05p_lHuOTQ",
 "title": "TITLE",
 "description": "Description"
}

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "type":"video",
 "media_id":"IhdaAQXuvJtGzwwc0abfXnzeezfO0NgPK6AQYShD8RQYMTtfzbLdBIQkQziv2XJc",
 "created_at":1391857799
}

方法签名

方法 exports.uploadMPVideo()
参数 opts(Object)

待上传为素材的视频

参数 callback(Function)

回调函数

massSend

群发消息,分别有图文(news)、文本(text)、语音(voice)、图片(image)和视频(video)
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:

api.massSend(opts, receivers, callback);

opts:

{
 "image":{
   "media_id":"123dsdajkasd231jhksad"
 },
 "msgtype":"image"
}

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode":0,
 "errmsg":"send job submission success",
 "msg_id":34182
}

方法签名

方法 exports.massSend()
参数 opts(Object)

待发送的数据

参数 receivers(String,Array)

接收人。一个组,或者openid列表

参数 callback(Function)

回调函数

massSendNews

群发图文(news)消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:

api.massSendNews(mediaId, receivers, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode":0,
 "errmsg":"send job submission success",
 "msg_id":34182
}

方法签名

方法 exports.massSendNews()
参数 mediaId(String)

图文消息的media id

参数 receivers(String,Array,Boolean)

接收人。一个组,或者openid列表, 或者true(群发给所有人)

参数 callback(Function)

回调函数

massSendText

群发文字(text)消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:

api.massSendText(content, receivers, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode":0,
 "errmsg":"send job submission success",
 "msg_id":34182
}

方法签名

方法 exports.massSendText()
参数 content(String)

文字消息内容

参数 receivers(String,Array)

接收人。一个组,或者openid列表

参数 callback(Function)

回调函数

massSendVoice

群发声音(voice)消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:

api.massSendVoice(media_id, receivers, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode":0,
 "errmsg":"send job submission success",
 "msg_id":34182
}

方法签名

方法 exports.massSendVoice()
参数 mediaId(String)

声音media id

参数 receivers(String,Array)

接收人。一个组,或者openid列表

参数 callback(Function)

回调函数

massSendImage

群发图片(image)消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:

api.massSendImage(media_id, receivers, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode":0,
 "errmsg":"send job submission success",
 "msg_id":34182
}

方法签名

方法 exports.massSendImage()
参数 mediaId(String)

图片media id

参数 receivers(String,Array)

接收人。一个组,或者openid列表

参数 callback(Function)

回调函数

massSendVideo

群发视频(video)消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:

api.massSendVideo(mediaId, receivers, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode":0,
 "errmsg":"send job submission success",
 "msg_id":34182
}

方法签名

方法 exports.massSendVideo()
参数 mediaId(String)

视频media id

参数 receivers(String,Array)

接收人。一个组,或者openid列表

参数 callback(Function)

回调函数

massSendMPVideo

群发视频(video)消息,直接通过上传文件得到的media id进行群发(自动生成素材)
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:

api.massSendMPVideo(data, receivers, callback);

Data:

{
 "media_id": "rF4UdIMfYK3efUfyoddYRMU50zMiRmmt_l0kszupYh_SzrcW5Gaheq05p_lHuOTQ",
 "title": "TITLE",
 "description": "Description"
}

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode":0,
 "errmsg":"send job submission success",
 "msg_id":34182
}

方法签名

方法 exports.massSendMPVideo()
参数 data(Object)

视频数据

参数 receivers(String,Array)

接收人。一个组,或者openid列表

参数 callback(Function)

回调函数

deleteMass

删除群发消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:

api.deleteMass(message_id, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode":0,
 "errmsg":"ok"
}

方法签名

方法 exports.deleteMass()
参数 messageId(String)

待删除群发的消息id

参数 callback(Function)

回调函数

previewNews

预览接口,预览图文消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:

api.previewNews(openid, mediaId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode":0,
 "errmsg":"send job submission success",
 "msg_id": 34182
}

方法签名

方法 exports.previewNews()
参数 openid(String)

用户openid

参数 mediaId(String)

图文消息mediaId

参数 callback(Function)

回调函数

previewText

预览接口,预览文本消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:

api.previewText(openid, content, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode":0,
 "errmsg":"send job submission success",
 "msg_id": 34182
}

方法签名

方法 exports.previewText()
参数 openid(String)

用户openid

参数 content(String)

文本消息

参数 callback(Function)

回调函数

previewVoice

预览接口,预览语音消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:

api.previewVoice(openid, mediaId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode":0,
 "errmsg":"send job submission success",
 "msg_id": 34182
}

方法签名

方法 exports.previewVoice()
参数 openid(String)

用户openid

参数 mediaId(String)

语音mediaId

参数 callback(Function)

回调函数

previewImage

预览接口,预览图片消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:

api.previewImage(openid, mediaId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode":0,
 "errmsg":"send job submission success",
 "msg_id": 34182
}

方法签名

方法 exports.previewImage()
参数 openid(String)

用户openid

参数 mediaId(String)

图片mediaId

参数 callback(Function)

回调函数

previewVideo

预览接口,预览视频消息
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:

api.previewVideo(openid, mediaId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode":0,
 "errmsg":"send job submission success",
 "msg_id": 34182
}

方法签名

方法 exports.previewVideo()
参数 openid(String)

用户openid

参数 mediaId(String)

视频mediaId

参数 callback(Function)

回调函数

getMassMessageStatus

查询群发消息状态
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:

api.getMassMessageStatus(messageId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "msg_id":201053012,
 "msg_status":"SEND_SUCCESS"
}

方法签名

方法 exports.getMassMessageStatus()
参数 messageId(String)

消息ID

参数 callback(Function)

回调函数

api_material: API索引


make

上传永久素材,分别有图片(image)、语音(voice)、和缩略图(thumb)
详情请见:http://mp.weixin.qq.com/wiki/14/7e6c03263063f4813141c3e17dd4350a.html
Examples:

api.uploadMaterial('filepath', type, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"type":"TYPE","media_id":"MEDIA_ID","created_at":123456789}

Shortcut:

  • exports.uploadImageMaterial(filepath, callback);
  • exports.uploadVoiceMaterial(filepath, callback);
  • exports.uploadThumbMaterial(filepath, callback);

方法签名

方法 make()
参数 filepath(String)

文件路径

参数 type(String)

媒体类型,可用值有image、voice、video、thumb

参数 callback(Function)

回调函数

make

上传永久素材,视频(video)
详情请见:http://mp.weixin.qq.com/wiki/14/7e6c03263063f4813141c3e17dd4350a.html
Examples:

var description = {
  "title":VIDEO_TITLE,
  "introduction":INTRODUCTION
};
api.uploadVideoMaterial('filepath', description, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"media_id":"MEDIA_ID"}

方法签名

方法 make()
参数 filepath(String)

视频文件路径

参数 description(Object)

描述

参数 callback(Function)

回调函数

uploadNewsMaterial

新增永久图文素材

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, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"errcode":0,"errmsg":"ok"}

方法签名

方法 exports.uploadNewsMaterial()
参数 news(Object)

图文对象

参数 callback(Function)

回调函数

updateNewsMaterial

更新永久图文素材
详情请见:http://mp.weixin.qq.com/wiki/14/7e6c03263063f4813141c3e17dd4350a.html
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
 }
}

Examples:

api.updateNewsMaterial(news, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"errcode":0,"errmsg":"ok"}

方法签名

方法 exports.updateNewsMaterial()
参数 news(Object)

图文对象

参数 callback(Function)

回调函数

getMaterial

根据媒体ID获取永久素材
详情请见:http://mp.weixin.qq.com/wiki/4/b3546879f07623cb30df9ca0e420a5d0.html
Examples:

api.getMaterial('media_id', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的文件Buffer对象
  • res, HTTP响应对象

方法签名

方法 exports.getMaterial()
参数 mediaId(String)

媒体文件的ID

参数 callback(Function)

回调函数

removeMaterial

删除永久素材
详情请见:http://mp.weixin.qq.com/wiki/5/e66f61c303db51a6c0f90f46b15af5f5.html
Examples:

api.removeMaterial('media_id', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的文件Buffer对象
  • res, HTTP响应对象

方法签名

方法 exports.removeMaterial()
参数 mediaId(String)

媒体文件的ID

参数 callback(Function)

回调函数

getMaterialCount

获取素材总数
详情请见:http://mp.weixin.qq.com/wiki/16/8cc64f8c189674b421bee3ed403993b8.html
Examples:

api.getMaterialCount(callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的文件Buffer对象
  • res, HTTP响应对象

Result:

{
 "voice_count":COUNT,
 "video_count":COUNT,
 "image_count":COUNT,
 "news_count":COUNT
}

方法签名

方法 exports.getMaterialCount()
参数 callback(Function)

回调函数

getMaterials

获取永久素材列表
详情请见:http://mp.weixin.qq.com/wiki/12/2108cd7aafff7f388f41f37efa710204.html
Examples:

api.getMaterials(type, offset, count, callback);

Callback:

  • err, 调用失败时得到的异常
  • 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之间

参数 callback(Function)

回调函数

api_media: API索引


uploadMedia

新增临时素材,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)
详情请见:http://mp.weixin.qq.com/wiki/5/963fc70b80dc75483a271298a76a8d59.html
Examples:

api.uploadMedia('filepath', type, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"type":"TYPE","media_id":"MEDIA_ID","created_at":123456789}

Shortcut:

  • exports.uploadImage(filepath, callback);
  • exports.uploadVoice(filepath, callback);
  • exports.uploadVideo(filepath, callback);
  • exports.uploadThumb(filepath, callback);

方法签名

方法 exports.uploadMedia()
参数 filepath(String)

文件路径

参数 type(String)

媒体类型,可用值有image、voice、video、thumb

参数 callback(Function)

回调函数

uploadMediaStream

流式新增临时素材,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)
拓展自uploadMedia,实现上游上传的流数据重定向到微信服务器,省去自己服务器的文件缓存。
Examples:

api.uploadMediaStream(req, type, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"type":"TYPE","media_id":"MEDIA_ID","created_at":123456789}

Shortcut:

  • exports.uploadImageStream(req, callback);
  • exports.uploadVoiceStream(req, callback);
  • exports.uploadVideoStream(req, callback);
  • exports.uploadThumbStream(req, callback);

方法签名

方法 exports.uploadMediaStream()
参数 req(String)

上游Stream对象,必须包含headers属性;例如expressjs中request对象。

参数 type(String)

媒体类型,可用值有image、voice、video、thumb

参数 callback(Function)

回调函数

getMedia

获取临时素材
详情请见:http://mp.weixin.qq.com/wiki/11/07b6b76a6b6e8848e855a435d5e34a5f.html
Examples:

api.getMedia('media_id', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的文件Buffer对象
  • res, HTTP响应对象

方法签名

方法 exports.getMedia()
参数 mediaId(String)

媒体文件的ID

参数 callback(Function)

回调函数

uploadImage

上传图文消息内的图片获取URL
详情请见:http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html
Examples:

api.uploadImage('filepath');

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"url":  "http://mmbiz.qpic.cn/mmbiz/gLO17UPS6FS2xsypf378iaNhWacZ1G1UplZYWEYfwvuU6Ont96b1roYsCNFwaRrSaKTPCUdBK9DgEHicsKwWCBRQ/0"}

方法签名

方法 exports.uploadImage()
参数 filepath(String)

图片文件路径

参数 callback(Function)

回调函数

uploadImageStream

上传来自上游管道的图文消息内的图片,并获取URL。
拓展于uploadImage,用于客户端直接上传文件管道重定向到微信服务器,不经过自身缓存服务器文件。
Examples:

api.uploadImageStream(req, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"url":  "http://mmbiz.qpic.cn/mmbiz/gLO17UPS6FS2xsypf378iaNhWacZ1G1UplZYWEYfwvuU6Ont96b1roYsCNFwaRrSaKTPCUdBK9DgEHicsKwWCBRQ/0"}

方法签名

方法 exports.uploadImageStream()
参数 req(Object)

上游Stream对象,必须包含headers属性;例如expressjs中request对象。

参数 callback(Function)

回调函数

api_menu: API索引


createMenu

创建自定义菜单
详细请看:http://mp.weixin.qq.com/wiki/13/43de8269be54a0a6f64413e4dfa94f39.html

Menu:

{
 "button":[
   {
     "type":"click",
     "name":"今日歌曲",
     "key":"V1001_TODAY_MUSIC"
   },
   {
     "name":"菜单",
     "sub_button":[
       {
         "type":"view",
         "name":"搜索",
         "url":"http://www.soso.com/"
       },
       {
         "type":"click",
         "name":"赞一下我们",
         "key":"V1001_GOOD"
       }]
     }]
   }
 ]
}

Examples:

api.createMenu(menu, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"errcode":0,"errmsg":"ok"}

方法签名

方法 exports.createMenu()
参数 menu(Object)

菜单对象

参数 callback(Function)

回调函数

getMenu

获取菜单
详细请看:http://mp.weixin.qq.com/wiki/5/f287d1a5b78a35a8884326312ac3e4ed.html

Examples:

api.getMenu(callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result: (注意:如果有个性化菜单被设置,返回的结果会具有更多信息,请参考微信文档)

// 结果示例
{
 "menu": {
   "button":[
     {"type":"click","name":"今日歌曲","key":"V1001_TODAY_MUSIC","sub_button":[]},
     {"type":"click","name":"歌手简介","key":"V1001_TODAY_SINGER","sub_button":[]},
     {"name":"菜单","sub_button":[
       {"type":"view","name":"搜索","url":"http://www.soso.com/","sub_button":[]},
       {"type":"view","name":"视频","url":"http://v.qq.com/","sub_button":[]},
       {"type":"click","name":"赞一下我们","key":"V1001_GOOD","sub_button":[]}]
     }
   ]
 }
}

方法签名

方法 exports.getMenu()
参数 callback(Function)

回调函数

removeMenu

删除自定义菜单
详细请看:http://mp.weixin.qq.com/wiki/16/8ed41ba931e4845844ad6d1eeb8060c8.html
Examples:

api.removeMenu(callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"errcode":0,"errmsg":"ok"}

方法签名

方法 exports.removeMenu()
参数 callback(Function)

回调函数

getMenuConfig

获取自定义菜单配置
详细请看:http://mp.weixin.qq.com/wiki/17/4dc4b0514fdad7a5fbbd477aa9aab5ed.html
Examples:

api.getMenuConfig(callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"errcode":0,"errmsg":"ok"}

方法签名

方法 exports.getMenuConfig()
参数 callback(Function)

回调函数

api_menu_custom: API索引


createCustomMenu

创建个性化菜单
详细请看:http://mp.weixin.qq.com/wiki/0/c48ccd12b69ae023159b4bfaa7c39c20.html

Menu:

{
 "button":[
   {
     "type":"click",
     "name":"今日歌曲",
     "key":"V1001_TODAY_MUSIC"
   },
   {
     "name":"菜单",
     "sub_button":[
       {
         "type":"view",
         "name":"搜索",
         "url":"http://www.soso.com/"
       },
       {
         "type":"click",
         "name":"赞一下我们",
         "key":"V1001_GOOD"
       }]
     }]
   }
 ],
 "matchrule":{
    "group_id":"2",
    "sex":"1", // 男1,女2
    "country":"中国",
    "province":"广东",
    "city":"广州",
    "client_platform_type":"2" // IOS(1), Android(2),Others(3)
  }
}

Examples:

api.createCustomMenu(menu, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{ menuid: 401550287 }

方法签名

方法 exports.createCustomMenu()
参数 menu(Object)

菜单对象

参数 callback(Function)

回调函数

removeCustomMenu

删除个性化菜单
详细请看:http://mp.weixin.qq.com/wiki/0/c48ccd12b69ae023159b4bfaa7c39c20.html

Examples:

api.removeCustomMenu(menu_id,callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"errcode":0,"errmsg":"ok"}

方法签名

方法 exports.removeCustomMenu()
参数 menu_id,(String)

可以通过自定义菜单查询接口获取

参数 callback(Function)

回调函数

testCustomMenu

测试个性化菜单
详细请看:http://mp.weixin.qq.com/wiki/0/c48ccd12b69ae023159b4bfaa7c39c20.html

Examples:

api.testCustomMenu(user_id,callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
   "button": [
      {
          "type": "view",
          "name": "tx",
          "url": "http://www.qq.com/",
          "sub_button": [ ]
      },
      {
          "type": "view",
          "name": "tx",
          "url": "http://www.qq.com/",
          "sub_button": [ ]
      },
      {
          "type": "view",
          "name": "tx",
          "url": "http://www.qq.com/",
          "sub_button": [ ]
      }
  ]
}

方法签名

方法 exports.testCustomMenu()
参数 user_id,(String)

可以是粉丝的OpenID,也可以是粉丝的微信号。

参数 callback(Function)

回调函数

api_message: API索引


sendText

客服消息,发送文字消息
详细细节 http://mp.weixin.qq.com/wiki/1/70a29afed17f56d537c833f89be979c9.html#.E5.AE.A2.E6.9C.8D.E6.8E.A5.E5.8F.A3-.E5.8F.91.E6.B6.88.E6.81.AF
Examples:

api.sendText('openid', 'Hello world', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.sendText()
参数 openid(String)

用户的openid

参数 text(String)

发送的消息内容

参数 callback(Function)

回调函数

sendTextFromCs

客服消息,发送文字消息,带客服账号

方法签名

方法 exports.sendTextFromCs()
参数 openid(String)

用户的openid

参数 cs_account(String)

客服账号

参数 text(String)

发送的消息内容

参数 callback(Function)

回调函数

sendImage

客服消息,发送图片消息
详细细节 http://mp.weixin.qq.com/wiki/1/70a29afed17f56d537c833f89be979c9.html#.E5.AE.A2.E6.9C.8D.E6.8E.A5.E5.8F.A3-.E5.8F.91.E6.B6.88.E6.81.AF
Examples:

api.sendImage('openid', 'media_id', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.sendImage()
参数 openid(String)

用户的openid

参数 mediaId(String)

媒体文件的ID,参见uploadMedia方法

参数 callback(Function)

回调函数

sendImageFromCs

客服消息,发送图片消息,带客服账号
详细细节 http://mp.weixin.qq.com/wiki/1/70a29afed17f56d537c833f89be979c9.html#.E5.AE.A2.E6.9C.8D.E6.8E.A5.E5.8F.A3-.E5.8F.91.E6.B6.88.E6.81.AF
Examples:

api.sendImage('openid', 'media_id', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.sendImageFromCs()
参数 openid(String)

用户的openid

参数 cs_account(String)

客服账号

参数 mediaId(String)

媒体文件的ID,参见uploadMedia方法

参数 callback(Function)

回调函数

sendVoice

客服消息,发送语音消息
详细细节 http://mp.weixin.qq.com/wiki/1/70a29afed17f56d537c833f89be979c9.html#.E5.AE.A2.E6.9C.8D.E6.8E.A5.E5.8F.A3-.E5.8F.91.E6.B6.88.E6.81.AF
Examples:

api.sendVoice('openid', 'media_id', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.sendVoice()
参数 openid(String)

用户的openid

参数 mediaId(String)

媒体文件的ID

参数 callback(Function)

回调函数

sendVoiceFromCs

客服消息,发送语音消息,带客服账号
详细细节 http://mp.weixin.qq.com/wiki/1/70a29afed17f56d537c833f89be979c9.html#.E5.AE.A2.E6.9C.8D.E6.8E.A5.E5.8F.A3-.E5.8F.91.E6.B6.88.E6.81.AF
Examples:

api.sendVoice('openid', 'media_id', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.sendVoiceFromCs()
参数 openid(String)

用户的openid

参数 cs_account(String)

客服账号

参数 mediaId(String)

媒体文件的ID

参数 callback(Function)

回调函数

sendVideo

客服消息,发送视频消息
详细细节 http://mp.weixin.qq.com/wiki/1/70a29afed17f56d537c833f89be979c9.html#.E5.AE.A2.E6.9C.8D.E6.8E.A5.E5.8F.A3-.E5.8F.91.E6.B6.88.E6.81.AF
Examples:

api.sendVideo('openid', 'media_id', 'thumb_media_id', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.sendVideo()
参数 openid(String)

用户的openid

参数 mediaId(String)

媒体文件的ID

参数 thumbMediaId(String)

缩略图文件的ID

参数 callback(Function)

回调函数

sendVideoFromCs

客服消息,发送视频消息,带客服账号
详细细节 http://mp.weixin.qq.com/wiki/1/70a29afed17f56d537c833f89be979c9.html#.E5.AE.A2.E6.9C.8D.E6.8E.A5.E5.8F.A3-.E5.8F.91.E6.B6.88.E6.81.AF
Examples:

api.sendVideo('openid', 'media_id', 'thumb_media_id', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.sendVideoFromCs()
参数 openid(String)

用户的openid

参数 cs_account(String)

客服账号

参数 mediaId(String)

媒体文件的ID

参数 thumbMediaId(String)

缩略图文件的ID

参数 callback(Function)

回调函数

sendMusic

客服消息,发送音乐消息
详细细节 http://mp.weixin.qq.com/wiki/1/70a29afed17f56d537c833f89be979c9.html#.E5.AE.A2.E6.9C.8D.E6.8E.A5.E5.8F.A3-.E5.8F.91.E6.B6.88.E6.81.AF
Examples:

var music = {
 title: '音乐标题', // 可选
 description: '描述内容', // 可选
 musicurl: 'http://url.cn/xxx', 音乐文件地址
 hqmusicurl: "HQ_MUSIC_URL",
 thumb_media_id: "THUMB_MEDIA_ID"
};
api.sendMusic('openid', music, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.sendMusic()
参数 openid(String)

用户的openid

参数 music(Object)

音乐文件

参数 callback(Function)

回调函数

sendMusicFromCs

客服消息,发送音乐消息,带客服账号
详细细节 http://mp.weixin.qq.com/wiki/1/70a29afed17f56d537c833f89be979c9.html#.E5.AE.A2.E6.9C.8D.E6.8E.A5.E5.8F.A3-.E5.8F.91.E6.B6.88.E6.81.AF
Examples:

var music = {
 title: '音乐标题', // 可选
 description: '描述内容', // 可选
 musicurl: 'http://url.cn/xxx', 音乐文件地址
 hqmusicurl: "HQ_MUSIC_URL",
 thumb_media_id: "THUMB_MEDIA_ID"
};
api.sendMusic('openid', music, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.sendMusicFromCs()
参数 openid(String)

用户的openid

参数 cs_account(String)

客服账号

参数 music(Object)

音乐文件

参数 callback(Function)

回调函数

sendNews

客服消息,发送图文消息(点击跳转到外链)
详细细节 http://mp.weixin.qq.com/wiki/1/70a29afed17f56d537c833f89be979c9.html#.E5.AE.A2.E6.9C.8D.E6.8E.A5.E5.8F.A3-.E5.8F.91.E6.B6.88.E6.81.AF
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, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.sendNews()
参数 openid(String)

用户的openid

参数 articles(Array)

图文列表

参数 callback(Function)

回调函数

sendNewsFromCs

客服消息,发送图文消息(点击跳转到外链),带客服账号
详细细节 http://mp.weixin.qq.com/wiki/1/70a29afed17f56d537c833f89be979c9.html#.E5.AE.A2.E6.9C.8D.E6.8E.A5.E5.8F.A3-.E5.8F.91.E6.B6.88.E6.81.AF
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, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.sendNewsFromCs()
参数 openid(String)

用户的openid

参数 cs_account(String)

客服账号

参数 articles(Array)

图文列表

参数 callback(Function)

回调函数

sendMpNews

客服消息,发送图文消息(点击跳转到图文消息页面)
详细细节 http://mp.weixin.qq.com/wiki/14/d9be34fe03412c92517da10a5980e7ee.html#.E5.AE.A2.E6.9C.8D.E6.8E.A5.E5.8F.A3-.E5.8F.91.E6.B6.88.E6.81.AF
Examples:

api.sendMpNews('openid', 'mediaId' , callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.sendMpNews()
参数 openid(String)

用户的openid

参数 mediaId(String)

图文消息的id

参数 callback(Function)

回调函数

sendMpNewsFromCs

客服消息,发送图文消息(点击跳转到图文消息页面),带客服账号
详细细节 http://mp.weixin.qq.com/wiki/14/d9be34fe03412c92517da10a5980e7ee.html#.E5.AE.A2.E6.9C.8D.E6.8E.A5.E5.8F.A3-.E5.8F.91.E6.B6.88.E6.81.AF
Examples:

api.sendMpNews('openid', 'mediaId' , callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.sendMpNewsFromCs()
参数 openid(String)

用户的openid

参数 cs_account(String)

客服账号

参数 mediaId(String)

图文消息的id

参数 callback(Function)

回调函数

sendCard

客服消息,发送卡卷消息
详细细节 http://mp.weixin.qq.com/wiki/1/70a29afed17f56d537c833f89be979c9.html#.E5.AE.A2.E6.9C.8D.E6.8E.A5.E5.8F.A3-.E5.8F.91.E6.B6.88.E6.81.AF
Examples:

api.sendCard('openid', 'card', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.sendCard()
参数 openid(String)

用户的openid

参数 wxcard(Object)

卡卷相关信息

参数 callback(Function)

回调函数

sendCardFromCs

客服消息,发送卡卷消息,带客服账号
详细细节 http://mp.weixin.qq.com/wiki/1/70a29afed17f56d537c833f89be979c9.html#.E5.AE.A2.E6.9C.8D.E6.8E.A5.E5.8F.A3-.E5.8F.91.E6.B6.88.E6.81.AF
Examples:

api.sendCard('openid', 'card', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.sendCardFromCs()
参数 openid(String)

用户的openid

参数 cs_account(String)

客服账号

参数 card(Object)

卡卷相关信息

参数 callback(Function)

回调函数

api_payment: API索引


deliverNotify

微信公众号支付: 发货通知
详情请见: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, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"errcode":0, "errmsg":"ok"}

方法签名

方法 exports.deliverNotify()
参数 package(Object)

package对象

参数 callback(Function)

回调函数

orderQuery

微信公众号支付: 订单查询
详情请见: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, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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":""
  }
}

方法签名

方法 exports.orderQuery()
参数 query(Object)

query对象

参数 callback(Function)

回调函数

api_poi: API索引


addPoi

创建门店

Tips:

  • 创建门店接口调用成功后不会实时返回poi_id。
  • 成功创建后,门店信息会经过审核,审核通过后方可使用并获取poi_id。
  • 图片photo_url必须为上传图片接口(api.uploadLogo,参见卡券接口)生成的url。
  • 门店类目categories请参考微信公众号后台的门店管理部分。

Poi:

{
  "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, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"errcode":0,"errmsg":"ok"}

方法签名

方法 make()
名字 addPoi
参数 poi(Object)

门店对象

参数 callback(Function)

回调函数

getPoi

获取门店信息

Examples:

api.getPoi(POI_ID, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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
}

方法签名

方法 make()
名字 getPoi
参数 poiId(Number)

门店ID

参数 callback(Function)

回调函数

getPois

获取门店列表
Examples:

api.getPois(0, 20, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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",
}

方法签名

方法 make()
名字 getPois
参数 begin(Number)

开始位置,0即为从第一条开始查询

参数 limit(Number)

返回数据条数,最大允许50,默认为20

参数 callback(Function)

回调函数

delPoi

删除门店

Tips:

  • 待审核门店不允许删除

Examples:

api.delPoi(POI_ID, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 make()
名字 delPoi
参数 poiId(Number)

门店ID

参数 callback(Function)

回调函数

updatePoi

修改门店服务信息

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, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"errcode":0,"errmsg":"ok"}

方法签名

方法 make()
名字 updatePoi
参数 poi(Object)

门店对象

参数 callback(Function)

回调函数

getWXCategory

门店类目表

Tips:

  • 类目名称接口是为商户提供自己门店类型信息的接口。门店类目定位的越规范,能够精准的吸引更多用户,提高曝光率。

Examples:

api.getWXCategory(callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 make()
名字 getWXCategory
参数 callback(Function)

回调函数

api_qrcode: API索引


createTmpQRCode

创建临时二维码
详细请看:http://mp.weixin.qq.com/wiki/18/28fc21e7ed87bec960651f0ce873ef8a.html
Examples:

api.createTmpQRCode(10000, 1800, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "ticket":"gQG28DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0FuWC1DNmZuVEhvMVp4NDNMRnNRAAIEesLvUQMECAcAAA==",
 "expire_seconds":1800
}

方法签名

方法 exports.createTmpQRCode()
参数 sceneId(Number,String)

场景ID。字符串ID长度限制为1到64

参数 expire(Number)

过期时间,单位秒。最大不超过2592000(即30天)

参数 callback(Function)

回调函数

createLimitQRCode

创建永久二维码
详细请看:http://mp.weixin.qq.com/wiki/18/28fc21e7ed87bec960651f0ce873ef8a.html
Examples:

api.createLimitQRCode(100, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "ticket":"gQG28DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0FuWC1DNmZuVEhvMVp4NDNMRnNRAAIEesLvUQMECAcAAA=="
}

方法签名

方法 exports.createLimitQRCode()
参数 sceneId(Number,String)

场景ID。数字ID不能大于100000,字符串ID长度限制为1到64

参数 callback(Function)

回调函数

showQRCodeURL

生成显示二维码的链接。微信扫描后,可立即进入场景
Examples:

api.showQRCodeURL(ticket);
// => https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET

方法签名

方法 exports.showQRCodeURL()
参数 ticket(String)

二维码Ticket

返回 String

显示二维码的URL地址,通过img标签可以显示出来

api_quota: API索引


clearQuota

用于清零调用频次限制

方法签名

方法 make()
名字 clearQuota
参数 appid(String)

应用id

参数 callback(Function)

回调函数

api_semantic: API索引


semantic

发送语义理解请求
详细请看:http://mp.weixin.qq.com/wiki/0/0ce78b3c9524811fee34aba3e33f3448.html

Opts:

{
  "query":"查一下明天从北京到上海的南航机票",
  "city":"北京",
  "category": "flight,hotel"
}

Examples:

api.semantic(uid, opts, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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)

查询条件

参数 callback(Function)

回调函数

api_shakearound: API索引


registerShakeAccount

申请开通功能
接口说明:
申请开通摇一摇周边功能。成功提交申请请求后,工作人员会在三个工作日内完成审核。若审核不通过,可以重新提交申请请求。
若是审核中,请耐心等待工作人员审核,在审核中状态不能再提交申请请求。
详情请参见: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, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "data" : { },
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 registerShakeAccount
参数 options(Object)

请求参数

参数 callback(Function)

回调函数

checkShakeAccountStatus

查询审核状态
接口说明:
查询已经提交的开通摇一摇周边功能申请的审核状态。在申请提交后,工作人员会在三个工作日内完成审核。
详情请参见:http://mp.weixin.qq.com/wiki/13/025f1d471dc999928340161c631c6635.html
Examples:

api.checkShakeAccountStatus(callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "data" : {
    "apply_time": 1432026025,
    "audit_comment": "test",
    "audit_status": 1,       //审核状态。0:审核未通过、1:审核中、2:审核已通过;审核会在三个工作日内完成
    "audit_time": 0
  },
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 checkShakeAccountStatus
参数 callback(Function)

回调函数

applyBeacons

设备管理: 申请设备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, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "data" : { ... },
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 applyBeacons
参数 options(Object)

请求参数

参数 callback(Function)

回调函数

applyBeaconsStatus

设备管理: 查询设备ID申请审核状态。
接口说明:
查询设备ID申请的审核状态。若单次申请的设备ID数量小于等于500个,系统会进行快速审核;
若单次申请的设备ID数量大于500个,则在三个工作日内完成审核。
详情请参见:http://mp.weixin.qq.com/wiki/10/9926857d34ef8cea6bcd6cffb6cea80a.html

Options:

{
  "apply_id": 12345
}

Examples:

api.applyBeaconsStatus(apply_id, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "data" : { ... },
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 applyBeaconsStatus
参数 options(Object)

请求参数

参数 callback(Function)

回调函数

updateBeacon

设备管理: 编辑设备的备注信息。
接口说明:
可用设备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, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "data" : {
  },
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 updateBeacon
参数 options(Object)

请求参数

参数 callback(Function)

回调函数

bindBeaconLocation

设备管理: 配置设备与门店的关联关系。
接口说明:
修改设备关联的门店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, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "data" : {
  },
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 bindBeaconLocation
参数 options(Object)

请求参数

参数 callback(Function)

回调函数

getBeacons

设备管理: 查询设备列表
接口说明:
查询已有的设备ID、UUID、Major、Minor、激活状态、备注信息、关联门店、关联页面等信息。
可指定设备ID或完整的UUID、Major、Minor查询,也可批量拉取设备信息列表。
详情请参见:http://mp.weixin.qq.com/wiki/15/b9e012f917e3484b7ed02771156411f3.html
Options:

  1. 查询指定设备时:
{
 "device_identifier": [
   {
     "device_id":10011,
     "uuid":"FDA50693-A4E2-4FB1-AFCF-C6EB07647825",
     "major":1002,
     "minor":1223
   }
 ]
}
  1. 需要分页查询或者指定范围内的设备时:
{
  "begin": 0,
  "count": 3
}
  1. 当需要根据批次ID查询时:
{
  "apply_id": 1231,
  "begin": 0,
  "count": 3
}

Examples:

api.getBeacons(options, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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."
}

方法签名

方法 make()
名字 getBeacons
参数 options(Object)

请求参数

参数 callback(Function)

回调函数

createPage

页面管理: 新增页面
接口说明:
新增摇一摇出来的页面信息,包括在摇一摇页面出现的主标题、副标题、图片和点击进去的超链接。
其中,图片必须为用素材管理接口(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, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "data" : {
    "page_id": 28840
  },
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 createPage
参数 page(Object)

请求参数

参数 callback(Function)

回调函数

updatePage

页面管理: 编辑页面信息
接口说明:
编辑摇一摇出来的页面信息,包括在摇一摇页面出现的主标题、副标题、图片和点击进去的超链接。
详情请参见: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, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "data" : {
    "page_id": 28840
  },
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 updatePage
参数 page(Object)

请求参数

参数 callback(Function)

回调函数

deletePage

页面管理: 删除页面
接口说明:
删除已有的页面,包括在摇一摇页面出现的主标题、副标题、图片和点击进去的超链接。
只有页面与设备没有关联关系时,才可被删除。
详情请参见:http://mp.weixin.qq.com/wiki/5/6626199ea8757c752046d8e46cf13251.html
page_id:

{
  "page_id": 34567
}

Examples:

api.deletePage(page_id, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "data" : {
  },
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 deletePage
参数 page_id(Object)

指定页面的id

参数 callback(Function)

回调函数

getPages

页面管理: 查询页面列表
接口说明:
查询已有的页面,包括在摇一摇页面出现的主标题、副标题、图片和点击进去的超链接。提供两种查询方式,可指定页面ID查询,也可批量拉取页面列表。
详情请参见:http://mp.weixin.qq.com/wiki/5/6626199ea8757c752046d8e46cf13251.html
Options:

  1. 需要查询指定页面时:
{
  "page_ids":[12345, 23456, 34567]
}
  1. 需要分页查询或者指定范围内的页面时:
{
  "begin": 0,
  "count": 3
}

Examples:

api.getBeacons(options, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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."
}

方法签名

方法 make()
名字 getPages
参数 options(Object)

请求参数

参数 callback(Function)

回调函数

uploadPageIcon

上传图片素材
接口说明:
上传在摇一摇页面展示的图片素材,素材保存在微信侧服务器上。
格式限定为:jpg,jpeg,png,gif,图片大小建议120px*120 px,限制不超过200 px *200 px,图片需为正方形。
详情请参见:http://mp.weixin.qq.com/wiki/5/e997428269ff189d8f9a4b9e177be2d9.html
Examples:

api.uploadPageIcon('filepath', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "data" : {
    "pic_url": "http://shp.qpic.cn/wechat_shakearound_pic/0/1428377032e9dd2797018cad79186e03e8c5aec8dc/120"
  },
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 uploadPageIcon
参数 filepath(String)

文件路径

参数 callback(Function)

回调函数

bindBeaconWithPages

配置设备与页面的关联关系
接口说明:
配置设备与页面的关联关系。支持建立或解除关联关系,也支持新增页面或覆盖页面等操作。
配置完成后,在此设备的信号范围内,即可摇出关联的页面信息。若设备配置多个页面,则随机出现页面信息。
详情请参见: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, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "data" : {
  },
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 bindBeaconWithPages
参数 options(Object)

请求参数

参数 callback(Function)

回调函数

searchBeaconPageRelation

查询设备与页面的关联关系
接口说明:
查询设备与页面的关联关系。提供两种查询方式,可指定页面ID分页查询该页面所关联的所有的设备信息;
也可根据设备ID或完整的UUID、Major、Minor查询该设备所关联的所有页面信息。
详情请参见:http://mp.weixin.qq.com/wiki/6/c449687e71510db19564f2d2d526b6ea.html
Options:

  1. 当查询指定设备所关联的页面时:
{
 "type": 1,
 "device_identifier": {
   // 设备编号,若填了UUID、major、minor,则可不填设备编号,若二者都填,则以设备编号为优先
   "device_id":10011,
   "uuid":"FDA50693-A4E2-4FB1-AFCF-C6EB07647825",
   "major":1002,
   "minor":1223
 }
}
  1. 当查询页面所关联的设备时:
    {
    "type": 2,
    "page_id": 11101,
    "begin": 0,
    "count": 3
    }
    Examples:
api.searchBeaconPageRelation(options, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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."
}

方法签名

方法 make()
名字 searchBeaconPageRelation
参数 options(Object)

请求参数

参数 callback(Function)

回调函数

getShakeInfo

获取摇周边的设备及用户信息
接口说明:
获取设备信息,包括UUID、major、minor,以及距离、openID等信息。
详情请参见:http://mp.weixin.qq.com/wiki/3/34904a5db3d0ec7bb5306335b8da1faf.html
Ticket:

{
  "ticket":”6ab3d8465166598a5f4e8c1b44f44645”
}

Examples:

api.getShakeInfo(ticket, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "data" : {
  },
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 getShakeInfo
参数 ticket(Object)

摇周边业务的ticket,可在摇到的URL中得到,ticket生效时间为30分钟

参数 callback(Function)

回调函数

getDeviceStatistics

数据统计: 以设备为维度的数据统计接口
接口说明:
查询单个设备进行摇周边操作的人数、次数,点击摇周边消息的人数、次数;查询的最长时间跨度为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, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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."
}

方法签名

方法 make()
名字 getDeviceStatistics
参数 options(Object)

请求参数

参数 callback(Function)

回调函数

getDeviceStatisticsList

数据统计: 批量查询设备统计数据接口
接口说明:
查询指定时间商家帐号下的每个设备进行摇周边操作的人数、次数,点击摇周边消息的人数、次数。
只能查询最近90天内的数据,且一次只能查询一天。
此接口无法获取当天的数据,最早只能获取前一天的数据。由于系统在凌晨处理前一天的数据,
太早调用此接口可能获取不到数据,建议在早上8:00之后调用此接口。
注意:对于摇周边人数、摇周边次数、点击摇周边消息的人数、点击摇周边消息的次数都为0的设备,不在结果列表中返回。
详情请参见:http://mp.weixin.qq.com/wiki/1/e0b035c89b0a9c95a8210204087fec69.html
Options:

{
  date: 1438704000,
  page_index: 1
}

Examples:

api.getDeviceStatisticsList(options, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
"data": {
  "devices": [
    {
      "device_id": 10097,
      "major": 10001,
      "minor": 12102,
      "uuid": "FDA50693-A4E2-4FB1-AFCF-C6EB07647825"
      "shake_pv": 1
      "shake_uv": 2
      "click_pv": 3
      "click_uv":4
    },
    {
      "device_id": 10097,
      "major": 10001,
      "minor": 12102,
      "uuid": "FDA50693-A4E2-4FB1-AFCF-C6EB07647825"
      "shake_pv":1
      "shake_uv":2
      "click_pv":3
      "click_uv":4
    }
   ],
  },
  "date":1435075200
  "total_count": 151
  "page_index":1
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 getDeviceStatisticsList
参数 options(Object)

请求参数

参数 callback(Function)

回调函数

getPageStatistics

数据统计: 以页面为维度的数据统计接口
接口说明:
查询单个页面通过摇周边摇出来的人数、次数,点击摇周边页面的人数、次数;查询的最长时间跨度为30天。
详情请参见:http://mp.weixin.qq.com/wiki/0/8a24bcacad40fe7ee98d1573cb8a6764.html
Options:

{
  "page_id": 12345,
  "begin_date": 12313123311,
  "end_date": 123123131231
}

Examples:

api.getPageStatistics(options, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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."
}

方法签名

方法 make()
名字 getPageStatistics
参数 options(Object)

请求参数

参数 callback(Function)

回调函数

getPageStatisticsList

数据统计: 批量查询页面统计数据接口
接口说明:
查询指定时间商家帐号下的每个页面进行摇周边操作的人数、次数,点击摇周边消息的人数、次数。
只能查询最近90天内的数据,且一次只能查询一天。
此接口无法获取当天的数据,最早只能获取前一天的数据。由于系统在凌晨处理前一天的数据,
太早调用此接口可能获取不到数据,建议在早上8:00之后调用此接口。
注意:对于摇周边人数、摇周边次数、点击摇周边消息的人数、点击摇周边消息的次数都为0的设备,不在结果列表中返回。
详情请参见:http://mp.weixin.qq.com/wiki/1/e0b035c89b0a9c95a8210204087fec69.html
Options:

{
  date: 1425139200,
  page_index: 1
}

Examples:

api.getPageStatisticsList(options, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
"data": {
  "pages": [
    {
      "page_id": 1,
      "shake_pv": 1,
      "shake_uv": 2,
      "click_pv": 3,
      "click_uv":4
    },
    {
      "page_id": 2,
      "shake_pv":1,
      "shake_uv":2,
      "click_pv":3,
      "click_uv":4
    }
   ],
  },
  "date":1435075200
  "total_count": 151
  "page_index":1
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 getPageStatisticsList
参数 options(Object)

请求参数

参数 callback(Function)

回调函数

listBeaconGroup

查询分组列表
接口说明:
查询账号下所有的分组。
options:
{
begin: 0,
count: 10
}
Examples:

api.listBeaconGroup(options, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "data" : {
    "total_count": 100,
    "groups":[
      {
         "group_id" : 123,
         "group_name" : "test1"
      },
      {
         "group_id" : 124,
         "group_name" : "test2"
      }
    ]
  },
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 listBeaconGroup
参数 options(String)

请求参数

参数 callback(Function)

回调函数

queryGroupBeacons

查询分组详情
接口说明:
查询分组详情,包括分组名,分组id,分组里的设备列表
options:
{
group_id: 123,
begin: 0,
count: 10
}
Examples:

api.queryGroupBeacons(options, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "data" : {
    "group_id" : 123,
    "group_name" : "test",
    "total_count": 100,
    "devices":[
      {
         "device_id" : 123456,
         "uuid" : "FDA50693-A4E2-4FB1-AFCF-C6EB07647825",
         "major" : 10001,
         "minor" : 10001,
         "comment" : "test device1",
         "poi_id" : 12345,
      },
      {
         "device_id" : 123457,
         "uuid" : "FDA50693-A4E2-4FB1-AFCF-C6EB07647825",
         "major" : 10001,
         "minor" : 10002,
         "comment" : "test device2",
         "poi_id" : 12345,
      }
    ]
  },
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 queryGroupBeacons
参数 options(String)

请求参数

参数 callback(Function)

回调函数

addBeaconGroup

新增分组
接口说明:
新建设备分组,每个帐号下最多只有100个分组。
group:
{
group_name: 'test'
}
Examples:

api.addBeaconGroup(group, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "data" : {
    "group_id": 123,
    "group_name": 'test'
  },
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 addBeaconGroup
参数 group(Object)

分组信息

参数 callback(Function)

回调函数

updateBeaconGroup

编辑分组信息
接口说明:
编辑设备分组信息,目前只能修改分组名。
group:
{
group_id: 123,
group_name: 'test update'
}
Examples:

api.updateBeaconGroup(group, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "data" : {
    "group_id": 123,
    "group_name": 'test update'
  },
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 updateBeaconGroup
参数 group(Object)

分组信息

参数 callback(Function)

回调函数

deleteBeaconGroup

删除分组信息
接口说明:
删除设备分组,若分组中还存在设备,则不能删除成功。需把设备移除以后,才能删除。
group:
{
group_id: 123
}
Examples:

api.deleteBeaconGroup(group_id, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "data" : {
  },
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 deleteBeaconGroup
参数 group(Object)

分组信息

参数 callback(Function)

回调函数

addGroupBeacons

添加设备到分组
接口说明:
添加设备到分组,每个分组能够持有的设备上限为10000,并且每次添加操作的添加上限为1000。只有在摇周边申请的设备才能添加到分组。
Options:

{
 "group_id": 123,
 "device_identifier": [
   {
     // 设备编号,若填了UUID、major、minor,则可不填设备编号,若二者都填,则以设备编号为优先
     "device_id": 10011,
     "uuid": "FDA50693-A4E2-4FB1-AFCF-C6EB07647825",
     "major": 1002,
     "minor": 1223
   }
 ]
}

Examples:

api.addGroupBeacons(options, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "data" : {
  },
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 addGroupBeacons
参数 options(Object)

请求参数

参数 callback(Function)

回调函数

deleteGroupBeacons

从分组中移除设备
接口说明:
从分组中移除设备,每次删除操作的上限为1000。
Options:

{
 "group_id": 123,
 "device_identifier": [
   {
     // 设备编号,若填了UUID、major、minor,则可不填设备编号,若二者都填,则以设备编号为优先
     "device_id": 10011,
     "uuid": "FDA50693-A4E2-4FB1-AFCF-C6EB07647825",
     "major": 1002,
     "minor": 1223
   }
 ]
}

Examples:

api.deleteGroupBeacons(options, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "data" : {
  },
  "errcode": 0,
  "errmsg": "success."
}

方法签名

方法 make()
名字 deleteGroupBeacons
参数 options(Object)

请求参数

参数 callback(Function)

回调函数

addLotteryInfo

创建红包活动
接口说明:
创建红包活动,设置红包活动有效期,红包活动开关等基本信息,返回活动id。
详情请参见:http://mp.weixin.qq.com/wiki/12/9738788d171724b080b52f6e41490cb4.html
Options:

{
  "use_template": 1,
  "logo_url": "https://lodejs.org/images/qr.jpg"
}

Body:

{
  "title": "抽奖活动名称",
  "desc": "抽奖活动描述",
  "onoff": 1,
  "begin_time": 1428854400,
  "expire_time": 1428940800,
  "sponsor_appid": "wx476f028272e53c62",
  "total": 10,
  "jump_url": "https://lodejs.org",
  "key": "u5pPq38tQP97yGn8iZxbBsfWvbn37poP"
}

Examples:

api.addLotteryInfo(options, body, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "errcode": 0,
  "errmsg": "",
  "lottery_id": "5794560",
  "page_id": 1,
}

方法签名

方法 make()
名字 addLotteryInfo
参数 options(Object)

请求参数

参数 body(Object)

JSON格式的结构体

参数 callback(Function)

回调函数

setPrizeBucket

录入红包信息
接口说明:
在调用"创建红包活动"接口之后,调用此接口录入红包信息。
详情请参见:http://mp.weixin.qq.com/wiki/12/9738788d171724b080b52f6e41490cb4.html
Options:

{
  "lottery_id": "5794560",
  "mchid": "1234567890",
  "sponsor_appid": "wx476f028272e53c62"
  "prize_info_list": [{
    "ticket": "v1|ZiPs2l0hpMBp3uwGI1rwp45vOdz/V/zQ/00jP9MeWT+e47/q1FJjwCIP34frSjzOxAEzJ7k2CtAg1pmcShvkChBWqbThxPm6MBuzceoHtj79iHuHaEn0WAO+j4sXnXnbGswFOlDYWg1ngvrRYnCY3g==",
  }]
}

Examples:

api.setPrizeBucket(options, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "errcode": 0,
  "errmsg": "",
  "success_num": 1,
  "repeat_ticket_list": [{
    "ticket": "v1|ZiPs2l0hpMBp3uwGI1rwp45vOdz/V/zQ/00jP9MeWT+e47/q1FJjwCIP34frSjzOxAEzJ7k2CtAg1pmcShvkChBWqbThxPm6MBuzceoHtj79iHuHaEn0WAO+j4sXnXnbGswFOlDYWg1ngvrRYnCY3g==",
  }]
}

方法签名

方法 make()
名字 setPrizeBucket
参数 options(Object)

请求参数

参数 callback(Function)

回调函数

setLotterySwitch

设置红包活动抽奖开关
接口说明:
开发者实时控制红包活动抽奖的开启和关闭。
详情请参见:http://mp.weixin.qq.com/wiki/12/9738788d171724b080b52f6e41490cb4.html
Examples:

api.setLotterySwitch(lotteryId, onoff, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "errcode": 0,
  "errmsg": ""
}

方法签名

方法 make()
名字 setLotterySwitch
参数 lotteryId(String)

红包抽奖id

参数 onoff(Number)

活动抽奖开关,0:关闭,1:开启

参数 callback(Function)

回调函数

getShakehbConfig

获取红包JSAPI参数
接口说明:
用于在第三方页面中,通过调用JSAPI来触发用户抽红包的操作。
详情请参见:http://mp.weixin.qq.com/wiki/12/9738788d171724b080b52f6e41490cb4.html
Examples:

api.getShakehbConfig(openid, lotteryId, key);

Return:

{
  "openid": "o-hVKuNknQQBZFDlbE8eibQzIX3o",
  "lottery_id": "5794560"
  "noncestr": "5K8264ILTKCH16CQ2502SI8ZNMTM67VS"
  "sign": "D6F2078841D003C09BF5263EDA3CD5F9"
}

方法签名

方法 exports.getShakehbConfig()
名字 getShakehbConfig
参数 openid(String)

用户openid

参数 lotteryId(String)

红包抽奖id

参数 key(String)

“创建红包活动”接口设置的key

api_shop_common: API索引


uploadPicture

上传图片
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.uploadPicture('/path/to/your/img.jpg', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success"
 "image_url": "http://mmbiz.qpic.cn/mmbiz/4whpV1VZl2ibl4JWwwnW3icSJGqecVtRiaPxwWEIr99eYYL6AAAp1YBo12CpQTXFH6InyQWXITLvU4CU7kic4PcoXA/0"
}

方法签名

方法 exports.uploadPicture()
参数 filepath(String)

文件路径

参数 callback(Function)

回调函数

api_shop_express: API索引


addExpressTemplate

增加邮费模板
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.addExpress(express, callback);

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": "广州市"
         }
       ]
     }
   ]
 }
}

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success"
 "template_id": 123456
}

方法签名

方法 exports.addExpressTemplate()
参数 express(Object)

邮费模版

参数 callback(Function)

回调函数

deleteExpressTemplate

修改邮费模板
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.deleteExpressTemplate(templateId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success"
}

方法签名

方法 exports.deleteExpressTemplate()
参数 templateId(Number)

邮费模版ID

参数 callback(Function)

回调函数

updateExpressTemplate

修改邮费模板
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.updateExpressTemplate(template, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Express:

{
 "template_id": 123456,
 "delivery_template": ...
}

Result:

{
 "errcode": 0,
 "errmsg": "success"
}

方法签名

方法 exports.updateExpressTemplate()
参数 template(Object)

邮费模版

参数 callback(Function)

回调函数

getExpressTemplateById

获取指定ID的邮费模板
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.getExpressTemplateById(templateId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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

参数 callback(Function)

回调函数

getAllExpressTemplates

获取所有邮费模板的未封装版本
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.getAllExpressTemplates(callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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()
参数 callback(Function)

回调函数

api_shop_goods: API索引


createGoods

增加商品
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.createGoods(goods, callback);

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}
   ]
 }
}

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success",
 "product_id": "pDF3iYwktviE3BzU3BKiSWWi9Nkw"
}

方法签名

方法 exports.createGoods()
参数 goods(Object)

商品信息

参数 callback(Function)

回调函数

deleteGoods

删除商品
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.deleteGoods(productId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success",
}

方法签名

方法 exports.deleteGoods()
参数 productId(String)

商品Id

参数 callback(Function)

回调函数

updateGoods

修改商品
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.updateGoods(goods, callback);

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}
   ]
 }
}

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success"
}

方法签名

方法 exports.updateGoods()
参数 goods(Object)

商品信息

参数 callback(Function)

回调函数

getGoods

查询商品
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.getGoods(productId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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

参数 callback(Function)

回调函数

getGoodsByStatus

获取指定状态的所有商品
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.deleteGoods(productId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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-下架)

参数 callback(Function)

回调函数

updateGoodsStatus

商品上下架
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.updateGoodsStatus(productId, status, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success"
}

方法签名

方法 exports.updateGoodsStatus()
参数 productId(String)

商品Id

参数 status(Number)

状态码。(0-全部, 1-上架, 2-下架)

参数 callback(Function)

回调函数

getSubCats

获取指定分类的所有子分类
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.getSubCats(catId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success"
 "cate_list": [!
   {"id": "537074292","name": "数码相机"},
   {"id": "537074293","name": "家⽤用摄像机"},
   {"id": "537074298",! "name": "单反相机"}
 ]
}

方法签名

方法 exports.getSubCats()
参数 catId(Number)

大分类ID

参数 callback(Function)

回调函数

getSKUs

获取指定子分类的所有SKU
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.getSKUs(catId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success"
 "sku_table": [
   {
     "id": "1075741873",
     "name": "颜⾊色",
     "value_list": [
       {"id": "1079742375", "name": "撞⾊色"},
       {"id": "1079742376","name": "桔⾊色"}
     ]
   }
 ]
}

方法签名

方法 exports.getSKUs()
参数 catId(Number)

大分类ID

参数 callback(Function)

回调函数

getProperties

获取指定分类的所有属性
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.getProperties(catId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success"
 "properties": [
   {
     "id": "1075741879",
     "name": "品牌",
     "property_value": [
       {"id": "200050867","name": "VIC&#38"},
       {"id": "200050868","name": "Kate&#38"},
       {"id": "200050971","name": "M&#38"},
       {"id": "200050972","name": "Black&#38"}
     ]
   },
   {
     "id": "123456789",
     "name": "颜⾊色",
     "property_value": ...
   }
 ]
}

方法签名

方法 exports.getProperties()
参数 catId(Number)

分类ID

参数 callback(Function)

回调函数

api_shop_group: API索引


createGoodsGroup

创建商品分组
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.createGoodsGroup(groupName, productList, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success",
 "group_id": 19
}

方法签名

方法 exports.createGoodsGroup()
参数 groupName(String)

分组名

参数 productList(Array)

该组商品列表

参数 callback(Function)

回调函数

deleteGoodsGroup

删除商品分组
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.deleteGoodsGroup(groupId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success"
}

方法签名

方法 exports.deleteGoodsGroup()
参数 groupId(String)

分组ID

参数 callback(Function)

回调函数

updateGoodsGroup

修改商品分组属性
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.updateGoodsGroup(groupId, groupName, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success"
}

方法签名

方法 exports.updateGoodsGroup()
参数 groupId(String)

分组ID

参数 groupName(String)

分组名

参数 callback(Function)

回调函数

updateGoodsForGroup

修改商品分组内的商品
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.updateGoodsForGroup(groupId, addProductList, delProductList, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success"
}

方法签名

方法 exports.updateGoodsForGroup()
参数 groupId(Object)

分组ID

参数 addProductList(Array)

待添加的商品数组

参数 delProductList(Array)

待删除的商品数组

参数 callback(Function)

回调函数

getAllGroups

获取所有商品分组
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.getAllGroups(callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success"
 "groups_detail": [
   {
     "group_id": 200077549,
     "group_name": "新品上架"
   },{
     "group_id": 200079772,
     "group_name": "全球热卖"
   }
 ]
}

方法签名

方法 exports.getAllGroups()
参数 callback(Function)

回调函数

getGroupById

根据ID获取商品分组
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.getGroupById(groupId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success"
 "group_detail": {
   "group_id": 200077549,
   "group_name": "新品上架",
   "product_list": [
     "pDF3iYzZoY-Budrzt8O6IxrwIJAA",
     "pDF3iY3pnWSGJcO2MpS2Nxy3HWx8",
     "pDF3iY33jNt0Dj3M3UqiGlUxGrio"
   ]
 }
}

方法签名

方法 exports.getGroupById()
参数 groupId(String)

分组ID

参数 callback(Function)

回调函数

api_shop_order: API索引


getOrderById

根据订单Id获取订单详情
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.getOrderById(orderId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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

参数 callback(Function)

回调函数

getOrdersByStatus

根据订单状态/创建时间获取订单详情
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.getOrdersByStatus([status,] [beginTime,] [endTime,] callback);

Usage:
当只传入callback参数时,查询所有状态,所有时间的订单
当传入两个参数,第一个参数为Number类型,第二个参数为callback时,查询指定状态,所有时间的订单
当传入两个参数,第一个参数为Date类型,第二个参数为callback时,查询所有状态,指定订单创建起始时间的订单(待测试)
当传入三个参数,第一参数为订单状态码,第二参数为订单创建起始时间,第三参数为callback
当传入四个参数,第一参数为订单状态码,第二参数为订单创建起始时间,第三参数为订单创建终止时间,第四参数为callback
Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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)

订单创建时间终止时间。(无此参数则不按照时间做筛选)

参数 callback(Function)

回调函数

setExpressForOrder

设置订单发货信息
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.setExpressForOrder(orderId, deliveryCompany, deliveryTrackNo, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success"
}

方法签名

方法 exports.setExpressForOrder()
参数 orderId(String)

订单Id

参数 deliveryCompany(String)

物流公司 (物流公司Id请参考微信小店API手册)

参数 deliveryTrackNo(String)

运单Id

参数 callback(Function)

回调函数

closeOrder

关闭订单
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.closeOrder(orderId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success"
}

方法签名

方法 exports.closeOrder()
参数 orderId(String)

订单Id

参数 callback(Function)

回调函数

api_shop_shelf: API索引


createShelf

增加货架
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.createShelf(shelf, callback);

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": "测试货架"
}

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "errcode": 0,
  "errmsg": "success",
  "shelf_id": 12
}

方法签名

方法 exports.createShelf()
参数 shelf(Object)

货架信息

参数 callback(Function)

回调函数

deleteShelf

删除货架
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.deleteShelf(shelfId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "errcode": 0,
  "errmsg": "success"
}

方法签名

方法 exports.deleteShelf()
参数 shelfId(String)

货架Id

参数 callback(Function)

回调函数

updateShelf

修改货架
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.updateShelf(shelf, callback);

Shelf:

{
  "shelf_id": 12345,
  "shelf_data": ...,
  "shelf_banner": "http://mmbiz.qpic.cn/mmbiz/ 4whpV1VZl2ibrWQn8zWFUh1YznsMV0XEiavFfLzDWYyvQOBBszXlMaiabGWzz5B2K hNn2IDemHa3iarmCyribYlZYyw/0",
  "shelf_name": "货架名称"
}

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "errcode": 0,
  "errmsg": "success"
}

方法签名

方法 exports.updateShelf()
参数 shelf(Object)

货架信息

参数 callback(Function)

回调函数

getAllShelves

获取所有货架
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.getAllShelf(callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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()
参数 callback(Function)

回调函数

getShelfById

根据货架ID获取货架信息
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.getShelfById(shelfId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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

参数 callback(Function)

回调函数

api_shop_stock: API索引


updateStock

增加库存
详细请看:http://mp.weixin.qq.com/wiki/8/703923b7349a607f13fb3100163837f0.html
Examples:

api.updateStock(10, productId, sku, callback); // 增加10件库存
api.updateStock(-10, productId, sku, callback); // 减少10件库存

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode": 0,
 "errmsg": "success"
}

方法签名

方法 exports.updateStock()
参数 number(Number)

增加或者删除的数量

参数 productId(String)

商品ID

参数 sku(String)

SKU信息

参数 callback(Function)

回调函数

api_tag: API索引


createTag

创建标签
详情请见:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140837&token=&lang=zh_CN
Examples:

api.createTag(callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "tag": [
   "id": 134, // 标签id
   "name": "广东"
 ]
}

方法签名

方法 exports.createTag()
参数 name(String)

tag name

参数 callback(Function)

回调函数

getTags

获取公众号已创建的标签
详情请见:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140837&token=&lang=zh_CN
Examples:

api.getTags(callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "tags":[{
   'id':1,
   'name': '黑名单',
   'count': 0  // 此标签下粉丝数
 },{
   'id':2,
   'name': '星标组',
   'count':0
 }]
}

方法签名

方法 exports.getTags()
参数 openid(String)

Open ID

参数 callback(Function)

回调函数

editTag

编辑标签
详情请见:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140837&token=&lang=zh_CN
Examples:

api.editTag(id, name, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"errcode": 0, "errmsg": "ok"}}

方法签名

方法 exports.editTag()
参数 id(Number)

标签ID

参数 name(String)

标签新名字

参数 callback(Function)

回调函数

deleteTag

删除标签
详情请见:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140837&token=&lang=zh_CN
Examples:

api.deleteTag(id, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"errcode": 0, "errmsg": "ok"}

方法签名

方法 exports.deleteTag()
参数 id(Number)

标签ID

参数 callback(Function)

回调函数

getTagUsers

获取标签下粉丝列表
详情请见:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140837&token=&lang=zh_CN
Examples:

api.getTagUsers(tagid, openid, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
  "count": 2,
  "data":{
    "openid":[
      ...
    ]
  },
  "next_openid": "..."
}

方法签名

方法 exports.getTagUsers()
参数 tagId(Number)

标签ID

参数 openid(String)

分页起始openid

参数 callback(Function)

回调函数

membersBatchtagging

批量为用户打标签
详情请见:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140837&token=&lang=zh_CN
Examples:

api.memberBatchtagging(tagId, openList, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"errcode": 0, "errmsg": "ok"}

方法签名

方法 exports.membersBatchtagging()
参数 tagId(Number)

标签ID

参数 openList(Array)

用户openids

参数 callback(Function)

回调函数

membersBatchuntagging

批量为用户取消标签
详情请见:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140837&token=&lang=zh_CN
Examples:

api.memberBatchuntagging(tagId, openList, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"errcode": 0, "errmsg": "ok"}

方法签名

方法 exports.membersBatchuntagging()
参数 tagId(Number)

标签ID

参数 openList(Array)

用户openids

参数 callback(Function)

回调函数

getUserTags

获取用户身上的标签列表
详情请见:http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140837&token=&lang=zh_CN
Examples:

api.getUserTags(openid, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{"tagid_list": [134, 2]}

方法签名

方法 exports.getUserTags()
参数 用户openid(openid)
参数 callback(Function)

回调函数

api_template: API索引


setIndustry

设置所属行业
Examples:

var industryIds = {
 "industry_id1":'1',
 "industry_id2":"4"
};
api.setIndustry(industryIds, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.setIndustry()
参数 industryIds(Object)

公众号模板消息所属行业编号

getIndustry

获取设置的行业信息
Examples:

api.getIndustry(callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

// 结果示例
{
  "primary_industry":{"first_class":"运输与仓储","second_class":"快递"},
  "secondary_industry":{"first_class":"IT科技","second_class":"互联网|电子商务"}
}

方法签名

方法 exports.getIndustry()
参数 callback(Function)

回调函数

addTemplate

获得模板ID
Examples:

var templateIdShort = 'TM00015';
api.addTemplate(templateIdShort, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.addTemplate()
参数 templateIdShort(String)

模板库中模板的编号,有“TM**”和“OPENTMTM**”等形式

getAllPrivateTemplate

获取模板列表
Examples:

api.getAllPrivateTemplate(callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

// 结果示例
{
 "template_list": [{
      "template_id": "iPk5sOIt5X_flOVKn5GrTFpncEYTojx6ddbt8WYoV5s",
      "title": "领取奖金提醒",
      "primary_industry": "IT科技",
      "deputy_industry": "互联网|电子商务",
      "content": "{ {result.DATA} }\n\n领奖金额:{ {withdrawMoney.DATA} }\n领奖  时间:{ {withdrawTime.DATA} }\n银行信息:{ {cardInfo.DATA} }\n到账时间:  { {arrivedTime.DATA} }\n{ {remark.DATA} }",
      "example": "您已提交领奖申请\n\n领奖金额:xxxx元\n领奖时间:2013-10-10 12:22:22\n银行信息:xx银行(尾号xxxx)\n到账时间:预计xxxxxxx\n\n预计将于xxxx到达您的银行卡"
   }]
}

方法签名

方法 exports.getAllPrivateTemplate()
参数 callback(Function)

回调函数

delPrivateTemplate

删除模板
Examples:

var templateId = ”Dyvp3-Ff0cnail_CDSzk1fIc6-9lOkxsQE7exTJbwUE”
api.delPrivateTemplate(templateId, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.delPrivateTemplate()
参数 templateId(String)

公众帐号下模板消息ID

sendTemplate

发送模板消息
详细细节: http://mp.weixin.qq.com/wiki/17/304c1885ea66dbedf7dc170d84999a9d.html
Examples:

var templateId: '模板id';
// URL置空,则在发送后,点击模板消息会进入一个空白页面(ios), 或无法点击(android)
var url: 'http://weixin.qq.com/download';
var data = {
   "first": {
     "value":"恭喜你购买成功!",
     "color":"#173177"
   },
   "keyword1":{
     "value":"巧克力",
     "color":"#173177"
   },
   "keyword2": {
     "value":"39.8元",
     "color":"#173177"
   },
   "keyword3": {
     "value":"2014年9月22日",
     "color":"#173177"
   },
   "remark":{
     "value":"欢迎再次购买!",
     "color":"#173177"
   }
};
api.sendTemplate('openid', templateId, url, data, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.sendTemplate()
参数 openid(String)

用户的openid

参数 templateId(String)

模板ID

参数 url(String)

URL置空,则在发送后,点击模板消息会进入一个空白页面(ios),或无法点击(android)

参数 data(Object)

渲染模板的数据

参数 callback(Function)

回调函数

apiUrl

duplicated interface function (openid, templateId, url, topColor, data, callback)

方法签名

声明 apiUrl

api_url: API索引


shorturl

短网址服务
详细细节 http://mp.weixin.qq.com/wiki/10/165c9b15eddcfbd8699ac12b0bd89ae6.html
Examples:

api.shorturl('http://mp.weixin.com', callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

方法签名

方法 exports.shorturl()
参数 longUrl(String)

需要转换的长链接,支持http://、https://、weixin://wxpay格式的url

参数 callback(Function)

回调函数

api_user: API索引


getUser

获取用户基本信息。可以设置lang,其中zh_CN 简体,zh_TW 繁体,en 英语。默认为en
详情请见:http://mp.weixin.qq.com/wiki/14/bb5031008f1494a59c6f71fa0f319c66.html
Examples:

api.getUser(openid, callback);
api.getUser({openid: 'openid', lang: 'en'}, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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两个属性。

参数 callback(Function)

回调函数

batchGetUsers

批量获取用户基本信息
Example:

api.batchGetUsers(['openid1', 'openid2'], callback)

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

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数组。

参数 callback(Function)

回调函数

getFollowers

获取关注者列表
详细细节 http://mp.weixin.qq.com/wiki/0/d0e07720fc711c02a3eab6ec33054804.html
Examples:

api.getFollowers(callback);
// or
api.getFollowers(nextOpenid, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "total":2,
 "count":2,
 "data":{
   "openid":["","OPENID1","OPENID2"]
 },
 "next_openid":"NEXT_OPENID"
}

方法签名

方法 exports.getFollowers()
参数 nextOpenid(String)

调用一次之后,传递回来的nextOpenid。第一次获取时可不填

参数 callback(Function)

回调函数

updateRemark

设置用户备注名
详细细节 http://mp.weixin.qq.com/wiki/1/4a566d20d67def0b3c1afc55121d2419.html
Examples:

api.updateRemark(openid, remark, callback);

Callback:

  • err, 调用失败时得到的异常
  • result, 调用正常时得到的对象

Result:

{
 "errcode":0,
 "errmsg":"ok"
}

方法签名

方法 exports.updateRemark()
参数 openid(String)

用户的openid

参数 remark(String)

新的备注名,长度必须小于30字符

参数 callback(Function)

回调函数

util: API索引