更新时间:2025-08-11 GMT+08:00
分享

公共依赖

使用样例时需要引用以下依赖文件:

data.php

<?php
/* please replace the appId and secret, when you use the demo. */
// base_url、appid、secret购买服务时下发,请替换为实际值
$click2call_appid = '*****';
$click2call_secret = '*****';
$callnotify_appid = '*****';
$callnotify_secret = '*****';
$callverify_appid = '*****';
$callverify_secret = '*****';
$t_transmit_appid = '*****';
$t_transmit_secret = '*****';
/* please replace the IP and Port, when you use the demo. */
$base_url = 'https://{domain}:{port}';
//*************************** The following constants do not need to be modified *********************************//
function getBaseUrl() {
    global $base_url;
    return $base_url;
}
function getClick2Call_AppId() {
    global $click2call_appid;
    return $click2call_appid;
}
function getClick2Call_Secret() {
    global $click2call_secret;
    return $click2call_secret;
}
function getCallNotify_AppId() {
    global $callnotify_appid;
    return $callnotify_appid;
}
function getCallNotify_Secret() {
    global $callnotify_secret;
    return $callnotify_secret;
}
function getCallverify_AppId() {
    global $callverify_appid;
    return $callverify_appid;
}
function getCallverify_Secret() {
    global $callverify_secret;
    return $callverify_secret;
}
function getTTransmit_AppId() {
    global $t_transmit_appid;
    return $t_transmit_appid;
}
function getTTransmit_Secret() {
    global $t_transmit_secret;
    return $t_transmit_secret;
}
?>

util.php

<?php
/**
 * buildAKSKHeader
 * @param string $appKey
 * @param string $appSecret
 * @return string
 */
function buildAKSKHeader($appKey, $appSecret) {
    date_default_timezone_set("UTC");
    $Created = date('Y-m-d\TH:i:s\Z'); //Created
    $nonce = uniqid(); //Nonce
    $base64 = base64_encode(hash_hmac('sha256', ($nonce . $Created), $appSecret, TRUE)); //PasswordDigest
    
    return sprintf("UsernameToken Username=\"%s\",PasswordDigest=\"%s\",Nonce=\"%s\",Created=\"%s\"", $appKey, $base64, $nonce, $Created);
}
/**
 * createOptions
 * @param string $method
 * @param string $xaksk
 * @return string[][][]
 */
function createOptions($method, $xaksk, $content) {
    // 请求Headers
    $headers = [
        'Content-Type: application/json;charset=UTF-8',
        'Authorization: AKSK realm="SDP",profile="UsernameToken",type="Appkey"',
        'X-AKSK: ' . $xaksk
    ];
    
    $context_options = [
        'http' => [
            'method' => $method, // 请求方法为GET
            'header' => $headers,
            'content' => $content,
            'max_redirects' => '0', // 关闭重定向
            'ignore_errors' => true // 获取错误码,方便调测
        ],
        'ssl' => [
            'verify_peer' => false,
            'verify_peer_name' => false
        ]
    ];
    return $context_options;
}
?>

相关文档