<span id="p7h7b"><nobr id="p7h7b"><meter id="p7h7b"></meter></nobr></span>

            <p id="p7h7b"></p>
            幫助中心 > API

            答卷提交后跳轉并獲取答卷數據

            一、接口功能應用場景

            在問卷設置》跳轉設置》跳轉到指定頁面設置跳轉目標的URL,并且開啟“POST答卷數據到該地址”的功能。就可以實現:填寫者在提交答卷后,跳轉到這個指定的URL頁面,并且系統會同步將該填寫者作答的數據POST到該URL頁面。

            應用場景:在填寫者提交答卷后,可以跳轉到用戶自己的系統頁面,并且作答信息(通過接口獲取到的)作為頁面元素顯示在自己系統頁面。如:考試問卷如果不想使用問卷星提供的標準成績單,可以使用該功能,自己寫一個成績單頁面作為跳轉頁面。

            二、頁面目標地址

            使用頁面目標地址需要注意以下問題:

            1、該地址需保證外網可訪問的狀態;

            2、該地址需要承載填寫者提交答卷后的跳轉落地頁,所以需保證合適的頁面內容;

            3、數據將以表單的方式POST到該地址,需要增加開發代碼以讀取form表單數據的content內容。

            三、POST答卷數據

            POST答卷數據會將每個填寫者作答的數據,在其點擊“提交”時推送到“頁面目標地址”。每個填寫者點擊提交,就會執行一次推送操作;

            1、推送機制

            1) 用戶在問卷設置界面設置跳轉到指定頁面,并勾選“POST答卷數據到該地址”;


            2) 如果需要獲取問卷內容,可同時勾選“POST問卷內容到該地址”。如果未顯示此選項,請聯系客服顧問開通權限;

            3) POST答卷數據到跳轉的指定頁面的方式,與數據推送API方式只能二選一,推薦使用POST答卷數據到跳轉的指定頁面;這種方式的實時效性、穩定性更強;

            用戶在提交完答卷后,問卷星將直接跳轉到指定的頁面并將答卷數據放在POST消息體中;

            跳轉到用戶指定頁面后,用戶指定頁面可以同時讀取到POST的內容;

            2、數據加密

            考慮到答卷數據傳輸的安全性,推送的答卷數據進行了AES加密,加密密鑰可以在設置界面獲取到;

            解密方法如下:

            1)讀取推送的BASE64數據為byte[] encryptedData;

            2)取AES加解密密鑰作為AES解密的KEY

            3) 取byte[] encryptedData的前16位做為IV;

            4)取第16位后的字節數組做為待解密內容;

            5)解密模式使用CBC(密碼塊鏈模式);

            6)填充模式使用PKCS #7(填充字符串由一個字節序列組成,每個字節填充該字節序列的長度);

            7)使用配置好的實例化AES對象執行解密;

            8)使用UTF-8的方式,讀取二進制數組得到原始數據

            示例代碼(C#)

            1. //1)讀取推送的BASE64數據為byte[] encryptedData;
            2. byte[] encryptedData = Convert.FromBase64String(encrypted);
            3. if (encryptedData == null || encryptedData.Length < 17)
            4. return null;
            5. //2)取AES加解密密鑰作為AES解密的KEY;
            6. byte[] key = Encoding.UTF8.GetBytes(aesKey);
            7. //3) 取byte[] encryptedData的前16位做為IV;
            8. byte[] iv = encryptedData.Take(16).ToArray();
            9. //4)取第16位后的字節數組做為待解密內容;
            10. encryptedData = encryptedData.Skip(16).ToArray();
            11. using (var aes = new RijndaelManaged())
            12. {
            13. //5)解密模式使用CBC(密碼塊鏈模式);
            14. aes.Mode = CipherMode.CBC;
            15. //6)填充模式使用PKCS #7(填充字符串由一個字節序列組成,每個字節填充該字節序列的長度);
            16. aes.Padding = PaddingMode.PKCS7;
            17. aes.Key = key;
            18. aes.IV = iv;
            19. var cryptoTransform = aes.CreateDecryptor();
            20. //7)使用配置好的實例化AES對象執行解密
            21. byte[] r = cryptoTransform.TransformFinalBlock(encryptedData, 0, encryptedData.Length);
            22. //8)使用UTF-8的方式,讀取二進制數組得到原始數據
            23. return Encoding.UTF8.GetString(r);
            24. }

            3、推送內容及格式

            1、推送內容存儲在表單(application/x-www-form-urlencoded)的content字段中;
            2、content字段的值為經過aes加密后的base64字符串,解密后的內容包括答卷數據以及問卷數據;

            3、答卷數據:推送內容及格式與數據推送API相同,參見:http://www.xchindia.com/help/help.aspx?helpid=407&h=1

            4、問卷數據:推送內容及格式與問卷開放API[1000001]接口相同,詳細請咨詢客服顧問獲取文檔;

            DEMO

            1、demo地址:

            http://www.xchindia.com/demo/activityredirect.aspx?aes=822861f9c5114dc2bda214cd9567d0dc注:紅色部分為AES解密密鑰

            2、示例代碼(C#):

            1. public partial class demo_activityredirect : System.Web.UI.Page
            2. {
            3. string aeskey = "";
            4. string content = string.Empty;
            5. protected void Page_Load(object sender, EventArgs e)
            6. {
            7. content = Request.Form["content"];
            8. aeskey = Request.QueryString["aes"];
            9. Response.Write("推送的加密內容[content]:" + Receive());
            10. Response.End();
            11. }
            12. //接收推送消息
            13. protected string Receive()
            14. {
            15. try
            16. {
            17. if (!string.IsNullOrEmpty(content) && !string.IsNullOrEmpty(aeskey))
            18. {
            19. content = Wjx.Common.Encrypt.Aes.Decrypt(content, aeskey);
            20. return content;
            21. }
            22. return "讀取內容為空";
            23. }
            24. catch (Exception e)
            25. {
            26. return "出錯啦!\r\n" + e.Message;
            27. }
            28. }
            29. }
            非常感謝您的耐心閱讀,請在下方提供您對本篇幫助的反饋,以便我們持續改進本文。
            已解決 未解決
            長沙冉星信息科技有限公司 版權所有    ICP證:湘B2-20220508    湘ICP備17005436號-1    湘公網安備 43019002000245號
            網站數據來源于問卷星官方數據庫    服務協議    隱私條款    舉報
            久久精品国产精品青草色艺_亚洲欧美一区二区三_亚洲欧洲精品成人久久曰影片_久章草综合精品视频毛片

            
            

                  <span id="p7h7b"><nobr id="p7h7b"><meter id="p7h7b"></meter></nobr></span>

                      <p id="p7h7b"></p>