程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> ios-iOS iap 服務器驗證問題

ios-iOS iap 服務器驗證問題

編輯:編程綜合問答
iOS iap 服務器驗證問題

如果交易完成後,向自己的服務器進行二次驗證(服務器對用戶增值操作)的時候,客服端突然斷網了怎麼辦啊,大家是怎麼解決的,有什麼最好的解決辦法嗎。
順便再問下,服務器代碼使用的是CURL方式向蘋果服務器進行驗證,關掉SSL驗證安全嗎?發現不關掉的話會驗證失敗,保存服務器日志發現有error:14090086:SSL 這樣的錯誤。

最佳回答:


找到解決辦法了,查了大把資料,現在總結一下

第一個問題,現在的解決辦法是:
transaction持久化,將加密的Base64字符串保存到本地,每次用戶登錄的時候自動重新驗證。當二次驗證時,用戶的客服端斷網,就進入重試狀態。如果二次驗證時,自己的服務器斷網,curl會得到一個"couldn't connect to host"這樣的錯誤,就服務器端重試。對於網絡超時或無法找到主機的都將transaction保存下來就行了,由於http是基於tcp/ip協議的服務層次應用,所以對驗證通過或者失敗的就直接移除掉就行了。
那麼問題來了,用戶在二次驗證超時後,刪掉了app,那麼就完了。。。所以還沒有找到萬無一失的方法。

第二個問題:
之所以curl報“error:14090086:SSL”這樣的錯誤,是因為curl會默認進行SSL雙向認證,由於我服務器沒有證書,所以就報錯了。這時就需要給curl設置這樣的option:
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, '0');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, '0');
才能正常工作。其實也沒有想像的那麼完全不安全。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved