node-wx-third

1.1.4 • Public • Published

node-wx-third

node 微信第三方平台对接,可实现小程序一键发布

微信文档参考地址

https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/getting_started/how_to_read.html

Install 安装

use npm isntall

使用 npm 安装

npm install node-wx-third

Sample example 使用说明

init Client 初始化客户端

/**
 * 初始化工具客户端
 * @author xutao
 * @param    {[String]}                 appId [开发者第三方平台APPID]
 * @param    {[String]}                 appsecret [第三方平台appsecret]
 * @param    {[String]}                 encodingAESKey [开发者在第一步填写服务器配置的encodingAESKey]
 * @param    {[String]}                 token [开发者在第一步填写服务器配置的token]
*/
const wechatEncrypt = require('../index').initClient({
    appId: appId,  // 第三方平台appid
    appsecret: appsecret,// 第三方平台appsecret
    encodingAESKey: encodingAESKey,  // 开发者在第一步填写服务器配置的encodingAESKey
    token: token  // 开发者在第一步填写服务器配置的token
})

验证消息的有效性

/**
 * 
 * @param {String} encrypt [报文主体中 Encrypt 字段的值  以下参数是微信返回给开发者的参数]
 * @param {String} timestamp [推送消息链接上的 timestamp 字段值]
 * @param {Array} nonce [推送消息链接上的 nonce 字段值]
 * @param {Array} msg_signature [推送消息链接上 msg_signature 字段值]
 */
wechatEncrypt.checkMsg(encrypt,timestamp,nonce,msg_signature)
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

消息加密

/**
 * 
 * @param {String} xml [需加密数据]
 */
wechatEncrypt.encryption(xml)
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

消息解密

/**
 * 
 * @param {String} encrypt [报文主体中 Encrypt 字段的值  以下参数是微信返回给开发者的参数]
 */
wechatEncrypt.decrypt(encrypt)
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

获取component_access_token

/**
 * 
 * @param {String} component_verify_ticket [微信后台推送的 ticket]
*/
wechatEncrypt.getComponentAccessToken(component_verify_ticket)
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

获取pre_auth_code(预授权码)

/**
 * 
 * @param {String} component_access_token [第三方平台component_access_token]
*/
wechatEncrypt.getPreAuthCode(component_access_token)
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

获取授权链接

/**
 * 
 * @param {String} pre_auth_code [预授权码]
 * @param {String} redirect_uri [授权完成后的回调 URI]
 * @param {String} auth_type [要授权的帐号类型:1 则商户点击链接后,手机端仅展示公众号、2 表示仅展示小程序,3 表示公众号和小程序都展示。如果为未指定,则默认小程序和公众号都展示。第三方平台开发者可以使用本字段来控制授权的帐号类型。]
 * @param {String} biz_appid [指定授权唯一的小程序或公众号]
*/
wechatEncrypt.getAuthUrl(pre_auth_code,redirect_uri,'3',biz_appid)
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

使用授权码获取授权信息

/**
 * 
 * @param {String} component_access_token [第三方平台component_access_token]
 * @param {String} authorization_code [授权码, 会在授权成功时返回给第三方平台]
*/
wechatEncrypt.getAuthorizerAccessToken(component_access_token,auth_code)
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

获取/刷新接口调用令牌

/**
 * 
 * @param {String} component_access_token [第三方平台component_access_token]
 * @param {String} authorizer_appid [授权方 appid]
 * @param {String} authorizer_refresh_token [刷新令牌,获取授权信息时得到]
*/
wechatEncrypt.refreshAuthorizerAccessToken(component_access_token,biz_appid,authorizer_refresh_token)
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

快速注册企业小程序

/**
 * 
 * @param {String} component_access_token [第三方平台component_access_token]
 * @param {String} params [其他参数]
 * @param {String} params.name [企业名(需与工商部门登记信息一致);如果是“无主体名称个体工商户”则填“个体户+法人姓名”,例如“个体户张三”]
 * @param {String} params.code [企业代码]
 * @param {String} params.code_type [企业代码类型 1:统一社会信用代码(18 位) 2:组织机构代码(9 位 xxxxxxxx-x) 3:营业执照注册号(15 位)]
 * @param {String} params.legal_persona_wechat [法人微信号]
 * @param {String} params.legal_persona_name [法人姓名(绑定银行卡)]
*/
wechatEncrypt.fastRegisterWeApp(component_access_token,{
    "name": "xxxxxxx", // 企业名
    "code": "xxxxxxxx", // 企业代码
    "code_type": 1, // 企业代码类型(1:统一社会信用代码, 2:组织机构代码,3:营业执照注册号)
    "legal_persona_wechat": "xxxxxxxx", // 法人微信
    "legal_persona_name": "xxxxxx", // 法人姓名
    "component_phone":"xxxxxxxxx"
})
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

获取代码草稿列表

/**
 * 
 * @param {String} component_access_token [第三方平台component_access_token]
*/
wechatEncrypt.getTemplateDraftList(component_access_token)
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

