華爲隱私保護通話接入總結

1 概述

1.1 背景

挪車服務中,使用虛擬號碼保護車主手機號碼隱私信息;實現用戶B在需要挪車時,使用微信小程序掃碼從SAAS服務中獲取到一虛擬號碼,可通過撥打該虛擬號碼接通至車主的真實號碼中。實現雙方的隱私通話。

2 華爲隱私號碼服務

2.1 概述

華爲隱私號碼服務,分爲 AXB、AX、X、AXE、AXYB等5種模式,區別請參考華爲開放文檔:https://support.huaweicloud.com/productdesc-PrivateNumber/privatenumber_04_0002.html
本次開發採用AX模式:

隱私保護通話AX模式中,A爲業務受益用戶,爲了保護A的真實號碼不被泄露,在隱私保護通話平臺爲A綁定一個虛擬號碼X。
● 綁定關係建立後:所有人均可撥打X聯繫A,保護A的真實號碼不被泄露。
	○ 用戶A呼叫其他用戶時,企業需要通過API(AX模式設置臨時被叫接口)指定呼叫對象(如B),然後A撥打X號碼呼叫B。
● AX模式下的X號碼只專屬於A號碼,即一個虛擬號碼X同時只能綁定一個A號碼。但1個A號碼可以同時綁定5個X號碼。
● 當X號碼和A號碼解除綁定關係後,該X號碼可以被回收,供其他號碼綁定。

2.2 賬號及地址

華爲隱號服務地址:https://console.huaweicloud.com/privatenumber/?region=cn-north-1#/management/overview
賬號:***
密碼:***

2.3 對接流程

在這裏插入圖片描述

2.4 開發準備

在這裏插入圖片描述

2.5 請求頭參數

Content-Type:固定填寫爲application/json;charset=UTF-8。
Authorization:固定填寫爲WSSE realm=“SDP”,profile=“UsernameToken”,type=“Appkey”。
● X-WSSE:取值爲UsernameToken Username=“APP_Key的值”, PasswordDigest=“PasswordDigest的值”, Nonce=“隨機數”, Created=“隨機數生成時間”。
PasswordDigest:根據PasswordDigest = Base64 (SHA256 (Nonce + Created + Password))生成。其中,Password爲APP_Secret的值。Nonce、Created、Password直接進行字符串拼接即可,無需包含+號和空格。
Nonce:客戶發送請求時生成的一個隨機數,長度爲1~128位,可包含數字和大小寫字母。例如:66C92B11FF8A425FB8D4CCFE0ED9ED1F。
Created:隨機數生成時間。採用標準UTC格式,例如:2018-02-12T15:30:20Z。不同編程語言中將UTC時間戳轉換爲普通時間時使用的格式不同;Java:yyyy-MM-dd’T’HH:mm:ss’Z’

2.6 對接接口

所有接口地址:https://support.huaweicloud.com/api-PrivateNumber/privatenumber_02_0010.html
開發中使用的接口有:
● 綁定接口
● 解綁接口
● 綁定查詢接口
● 呼叫事件通知回調
● 話單通知回調
● 終止呼叫接口

3 開發設計

3.1 官方流程圖

在這裏插入圖片描述

3.2 對接泳道圖

在這裏插入圖片描述

3.3 數據庫設計

3.3.1 虛擬號碼管理表

說明:用於管理訂購的虛擬號碼狀態與綁定信息;
在這裏插入圖片描述

CREATE TABLE `virtual_number` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `virtual_num` varchar(20) NOT NULL COMMENT '虛擬號碼',
  `true_num` varchar(20) DEFAULT NULL COMMENT '真實號碼',
  `subscription_id` varchar(255) DEFAULT NULL COMMENT '華爲綁定id',
  `status` bit(1) NOT NULL DEFAULT b'0' COMMENT '狀態 0空閒 1使用中',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時間',
  PRIMARY KEY (`id`),
  UNIQUE KEY `virtual_number_unique` (`virtual_num`),
  UNIQUE KEY `true_number_unique` (`true_num`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

3.3.2 虛擬號碼使用日誌表

說明:用於記錄調用綁定虛擬號碼的日誌記錄;包括成功及失敗原因,可根據該表日誌統計是否需要新增訂購虛擬號碼數量;
在這裏插入圖片描述

CREATE TABLE `ax_service_log` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `virtual_num` varchar(20) DEFAULT NULL COMMENT '虛擬號碼',
  `true_num` varchar(20) NOT NULL COMMENT '真實號碼',
  `subscription_id` varchar(255) DEFAULT NULL COMMENT '綁定Id',
  `remarks` varchar(255) DEFAULT NULL COMMENT '備註',
  `status` bit(1) NOT NULL DEFAULT b'1' COMMENT '狀態: 0失敗  1成功',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章