IOS內購支付伺服器驗證模式

2022-03-02 09:00:18 字數 1015 閱讀 7959

使用者選擇需要購買的產品

使用者選擇需要購買的產品

上述兩種模式的不同之處主要在於:交易的收據驗證,內建模式沒有專門去驗證交易收據,而伺服器模式會使用獨立的伺服器去驗證交易收據。內建模式簡單快捷,但容易被破解。伺服器模式流程相對複雜,但相對安全。

使用者能否忍受3-6s的等待時間

對於第乙個問題,我們有理由相信使用者完全無法忍受,所以採用非同步驗證的方式,伺服器收到客戶端的請求後,就將請求放到mcq中去處理。

在開發過程中,需要測試應用是否能夠正常的進行支付,但是又不能進行實際的支付,因此需要使用蘋果提供的sandbox store測試。store kit不能在ios模擬器中使用,測試store必須在真機上進行。在實際開發過程中,伺服器端通過issandbox欄位標識客戶端傳遞的收據是沙盒環境中的收據還是生產環境中的收據。在提交蘋果審核前,沙盒測試均無問題。提交蘋果審核後,被告知購買失敗,審核未通過。通過查詢日誌發現,客戶端傳送的交易收據為沙盒收據,但是issandbox欄位卻標識為生產環境。

那麼如何自動的識別收據是否是sandbox receipt呢?

識別沙盒環境下收據的方法有兩種:

1.根據收據字段 environment = sandbox。

2.根據收據驗證介面返回的狀態碼,如果status=21007,則表示當前的收據為沙盒環境下收據, t進行驗證。

21002 收據資料不符合格式

21003 收據無法被驗證

21004 你提供的共享金鑰和賬戶的共享金鑰不一致

21005 收據伺服器當前不可用

21006 收據是有效的,但訂閱服務已經過期。當收到這個資訊時,解碼後的收據資訊也包含在返回內容中

21007 收據資訊是測試用(sandbox),但卻被傳送到產品環境中驗證

21008 收據資訊是產品環境中使用,但卻被傳送到測試環境中驗證

jpg改rar

蘋果內購 伺服器端驗證

針對蘋果內購,看了 大量的 其他blog和閱讀官方文件才發現,其實 蘋果內購伺服器做的工作很少,此文件 寫於2018年10月,只針對此時蘋果返回的資料結構 內容解析。基本上所有的 操作都可以再前端完成操作,包括對支付憑證的驗證,但是如果在客戶端驗證憑證可能存在被篡改的危險,伺服器去重驗證和加款,是建...

php蘋果內購支付驗證

param string receipt data 付款後憑證 return array 驗證是否成功 21002 receipt data域的資料有問題 21003 receipt無法通過驗證 21004 提供的shared secret不匹配你賬號中的shared secret 21005 re...

ios內購二次驗證安全性問題 iOS內購之二次驗證

開篇 關於ios內購整體流程網上能找到很多。我抽絲剝繭,著重說一下二次驗證及收據回傳的資料問題。二次驗證 具體區別不一一表述,可以檢視下面的鏈結。ios二次驗證兩種做法的區別 我要著重說的是二次驗證的實際做法和收到的資料是什麼。一 二次驗證具體如何驗證 從沙盒中獲取交易憑證 收據 nsdata re...