123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- 'use strict';
- /**
- * [BAR 短信网]
- * @type {[type]}
- */
- const BAR = Symbol('Application#dxw');
- /**
- * [dwx_options_merge description]
- * @author szjcomo
- * @createTime 2020-08-08
- * @param {Object} options [description]
- * @return {[type]} [description]
- */
- const dwx_options_merge = function(options = {},config = {}) {
- if(options.data && !options.data.accesskey) options.data.accesskey = config.dxw.accesskey;
- if(options.data && !options.data.secret) options.data.secret = config.dxw.secret;
- if(options.data && !options.data.sign) options.data.sign = config.dxw.sign;
- return options;
- }
- /**
- * [exports 短信开发接口]
- * @type {Object}
- */
- module.exports = {
- /**
- * [dxw 获取短信网对象]
- * @author szjcomo
- * @createTime 2020-09-04
- * @return {[type]} [description]
- */
- get dxw() {
- let app = this;
- if(app[BAR]) return app[BAR];
- return {
- /**
- * [single_send 发送单条短信]
- * @author szjcomo
- * @createTime 2020-08-08
- * @param {Object} options
- * options.data.accesskey [平台分配给用户的accesskey,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * options.data.secret [平台分配给用户的secret,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * options.data.sign [平台上申请的接口短信签名或者签名ID(须审核通过),采用utf8编码] [可传 不传依赖全局配置项]
- * options.data.templateId [平台上申请的接口短信模板Id(须审核通过)] [必传]
- * options.data.mobile [接收短信的手机号码(只支持单个手机号)] [必传]
- * options.data.content [发送的短信内容是模板变量内容,多个变量中间用##或者$$隔开,采用utf8编码] [必传]
- * @return {[type]} [description]
- */
- send_single:async function(options = {}) {
- let push_url = 'http://api.1cloudsp.com/api/v2/single_send';
- let push_data = Object.assign({dataType:'json',method:'POST',timeout:3000},dwx_options_merge(options,app.config));
- let result = await app.curl(push_url,push_data);
- return result.data;
- },
- /**
- * [send_all 批量发送短信]
- * @author szjcomo
- * @createTime 2020-08-08
- * @param {Object} options [description]
- * options.data.accesskey [平台分配给用户的accesskey,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * options.data.secret [平台分配给用户的secret,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * options.data.sign [平台上申请的接口短信签名或者签名ID(须审核通过),采用utf8编码] [可传 不传依赖全局配置项]
- * options.data.templateId [平台上申请的接口短信模板Id(须审核通过)] [必传]
- * options.data.mobile [接收短信的手机号码,多个号码以半角逗号,隔开 注:最大支持5万] [必传]
- * options.data.scheduleSendTime [短信定时发送时间,格式为:2018-01-01 18:00:00;参数如果为空表示立即发送] [可传]
- * options.data.data [该字段用于发送个性短信,mobile和content字段不需要填写,该字段json字符串,json的key是手机号,value是短信内容变量,等同于上面的content 包含多个变量中间用##或者$$隔开,采用utf8编码] [可传]
- * 示列 {"13700000001":"女士##10:10##物流公司##000000","13700000000":"先生##9:40##快递公司##1234567"}
- * @return {[type]} [description]
- */
- send_all:async function(options = {}) {
- let push_url = 'http://api.1cloudsp.com/api/v2/send';
- let result = await app.curl(push_url,Object.assign({dataType:'json',method:'POST'},dwx_options_merge(options,app.config)));
- return result.data;
- },
- /**
- * [create_sign 创建短信签名]
- * @author szjcomo
- * @createTime 2020-08-08
- * @param {Object} options [description]
- * options.data.accesskey [平台分配给用户的accesskey,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * options.data.secret [平台分配给用户的secret,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * options.data.sign [平台上申请的接口短信签名或者签名ID(须审核通过),采用utf8编码] [必传 示例【测试签名】]
- * options.data.description [简单描述使用场景] [可传 ]
- * @return {[type]} [description]
- */
- create_sign:async function(options = {}) {
- if(!options.data.sign) throw new Error('创建短信签名接口必须有签名字段');
- let push_url = 'http://api.1cloudsp.com/open/api/addSign';
- let result = await app.curl(push_url,Object.assign({dataType:'json',method:'POST'},dwx_options_merge(options,app.config)));
- return result.data;
- },
- /**
- * [update_sign 更新签名]
- * @author szjcomo
- * @createTime 2020-08-13
- * @param {Object} options [description]
- * options.data.accesskey [平台分配给用户的accesskey,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * options.data.secret [平台分配给用户的secret,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * options.data.sign [平台上申请的接口短信签名或者签名ID(须审核通过),采用utf8编码] [必传 示例【测试签名】]
- * options.data.id [签名id] [必传 示例【测试签名】]
- * options.data.description [简单描述使用场景] [可传 ]
- * @return {[type]} [description]
- */
- update_sign:async function(options = {}) {
- if(!options.data.sign) throw new Error('创建短信签名接口必须有签名字段');
- if(!options.data.id) throw new Error('签名id接口必须有签名字段');
- let push_url = 'http://api.1cloudsp.com/open/api/modifySign';
- let result = await app.curl(push_url,Object.assign({dataType:'json',method:'POST'},dwx_options_merge(options,app.config)));
- return result.data;
- },
- /**
- * [select_sign 查询所有签名]
- * @author szjcomo
- * @createTime 2020-08-13
- * @param {Object} options [description]
- * @return {[type]} [description]
- */
- select_sign:async function(options = {}) {
- let push_url = 'http://api.1cloudsp.com/query/signlist';
- let result = await app.curl(push_url,Object.assign({dataType:'json',method:'POST'},dwx_options_merge(options,app.config)));
- return result.data;
- },
- /**
- * [create_template 创建模版]
- * @author szjcomo
- * @createTime 2020-08-08
- * @param {Object} options [description]
- * options.data.accesskey [平台分配给用户的accesskey,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * options.data.secret [平台分配给用户的secret,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * options.data.templateName [模板名称] [必传 示例【模板名称】]
- * options.data.categoryId [模板类型] [必传 1 验证码 2 通知||订单 3 营销]
- * options.data.template [短信模板,采用utf8编码] [必传 示例 你的验证码是{1}]
- * options.data.description [简单描述使用场景] [必传 示例 公司名称]
- * @return {[type]} [description]
- */
- create_template:async function(options = {}) {
- let push_url = 'http://api.1cloudsp.com/open/api/addTemplate';
- let result = await app.curl(push_url,Object.assign({dataType:'json',method:'POST'},dwx_options_merge(options,app.config)));
- return result.data;
- },
- /**
- * [update_templdate 修改模版]
- * @author szjcomo
- * @createTime 2020-08-13
- * @param {Object} options [description]
- * options.data.accesskey [平台分配给用户的accesskey,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * options.data.secret [平台分配给用户的secret,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * options.data.templateName [模板名称] [必传 示例【模板名称】]
- * options.data.id [模板ID] [示例 1]
- * options.data.template [短信模板,采用utf8编码] [必传 示例 你的验证码是{1}]
- * options.data.description [简单描述使用场景] [必传 示例 公司名称]
- * @return {[type]} [description]
- */
- update_templdate:async function(options = {}) {
- let push_url = 'http://api.1cloudsp.com/open/api/modifyTemplate';
- let result = await app.curl(push_url,Object.assign({dataType:'json',method:'POST'},dwx_options_merge(options,app.config)));
- return result.data;
- },
- /**
- * [select_template 短信所有模版查询]
- * @author szjcomo
- * @createTime 2020-08-08
- * @param {Object} options [description]
- * options.data.accesskey [平台分配给用户的accesskey,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * options.data.secret [平台分配给用户的secret,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * @return {[type]} [description]
- */
- select_template:async function(options = {}) {
- let push_url = 'http://api.1cloudsp.com/query/templatelist';
- let result = await app.curl(push_url,Object.assign({dataType:'json',method:'POST'},dwx_options_merge(options,app.config)));
- return result.data;
- },
- /**
- * [find_template 模版详情]
- * @author szjcomo
- * @createTime 2020-08-08
- * @param {Object} options [description]
- * options.data.accesskey [平台分配给用户的accesskey,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * options.data.secret [平台分配给用户的secret,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * options.data.templateId [模板ID] [必传 示例 1]
- * @return {[type]} [description]
- */
- find_template:async function(options = {}) {
- let push_url = 'http://api.1cloudsp.com/query/getTemplate';
- let result = await app.curl(push_url,Object.assign({dataType:'json',method:'POST'},dwx_options_merge(options,app.config)));
- return result.data;
- },
- /**
- * [phone_info 手机号码所在地查询]
- * @author szjcomo
- * @createTime 2020-08-08
- * @param {Object} options [description]
- * options.data.accesskey [平台分配给用户的accesskey,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * options.data.secret [平台分配给用户的secret,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * options.data.mobiles [多个手机号用英文逗号分开] [必传 手机号]
- * @return {[type]} [description]
- */
- phone_info:async function(options = {}) {
- let push_url = 'http://api.1cloudsp.com/open/api/qry/mobiles/section';
- let result = await app.curl(push_url,Object.assign({dataType:'json',method:'POST'},dwx_options_merge(options,app.config)));
- return result.data;
- },
- /**
- * [dw_status 获取短信状态]
- * @author szjcomo
- * @createTime 2020-08-08
- * @param {Object} options [description]
- * options.data.accesskey [平台分配给用户的accesskey,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * options.data.secret [平台分配给用户的secret,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * @return {[type]} [description]
- */
- dw_status:async function(options = {}) {
- let push_url = 'http://api.1cloudsp.com/report/status';
- let result = await app.curl(push_url,Object.assign({dataType:'json',method:'POST'},dwx_options_merge(options,app.config)));
- return result.data;
- },
- /**
- * [account_money 账户余额查询]
- * @author szjcomo
- * @createTime 2020-08-08
- * @param {Object} options [description]
- * options.data.accesskey [平台分配给用户的accesskey,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * options.data.secret [平台分配给用户的secret,登录系统首页可点击"我的秘钥"查看] [可传 不传依赖全局配置项]
- * @return {[type]} [description]
- */
- account_money:async function(options = {}) {
- let push_url = 'http://api.1cloudsp.com/query/account';
- let result = await app.curl(push_url,Object.assign({dataType:'json',method:'POST'},dwx_options_merge(options,app.config)));
- return result.data;
- },
- /**
- * [get_user_reply 获取用户回复的信息]
- * @author szjcomo
- * @createTime 2020-08-13
- * @param {Object} options [description]
- * @return {[type]} [description]
- */
- select_replys:async function(options = {}) {
- let push_url = 'http://api.1cloudsp.com/report/up';
- let result = await app.curl(push_url,Object.assign({dataType:'json',method:'POST'},dwx_options_merge(options,app.config)));
- return result.data;
- }
- };
- }
- };
|