将草稿添加到代码模板库

/**
 * 
 * @param {String} component_access_token [第三方平台component_access_token]
 * @param {String} params [其他参数]
 * @param {String} params.draft_id [草稿id]
 * @param {String} params.template_type [默认值是0,对应普通模板;可选1,对应标准模板库,关于标准模板库和普通模板库的区别可以查看小程序模板库介绍]
*/
wechatEncrypt.addToTemplate(component_access_token,{draft_id:draft_id,template_type:0})
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

获取代码模板列表

/**
 * 
 * @param {String} component_access_token [第三方平台component_access_token]
*/
wechatEncrypt.getTemplateList(component_access_token)
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

删除指定代码模板

/**
 * 
 * @param {String} component_access_token [第三方平台component_access_token]
 * @param {String} params [其他参数]
 * @param {String} params.template_id [要删除的模板 ID ,可通过获取代码模板列表接口获取]
*/
wechatEncrypt.deleteTemplate(component_access_token,{template_id:'2'})
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

上传小程序代码

/**
 * 
 * @param {String} access_token [第三方平台接口调用令牌authorizer_access_token]
 * @param {String} params [其他参数]
 * @param {String} params.template_id [代码库中的代码模板 ID,可通过获取代码模板列表接口获取template_id]
 * @param {String} params.ext_json [为了方便第三方平台的开发者引入 extAppid 的开发调试工作,引入ext.json配置文件概念,该参数则是用于控制ext.json配置文件的内容。关于该参数的补充说明请查看下方的"ext_json补充说明"]
 * @param {String} params.user_version [代码版本号,开发者可自定义(长度不要超过 64 个字符)]
 * @param {String} params.user_desc [代码描述,开发者可自定义]
*/
wechatEncrypt.commit(authorizer_access_token,{template_id:'0',ext_json:JSON.stringify({}),user_version:'1.0.0',user_desc:'测试'})
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

获取已上传的代码的页面列表

/**
 * 
 * @param {String} access_token [第三方平台接口调用令牌authorizer_access_token]
*/
wechatEncrypt.getPage(authorizer_access_token)
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

获取体验版二维码

/**
 * 
 * @param {String} access_token [第三方平台接口调用令牌authorizer_access_token]
 * @param {String} path [指定二维码扫码后直接进入指定页面并可同时带上参数),选填]
 * @param {String} url [存储图片的地址]
*/
wechatEncrypt.getQrcode(authorizer_access_token,'page/index/index')
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

提交审核

/**
 * 
 * @param {String} access_token [第三方平台接口调用令牌authorizer_access_token]
 * @param {String} params [其他参数,选填]
 * @param {String} params.item_list [审核项列表(选填,至多填写 5 项]
 * @param {String} params.preview_info [预览信息(小程序页面截图和操作录屏)]
 * @param {String} params.version_desc [小程序版本说明和功能解释]
 * @param {String} params.feedback_info [反馈内容,至多 200 字]
 * @param {String} params.feedback_stuff [用 | 分割的 media_id 列表,至多 5 张图片, 可以通过新增临时素材接口上传而得到]
 * @param {String} params.ugc_declare [用户生成内容场景(UGC)信息安全声明]
*/
wechatEncrypt.submitAudit(authorizer_access_token,{})
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

查询指定发布审核单的审核状态

/**
 * 
 * @param {String} access_token [第三方平台接口调用令牌authorizer_access_token]
 * @param {String} params [其他参数]
 * @param {String} params.auditid [提交审核时获得的审核 id]
*/
wechatEncrypt.getAuditStatus(authorizer_access_token,{auditid:437789919})
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

查询最新一次提交的审核状态

/**
 * 
 * @param {String} access_token [第三方平台接口调用令牌authorizer_access_token]
*/
wechatEncrypt.getLatestAuditStatus(authorizer_access_token)
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

小程序审核撤回

/**
 * 
 * @param {String} access_token [第三方平台接口调用令牌authorizer_access_token]
*/
wechatEncrypt.undoCodeAudit(authorizer_access_token)
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

发布已通过审核的小程序

/**
 * 
 * @param {String} access_token [第三方平台接口调用令牌authorizer_access_token]
*/
wechatEncrypt.release(authorizer_access_token)
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

获取可回退的小程序版本

/**
 * 
 * @param {String} access_token [第三方平台接口调用令牌authorizer_access_token]
*/
wechatEncrypt.getHistoryVersion(authorizer_access_token)
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

版本回退

//版本回退
/**
 * 
 * @param {String} access_token [第三方平台接口调用令牌authorizer_access_token]
 * @param {String} params [其他参数,选填]
 * @param {String} params.app_version [默认是回滚到上一个版本;也可回滚到指定的小程序版本,可通过get_history_version获取app_version]
*/
wechatEncrypt.appVersion(authorizer_access_token,{app_version:'4'})
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

查询当前设置的最低基础库版本及各版本用户占比

