1. 程式人生 > >阿里雲簡訊服務接入

阿里雲簡訊服務接入

最近需要在郵件註冊服務上接入手機號註冊功能,這裡就涉及到簡訊驗證碼。

看來下AWS的方案如果不使用AWS中國服務,在東京發簡訊,一條成本就在0.06~0.09美元,阿里雲0.045¥一條。
所以把方案換成了阿里雲簡訊方案, 但阿里雲簡訊會稽核簡訊內容,一般只能用來發發驗證碼。

如果原來使用過阿里雲流程會比較簡單。下面分成兩部分來講:

  • 1 配置阿里雲簡訊服務
  • 2 使用SDK編碼

1 配置阿里雲簡訊服務

1.1 入駐阿里雲(原來使用過這步可省略)

1.2 申請簡訊服務

去阿里雲後臺找簡訊服務開啟即可

1.3 建立相應服務ARN 並得到accessKey 和 Access Key secret。

即為簡訊服務建立單獨賬戶並分配許可權及連線憑證

1.4 建立簡訊模板

這點特別噁心,阿里雲發簡訊必須要簡訊簽名和簡訊模板
簡訊簽名:即簡訊開頭那個【阿里巴巴】
簡訊模板:即固定的簡訊格式,可傳入變數,實現傳送驗證碼。
以上兩個均需要阿里雲稽核,個人簡訊簽名,阿里雲強制要求用本人真實簽名,否則就要提供很多證件。

以上4部分完成,我們即可得到簡訊簽名 簡訊模板編號 accessKeyID accessSecret

2 使用SDK程式設計

環境:nodejs

2.1 安裝sdk

$ npm install @alicloud/sms-sdk –save

2.2 阿里雲提供的sample code

/**
 * 雲通訊基礎能力業務簡訊傳送、查詢詳情以及消費訊息示例,供參考。
 * Created on 2017-07-31
 */
const SMSClient = require('@alicloud/sms-sdk')
// ACCESS_KEY_ID/ACCESS_KEY_SECRET 根據實際申請的賬號資訊進行替換
const accessKeyId = 'yourAccessKeyId'
const secretAccessKey = 'yourAccessKeySecret'
//初始化sms_client
let smsClient = new SMSClient({accessKeyId, secretAccessKey})
//傳送簡訊
smsClient.sendSMS({ PhoneNumbers: '1500000000',必填:待發送手機號。支援以逗號分隔的形式進行批量呼叫,批量上限為1000個手機號碼,批量呼叫相對於單條呼叫及時性稍有延遲,驗證碼型別的簡訊推薦使用單條呼叫的方式;傳送國際/港澳臺訊息時,接收號碼格式為00+國際區號+號碼,如“0085200000000” SignName: '雲通訊產品',必填:簡訊簽名-可在簡訊控制檯中找到 TemplateCode: 'SMS_1000000',必填:簡訊模板-可在簡訊控制檯中找到,傳送國際/港澳臺訊息時,請使用國際/港澳臺簡訊模版 TemplateParam: '{"code":"12345"}'可選:模板中的變數替換JSON串,如模板內容為"親愛的${name},您的驗證碼為${code}"時。 }).then(function (res) { let {Code}=res if (Code === 'OK') { //處理返回引數 console.log(res) } }, function (err) { console.log(err) })