Skip to main content

附录

一、签名算法

签名将只对推送参数中的 data 进行签名,其他参数不做处理

第一步

首先将 data 参数通过 json 序列化转换成 string,如果 data 参数为加密后的 string 则,无需经过此步骤。以下为伪代码

$first = json_encode($data)

第二步

第二步,也是最后一步,得到签名值

$sign = md5($first + SECRET)

上面的 SECRET 为双方约定的秘钥,请勿泄露此秘钥

二、加密算法

推送参数支持数据加密,以防止数据泄露,具体加密算法如下

第一步

首先得到待加密的数据,将 data 参数通过 json 序列化转换成 string

$waitingEncrypt = json_encode($data)

第二步

通过 openssl 进行加密,且先保证您的应用有相关扩展

$encryptData = open_encrypt($waitingEncrypt, $method = 'AES-256-CFB', SECRET, $options = OPENSSL_RAW_DATA, $iv = {SECRET 前16位})

第三步

通过 base64 加密得到最终加密数据

$encrypt = base64_encode($encryptData)

三、解密算法

第一步

$waitingDecrypt = base64_decode($data)

第二步

$decryptData = open_decrypt($waitingEncrypt, $method = 'AES-256-CFB', SECRET, $options = OPENSSL_RAW_DATA, $iv = {SECRET 前16位})

第三步

通过 base64 加密得到最终加密数据

$decrypt = json_decode($decryptData)

四、常用 release_cause 说明

参数说明
1运营商原因: 未分配的号码
2运营商原因: 无路由到指定的转接网
3运营商原因: 无路由到目的地
4运营商原因: 发送专用信息音
6运营商原因: 不可接受的通路
16正常的呼叫拆线
17用户忙
18用户未响应
19用户未应答
20用户缺席
21呼叫拒收
22运营商原因: 号码改变
27运营商原因: 目的地不可达
28运营商原因: 无效的号码格式(地址不全)
29运营商原因: 性能拒绝
31正常—未指定
34运营商原因: 无可用的电路/通路
38运营商原因: 网络失序
39运营商原因: 永久帧方式连接未开放业务
41运营商原因: 临时故障,网络问题
42运营商原因: 交换设备拥塞
47运营商原因: 资源不可用,未规定
50运营商原因: 所请求的性能未预定
53运营商原因: CUG 中限制去呼叫
55运营商原因: CUG 中限制来呼叫
57运营商原因: 承载能力无权
58运营商原因: 承载能力目前不可用
65运营商原因: 承载能力未实现
69运营商原因: 所请求的性能未实现
79运营商原因: 业务或任选未实施,未规定
87~95运营商原因: 无效的消息
102运营商原因: 未接通,定时器超时
109运营商原因: 协议类错误
127运营商原因: 互通,未规定
147平台原因释放: 被叫侧摘记消息超时,平台释放,一般未收到运营商anm
206平台原因释放: 消息错序