回拨开放平台
签名说明
呼叫请求
话单回调
录音下载
-
+
首页
签名说明
### 1. header > header参数参与签名的有: ak/timestamp/nonce/signature-method > 把以上4个参数值按顺序以英文句号(点)[.]拼接为签名字符串,如: ak:"AKID1234567890", timestamp:"1686724616", nonce:"nonce123", signature-method:"HmacMD5" 拼接后的字符串为:"AKID1234567890.1686724616.nonce123.HmacMD5" ### 2. body > body 所有参数参与签名 > 把body参数以键名排序后, 以key1value1key2value2...的形式拼接在一起,如: callee_number:"138xxx8888", caller_number:"136xxx6666", callback_url:"http://xxx/callback", extends:"", 字典序后拼接后的字符串为:"callback_urlhttp://xxx/callbackcallee_number138****8888caller_number136****6666extends" ### 3. 组装加密字符串 > 把header的签名字符串跟body的签名字符串用英文句号(点)[.]拼接,得到需要签名的字符串: "AKID1234567890.1686724616.nonce123.HmacMD5.callback_urlhttp://a.com/callbackcallee_number138****8888caller_number136****6666extends" ### 4. 按照指定的方式(signature-method)签名: > //注意: 签名为十六进制小写字符串, 有些可能会返回二进制. #PHP: ```php $sk = "客户私钥"; $requestSignature = hash_hmac('md5', $sign_str, $sk, false); ``` #JS: ```javascript let sk = "客户私钥"; let signature = CryptoJS.enc.Utf8.parse(sign_str); let secretByteArray = CryptoJS.enc.Utf8.parse(sk); let signatureBytes = CryptoJS.HmacMD5(signature, secretByteArray); let requestSignature = CryptoJS.enc.Hex.stringify(signatureBytes); ```
照坤
2025年7月23日 10:38
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码