上篇文章我们分享了如何使用纯的云函数开发的榛子短信短信(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的更多相关文章

  1. [APP] Android 开发笔记 006-使用短信验证SDK进行短信验证

    1. 下载SDK (http://www.mob.com/#/download) SMS For Android Studio: http://www.mob.com/download/sms/and ...

  2. 1、背景介绍及移动云MAS平台 --短信平台

    目的: 刚开发完成一套短信平台以及一个Web端短信发送系统,短信平台耗时两个周.短信发送系统耗时两个多月,开发使用的技术没什么高科技含量,在此主要是记录下很多情况的处理方案,希望能让大家提出改善方案和 ...

  3. 微信小程序开发 -- 通过云函数下载任意文件

    微信小程序开发 -- 通过云函数下载任意文件 1.云开发介绍 ​ 微信小程序开发者众所周知,小程序开发拥有许多限制,当我还是一个菜鸟入门的时候,第一关就卡在了没有备案域名的HTTP请求上面,那时候云开 ...

  4. Luffy之注册认证(容联云通讯短信验证)

    用户的注册认证 前端显示注册页面并调整首页头部和登陆页面的注册按钮的链接. 注册页面Register,主要是通过登录页面进行改成而成. 先构造前端页面 <template> <div ...

  5. ThinkPHP 提供Auth 权限管理、支付宝、微信支付、阿里oss、友盟推送、融云即时通讯、云通讯短信、Email、Excel、PDF 等等

    多功能 THinkPHP 开源框架 项目简介:使用 THinkPHP 开发项目的过程中把一些常用的功能或者第三方 sdk 整合好,开源供亲们参考,如 Auth 权限管理.支付宝.微信支付.阿里oss. ...

  6. Java版阿里云通信短信发送API接口实例(新)

    阿里云通信(原名阿里大于)的短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码.短信通知等. 完美支撑双11期间2亿用户,发送6亿短信 ...

  7. android开发学习---开发一个简易的短信发送器

    一.需求: 开发一个简易的短信发送器,输入:对方手机号码,短信内容,点击发送按钮,短信发送成功,对方手机成功收到短信. 其中要求短信内容过长时可以自动拆分,长度英文是160个英文,中文是70个,中英混 ...

  8. zabbix短信(阿里云短信平台)与邮件报警

    环境说明 操作系统 centos7 zabbix_server zabbix 4.0.3 python 3.6.5 短信平台 阿里云短信 zabbix_server配置信息 1 [root@cp-hb ...

  9. html5开发手机打电话发短信功能

    原文:http://www.open-open.com/code/view/1449843459332 在很多的手机网站上,有打电话和发短信的功能,对于这些功能是如何实现的呢.其实不难,今天我们就用h ...

随机推荐

  1. APP的三种开发模式

    转载于http://pleasureswx123.github.io/2014/09/15/APP%E7%9A%84%E4%B8%89%E7%A7%8D%E5%BC%80%E5%8F%91%E6%A8 ...

  2. 【interview——Ali】project interview_18 summer

    完全没有准备的一次面试……意外 两部分:Word2vec + 中位数 (还有聊对科研的想法和自己研究能力的评价? word2vec //解释模型 原本是one-hot,存在缺点:稀疏和无法表现语义,词 ...

  3. ActiveMQ简单使用

    // 第一步:创建ConnectionFactory对象,需要指定服务端ip及端口号. //brokerURL服务器的ip及端口号 ConnectionFactory connectionFactor ...

  4. The Apache Tomcat installation at this directory is version 8.5.40. A Tomcat 8.0 installation is expected.

    问题描述 Eclipse 配置 Apache Tomcat 8.5.40(8.0.x 以上版本),会报如下错误信息: 解决方法 1)在 Apache Tomcat 的安装目录中找到 lib 目录下的 ...

  5. P4098 [HEOI2013]ALO

    最近这个家伙去哪了,为啥一直不更博客了呢?原来他被老师逼迫去补了一周的文化课,以至于不会把班里的平均分拉掉太多.好了,我们来看下面这道题目: P4098 [HEOI2013]ALO 题目描述 Welc ...

  6. mysql5.7版本开始创建用户需要create user

    mysql5.7版本开始创建用户需要create user 5.7版本之后,直接使用:grant select on MySQL.test01 to hug@localhost; 是不行的,会报错: ...

  7. vertx的NetServer模块

    启动 public synchronized void listen(Handler<NetSocket> handler, SocketAddress socketAddress, Ha ...

  8. 出错:Error creating bean with name 'studentServiceImpl': Unsatisfied dependency expressed through field 'studentMapper';

    详细错误: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with nam ...

  9. 拦截请求并记录相应信息-springboot

    方式: 1.FIlter过滤器 2.interceptor拦截器 3.Aspect切片 一.Filter过滤器形式 只能处理request中的数据  不能确定请求要走的是哪个controller信息 ...

  10. Android OS 源码 引入和编译 jar / so库

    Android -- 源码平台下JAR包的引入与编译https://blog.csdn.net/csdn_of_coder/article/details/64538227 BUILD_JAVA_LI ...