<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## **簽名URL請求** 必須向 AWS PaaS提出的API請求進行簽名,簽名信息中必須包括 AWS PaaS可以用來對請求者進行身份驗證的信息,該信息由**AWS CC的秘鑰**服務提供。 AWS PaaS云服務的所有請求已全面啟用SSL。如果您采取了私有部署,為了獲得額外的安全性,建議使用 HTTPS 安全套接字層 (SSL) 傳輸URL請求。SSL 可以加密傳輸,從而保護請求或響應,避免數據在傳輸過程中被查看、篡改。 ### **URL請求的簽名過程** 簽名的目標是由開發者在API客戶端計算出系列參數組合的哈希值,將產生的信息添加到URL請求的`sig`參數。 1. 獲得秘鑰 2. 計算簽名 #### **1.獲得秘鑰** 這里介紹API請求中簽名 ( sig ) 的生成方法。簽名需要開發者先在控制臺[創建API密鑰](https://docs.awspaas.com/reference-guide/aws-paas-api-guide/http/get_secret.html),獲得訪問憑證 ( access\_key ) 和私鑰 ( secret ),這里我們假設 ~~~ access_key = 'Salesforce#1' secret = '0a799959-8327' ~~~ #### **2.計算簽名** 例如API請求參數如下(這是一個 app.install.check API): ~~~ { "timestamp":"1439279383630", "sig_method":"HmacMD5", "cmd":"app.install.check", "appId":"com.actionsoft.apps.notification", "access_key":"Salesforce#1", "format":"json" } ~~~ **1\. 按參數名進行升序排列** 準備參數。范圍:cmd,access\_key,timestamp,format,sig\_method和業務參數(見API輸入參數文檔),其中不包括空值參數 排序后的參數為: ~~~ { "access_key":"Salesforce#1", "appId":"com.actionsoft.apps.notification", "cmd":"app.install.check", "format":"json", "sig_method":"HmacMD5", "timestamp":"1439279383630" } ~~~ **2\. 構造簽名串** 以`secret`字符串開頭,追加排序后參數名稱和值,格式:`secret`key1value1key2value2... 應用到上述示例得到簽名串為(注意:`簽名串中間沒有空格分割`): `0a799959-8327`access\_key`Salesforce#1`appId`com.actionsoft.apps.notification`cmd`app.install.check`format`xml`sig\_method`HmacMD5`timestamp`1439277618461` **3\. 計算簽名** 計算被簽名串加密的簽名。 * 將API密鑰的私鑰 (secret) 作為key,生成被簽名串的 HmacMD5簽名 * 將簽名得到的16字節依次轉化為大寫的16進制字符串,如果字符串長度為1,在前補0,結果為32位字符串,例如:050CC7A1C04487EAE1197C31D28B7E37 **4\. 添加簽名** 將計算的簽名值以`sig`參數名,附加到URL請求中。一個典型的API請求如下所示 **這是一個 app.install.check 的API請求** ~~~ https://b2b.awspaas.com/openapi?timestamp=1439277618461 &sig_method=HmacMD5 &cmd=app.install.check &appId=com.actionsoft.apps.notification &access_key=Salesforce#1 &format=json &sig=DE90336BEDB0C3D3FE6DEE2FF0DF11AC ~~~ ## **案例(語言:PHP)** ~~~ <?php /** * Created by PhpStorm. * User: liub * Date: 2019-8-8 * Time: 8:33 * AWS OpenAPI 構建簽名及請求驗證 */ class awsApi_util { static function http_api($sigArr) { //處理aws平臺簽名 - 公用參數 $access_key = 'php_accesskey'; $secret = 'php_secret'; //公共參數 $sigArr['timestamp'] = self::getMillisecond(); $sigArr['format'] = "json"; $sigArr['access_key'] = $access_key; $sigArr['sig_method'] = "HmacMD5"; //按key排序 ksort($sigArr,SORT_NATURAL); //循環構建簽名字符串 $sigStr = $secret; foreach($sigArr as $k=>$v){ if(is_array($v)){ } $sigStr .= $k.$v; } //生成HmacMD5簽名 $sig = hash_hmac('md5', $sigStr, $secret); $sig = strtoupper($sig); $sigArr['sig'] = $sig; //基于curl發送請求獲取結果 //構建url $url = "http://localhost:8088/portal/openapi?"; $urlParams=null; foreach($sigArr as $k=>$v){ $urlParams .= "&".$k."=".urlencode($v); } $urlParams = ltrim($urlParams, "&"); $url = $url.$urlParams; // 1. 初始化 $ch = curl_init(); // 2. 設置選項,包括URL curl_setopt($ch,CURLOPT_URL,$url); //設置CURLOPT_RETURNTRANSFER將curl_exec()獲取的信息以文件流的形式返回,而不是直接輸出。 curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,0); // 3. 執行并獲取HTML文檔內容 $output = curl_exec($ch); if($output === FALSE ){ echo "CURL Error:".curl_error($ch); } // 4. 釋放curl句柄 curl_close($ch); $output_info = json_decode($output, true); //json解析 return $output_info; } //獲取毫秒時間戳 static function getMillisecond() { list($microsecond , $time) = explode(' ', microtime()); //' '中間是一個空格 return (float)sprintf('%.0f',(floatval($microsecond)+floatval($time))*1000); } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看