分享使用tcb-router路由开发的云函数短信平台SDK
上篇文章我们分享了如何使用纯的云函数开发的榛子短信短信(http://smsow.zhenzikj.com)SDK,由于微信对于未付费云函数个数的限制,这种方法存在缺陷,经过改进,使用tcb-router作为路由,这样只需要整合到一个云函数中就行
下载sdk和demo: http://smsow.zhenzikj.com/sdkdownload/weixinmp_yun2.html
目前SDK中包含三个功能: send(发送短信)、balance(查询余额)、findSmsByMessageId(查询单条短信)
SDK源码
// 云函数入口文件
const cloud = require('wx-server-sdk')
const TcbRouter = require('tcb-router')
const rq = require('request')
const baseUrl = 'https://smsdeveloper.zhenzikj.com' cloud.init() // 云函数入口函数
exports.main = async (event, context) => {
const app = new TcbRouter({ event }); app.router('send', async (ctx) => {
ctx.body = new Promise(resolve => {
rq({
url: baseUrl + '/sms/send.html',
method: "POST",
json: true,
form: {
apiUrl: event.apiUrl,
appId: event.appId,
appSecret: event.appSecret,
message: event.message,
number: event.number,
messageId: event.messageId,
}
}, function (error, response, body) {
resolve({ body: body, error: error })
});
// setTimeout(() => {
// resolve('male');
// }, 500);
});
});
app.router('balance', async (ctx) => {
ctx.body = new Promise(resolve => {
rq({
url: baseUrl + '/sms/balance.html',
method: "POST",
json: true,
form: {
apiUrl: event.apiUrl,
appId: event.appId,
appSecret: event.appSecret
}
}, function (error, response, body) {
resolve({ body: body, error: error })
});
});
});
app.router('findSmsByMessageId', async (ctx) => {
ctx.body = new Promise(resolve => {
rq({
url: baseUrl + '/sms/findSmsByMessageId.html',
method: "POST",
json: true,
form: {
apiUrl: event.apiUrl,
appId: event.appId,
appSecret: event.appSecret,
messageId: event.messageId
}
}, function (error, response, body) {
resolve({ body: body, error: error })
});
});
}); return app.serve();
}
如何使用SDK
//index.js
const app = getApp() Page({
data: { }, onLoad: function() { }, // 发送短信
send: function () {
wx.cloud.callFunction({
name: 'zhenzisms',
data: {
$url: 'send',
apiUrl: 'https://sms_developer.zhenzikj.com',
appId: '你的appId',
appSecret: '你的appSecret',
message: '你的验证码为:3333',
number: '15811111111',
messageId: ''
}
}).then((res) => {
console.log(res.result.body);
}).catch((e) => {
//console.log(e);
});
},
// 查询余额
balance: function () {
wx.cloud.callFunction({
name: 'zhenzisms',
data: {
$url: 'balance',
apiUrl: 'https://sms_developer.zhenzikj.com',
appId: '你的appId',
appSecret: '你的appSecret'
}
}).then((res) => {
console.log(res.result.body);
}).catch((e) => {
//console.log(e);
}); },
// 查询单条信息
findSmsByMessageId: function () {
wx.cloud.callFunction({
name: 'zhenzisms',
data: {
$url: 'findSmsByMessageId',
apiUrl: 'https://sms_developer.zhenzikj.com',
appId: '你的appId',
appSecret: '你的appSecret',
messageId: 'aaaabbbbba'
}
}).then((res) => {
console.log(res.result.body);
}).catch((e) => {
//console.log(e);
}); }
})
分享使用tcb-router路由开发的云函数短信平台SDK的更多相关文章
- [APP] Android 开发笔记 006-使用短信验证SDK进行短信验证
1. 下载SDK (http://www.mob.com/#/download) SMS For Android Studio: http://www.mob.com/download/sms/and ...
- 1、背景介绍及移动云MAS平台 --短信平台
目的: 刚开发完成一套短信平台以及一个Web端短信发送系统,短信平台耗时两个周.短信发送系统耗时两个多月,开发使用的技术没什么高科技含量,在此主要是记录下很多情况的处理方案,希望能让大家提出改善方案和 ...
- 微信小程序开发 -- 通过云函数下载任意文件
微信小程序开发 -- 通过云函数下载任意文件 1.云开发介绍 微信小程序开发者众所周知,小程序开发拥有许多限制,当我还是一个菜鸟入门的时候,第一关就卡在了没有备案域名的HTTP请求上面,那时候云开 ...
- Luffy之注册认证(容联云通讯短信验证)
用户的注册认证 前端显示注册页面并调整首页头部和登陆页面的注册按钮的链接. 注册页面Register,主要是通过登录页面进行改成而成. 先构造前端页面 <template> <div ...
- ThinkPHP 提供Auth 权限管理、支付宝、微信支付、阿里oss、友盟推送、融云即时通讯、云通讯短信、Email、Excel、PDF 等等
多功能 THinkPHP 开源框架 项目简介:使用 THinkPHP 开发项目的过程中把一些常用的功能或者第三方 sdk 整合好,开源供亲们参考,如 Auth 权限管理.支付宝.微信支付.阿里oss. ...
- Java版阿里云通信短信发送API接口实例(新)
阿里云通信(原名阿里大于)的短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码.短信通知等. 完美支撑双11期间2亿用户,发送6亿短信 ...
- android开发学习---开发一个简易的短信发送器
一.需求: 开发一个简易的短信发送器,输入:对方手机号码,短信内容,点击发送按钮,短信发送成功,对方手机成功收到短信. 其中要求短信内容过长时可以自动拆分,长度英文是160个英文,中文是70个,中英混 ...
- zabbix短信(阿里云短信平台)与邮件报警
环境说明 操作系统 centos7 zabbix_server zabbix 4.0.3 python 3.6.5 短信平台 阿里云短信 zabbix_server配置信息 1 [root@cp-hb ...
- html5开发手机打电话发短信功能
原文:http://www.open-open.com/code/view/1449843459332 在很多的手机网站上,有打电话和发短信的功能,对于这些功能是如何实现的呢.其实不难,今天我们就用h ...
随机推荐
- GIt -- git push 远程分支老是需要重新输入公钥密码问题处理?
步骤: 先查看远程有哪些分支 删除远程分支,重新关联远程分支 最后再git push 到远程分支 git remote -v git remote rm RedisNote git remote a ...
- 爬取json Swaggerui界面
对一个静态的网页进行爬取. 要获取的内容分别为 paths 标签下的 1./quota/开头的路径 2. get 这样的httpmode 3 description对应的描述 4 summary 5 ...
- VUE项目快速构建
IDE :VScode 1.新建项目文件夹 ctrl+~ 调出命令板,/IDE找到当前文件夹右键 点击‘在命令提示符中打开’ 安装 node:官网(https://nodejs.org/en/d ...
- struts2-剩余2
周一-周四 晚上:7:30 – 9:30 多线程.Linux.云服务器.git spring springboot.springcloud 今晚:7:30 测试直播网速 一.回顾 拦截器:在目标 ...
- css3——border-image属性的用法
项目需求是实现鼠标移到按钮上时,下方显示一张渐变的三角图片,于是想到使用border-image来实现. 实现;//向外偏移10px,可使边框内部的内容不是那么紧凑border-image-repea ...
- cmake编译opencv指南
目录 cmake编译opencv指南 用包管理器安装 查看opencv相关的包 执行安装 编译安装 为什么编译安装 下载源码 编译脚本 执行编译脚本.解决3rdparty下载 编译后的设定-环境变量 ...
- SoftEther
sudo apt-get update sudo wget http://www.softether-download.com/files/softether/v4.25-9656-rtm-201 ...
- redis安装使用
Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. 它通常被称为数据结构服务器,因为值(valu ...
- GLSL ES 中的存储变量修饰符(const/attribute/uniform/varying/in/centroid in/out/centroid out)
GLSL ES 3.00 中支持的存储变量修饰符 变量名称 作用 示例 const 编译过程常量,或者函数的只读参数 const vec3 zAxis = vec3 (0.0, 0.0, 1.0); ...
- IMCASH:2019年区块链不会风平浪静,至少还有10件事值得期待
当我们在说2019年是值得期待的一年时,我们还是得做到有根有据.那么,2019年在区块链行业都会发生哪些引导行业风向.影响整个行业的事件呢? 今天,白话区块链带着大家顺着时间线梳理一下. 01 第一季 ...