/**
 * 
 * @param {String} access_token [第三方平台接口调用令牌authorizer_access_token]
*/
wechatEncrypt.getWeAppSupportVersion(authorizer_access_token)
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

设置最低基础库版本

/**
 * 
 * @param {String} access_token [第三方平台接口调用令牌authorizer_access_token]
 * @param {String} params [其他参数]
 * @param {String} params.version [为已发布的基础库版本号]
*/
wechatEncrypt.setWeAppSupportVersion(authorizer_access_token,{version:'1.0.0'})
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

加急审核申请

/**
 * 
 * @param {String} access_token [第三方平台接口调用令牌authorizer_access_token]
 * @param {String} params [其他参数]
 * @param {String} params.auditid [审核单ID]
*/
wechatEncrypt.speedUpAudit(authorizer_access_token,{auditid:'12345'})
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

获取体验者列表

/**
 * 
 * @param {String} access_token [第三方平台接口调用令牌authorizer_access_token]
*/
wechatEncrypt.memberAuth(authorizer_access_token)
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

绑定微信用户为体验者

/**
 * 
 * @param {String} access_token [第三方平台接口调用令牌authorizer_access_token]
 * @param {String} params [其他参数]
 * @param {String} params.wechatid [微信号]
*/
wechatEncrypt.bindTester(authorizer_access_token,{wechatid:'ahao100861'})
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

解除绑定体验者

/**
 * 
 * @param {String} access_token [第三方平台接口调用令牌authorizer_access_token]
 * @param {String} params [其他参数]
 * @param {String} params.wechatid [微信号]
*/
wechatEncrypt.unbindTester(authorizer_access_token,{wechatid:'ahao100861'})
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

设置服务器域名

/**
 * 
 * @param {String} access_token [第三方平台接口调用令牌authorizer_access_token]
 * @param {String} params [其他参数]
 * @param {String} params.action [操作类型,set覆盖,get获取]
 * @param {String} params.requestdomain [request 合法域名;当 action 是 get 时不需要此字段]
 * @param {String} params.wsrequestdomain [socket 合法域名;当 action 是 get 时不需要此字段]
 * @param {String} params.uploaddomain [uploadFile 合法域名;当 action 是 get 时不需要此字段]
 * @param {String} params.downloaddomain [downloadFile 合法域名;当 action 是 get 时不需要此字段]
*/
wechatEncrypt.modifyDomain(authorizer_access_token,{action:'set',requestdomain:[],wsrequestdomain:[],uploaddomain:[],downloaddomain:[]})
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

设置业务域名

/**
 * 
 * @param {String} access_token [第三方平台接口调用令牌authorizer_access_token]
 * @param {String} params [其他参数]
 * @param {String} params.action [操作类型,set覆盖,get获取]
 * @param {String} params.webviewdomain [小程序业务域名,当 action 参数是 get 时不需要此字段]
*/
wechatEncrypt.setWebViewDomain(authorizer_access_token,{action:'set',webviewdomain:[]})
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

设置隐私保护协议

/**
 * 
 * @param {String} access_token [第三方平台接口调用令牌authorizer_access_token]
 * @param {String} params [其他参数]
 * @param {Object} params.owner_setting [收集方(开发者)信息配置]
 * @param {String} params.owner_setting.contact_email [信息收集方(开发者)的邮箱地址,4种联系方式至少要填一种]
 * @param {String} params.owner_setting.contact_phone [信息收集方(开发者)的手机号,4种联系方式至少要填一种]
 * @param {String} params.owner_setting.contact_qq [信息收集方(开发者)的qq号,4种联系方式至少要填一种]
 * @param {String} params.owner_setting.contact_weixin [信息收集方(开发者)的微信号,4种联系方式至少要填一种]
 * @param {String} params.owner_setting.notice_method [通知方式,指的是当开发者收集信息有变动时,通过该方式通知用户。这里服务商需要按照实际情况填写,例如通过弹窗或者公告或者其他方式。]
 * @param {Array} params.setting_list [要收集的用户信息配置,可选择的用户信息类型参考下方详情]
 * @param {String} params.setting_list.privacy_key [官方的可选值参考下方说明;该字段也支持自定义]
 * @param {String} params.setting_list.privacy_text [是	请填写收集该信息的用途。例如privacy_key=Location(位置信息),那么privacy_text则填写收集位置信息的用途。无需再带上“为了”或者“用于”这些字眼,小程序端的显示格式是为了xxx,因此开发者只需要直接填写用途即可。]
*/
wechatEncrypt.setPrivacySetting(authorizer_access_token,{owner_setting:{contact_email:'xx@xx.com',notice_method:'contact_email'},setting_list:[{privacy_key:'UserInfo',privacy_text:'基础信息展示'}]})
.then(function (body){
	console.log(body);
})
.catch(function (err){
	console.log(err);
});

Readme

Keywords

none

Package Sidebar

Install

npm i node-wx-third

Weekly Downloads

0

Version

1.1.4

License

ISC

Unpacked Size

76.4 kB

Total Files

7

Last publish

Collaborators

  • bluedtao