導航:首頁 > 編程語言 > ios內購php

ios內購php

發布時間:2023-02-15 05:57:35

A. iOS 內購(IAP) 簡單總結

IAP(In-App Purchase),是指蘋果App Store的應用內購買,是蘋果為APP內購買虛擬商品或服務提供的一套交易系統。

在APP內需要付費使用的產品功能或虛擬商品、服務。例如在斗魚上充魚翅、在視頻APP上沖會員、在王者農葯里買皮膚等....這些購買的商品或服務只能在APP內消費使用的適用IAP。反之,在京東或淘寶買東西、在滴滴上打車等...這些購買的商品或服務只能在APP外使用的情況是不適用IAP的。

IAP是一套商品交易系統,而非簡單的支付系統。每一個購買項目都需要在App的itunes connect後台創建一個商品,提交給蘋果審核,審核通過後,購買項目才會生效。
在創建IAP商品時,主要有四中類型:

3.2.2 商品的購買

B. iOS實現App內購步驟以及注意事項

1、在開發者賬號設置協議、打開itunes Connect,選擇協議,稅務和銀行業務。

2、點擊Request Contracts(申請合同)下面的,request,點了幾個確定和下一步後回到主界面。

Contact info:聯系人信息

Bank info:銀行信息

Tax info:稅務信息

3、首先設置聯系人信息,點擊Contact info下面的 Set up(設置),點擊Add New Contract(增加先的聯系方式)。

4、填寫詳情,填寫完成後點擊save(保存)。

5、在下面的所有項目中都選擇剛剛填寫的信息,選擇後點擊右下角的done(完成),你可以創建很多聯系人,在不同的職務選擇不同的聯系人。因為我是獨立開發,所以我全部填寫的我自己。

6、設置銀行信息,點擊Back info下面的Set up,彈出頁面,點擊Add Bank Account(添加銀行賬號)

6.1、選擇china,後點擊next。

6.2、填寫了CNAPS Code後點擊Next

查詢現代化支付行號

6.3、會彈出你的銀行卡開戶地的信息,確認一下點擊next

6.4、填寫銀行卡信息,注意:戶主名只能寫拼音,比如:李三(Li San)。填完後點擊Next

6.5、彈出確定信息頁面,在下面打鉤後點擊Save

6.6、點擊了save後就可以在彈出的頁面中選擇剛剛填寫的卡了。選擇後點擊Save

7、設置稅務信息,點擊Tax info下面的Set up,此時聯系人信息已經變成可以編輯狀態,銀行信息為瀏覽狀態。

7.1、彈出的界面中,稅務分為三種 U.S Tax Forms: 美國稅務、Australia Tax Forms:澳大利亞稅務、Canada Tax Forms: 加拿大稅務

這里我選擇的美國稅務,就是第一個

彈出第一個選擇,點擊submit(提交)後,彈出第二個選擇

彈出第二個選擇,選擇後點擊submit

彈出第三個頁面,填寫的資料後點擊提交,記得勾選頁面上的幾個復選框

在提交成功後,狀態就變成processing成功

1.進入到項目的APP信息頁面,點擊功能,在彈出的頁面點擊App內購買項目後面的➕。

2.在彈出的新對話框中選擇你需要哪一種服務,由於我的項目需要兌換成消耗的金幣,所以我選擇第一個。選擇後點擊創建。

3.開始填寫內購項目信息。填完後點擊右上角的存儲(所有信息必須填寫完整)。

4.點擊存儲後,內購列表就會有剛剛創建的內購條目。

1.點擊用戶和職能

2.點擊沙盒測試員,然後點擊左邊的➕按鈕

3.設置好信息點擊右上角存儲就可以,記住裡面的郵箱和密碼用於支付的時候登陸Apple id

注意:

1.必須用真機測試。

2.測試的時候必須退出自己的apple ID。彈出頁面後登陸沙盒的測試apple id。

// 1.首先導入支付包#import Storekit

http://www.cocoachina.com/bbs/read.php?tid-1694080.html

https://blog.csdn.net/darling_shadow/article/details/51538267 [iOS]應用內支付(內購)的個人開發過程及坑!

http://www.jianshu.com/p/86ac7d3b593a APP內購集成詳解

C. iOS 內購漏單問題解決參考方案

不久前,有用戶反映,大概意思是這樣:蘋果扣款成功了,但是沒有發放應得的內購產品,這錢花哪去了?

這是一個嚴重的漏單問題,已經得到了及時解決,現寫篇文章總結一下。

IAP:是指In-App Purchase,顧名思義,一種應用內的支付(內購)。但IAP不是特指蘋果的內購支付方式,應用也可以有其自己的內購支付方式。

這里來說一下Apple的IAP。下圖是蘋果內購的支付流程圖。

支付流程解釋

1.客戶端向Appstore請求購買產品,Appstore驗證產品成功後,從客戶端的Apple賬戶中扣費。

2.Appstore向客戶端返回一段receipt-data(票據),裡面記錄了本次交易的證書和簽名信息。

3.客戶端向我們可以信任的伺服器(後台)提供receipt-data

4.伺服器對receipt-data進行一次base64編碼

5.把編碼後的receipt-data發往itunes.appstore進行驗證

6.itunes.appstore返回驗證結果給伺服器

7.伺服器對商品購買狀態以及商品類型,向客戶端發放相應的道具與推送數據更新通知

以上七個步驟實際上是一個很安全的支付流程了。那問題會出在哪裡呢?

IAP built-in Model(本地驗證) :此種方式跳過來3-7步,在第2步中拿到票據直接向itunes.appstore請求驗證票據,根據票據的結果來修改數據。有一些單機游戲因為不涉及後台伺服器會採取此種方式,但由此單來的不安全也很明顯,比如一些越獄的手機會很容易對此進行一些數據操作。這里暫不做討論。

IAP Server Model(伺服器驗證) :如果把數據放在伺服器做校驗(如實走完1-7的流程),就不用擔心客戶端出現偽造票據等問題。但是這樣還會出現問題。

想像一下,如果得到票據說明蘋果已經扣款成功,就在這時向伺服器發送票據驗證的時候出現來異常,這個時候可能網路突然斷了,未把票據發送的伺服器驗證,導致明明已經扣了款,卻沒有收到相應的內購產品,出現了漏單問題。

所以如何解決此問題?解決流程如下

D. Flutter iOS 蘋果IAP(內購)實現步驟及問題總結(全網最全)

點擊 「協議、稅務和銀行業務」

內購用的是付費應用程序,先簽署《付費應用程序協議》,同意後狀態變更為「用戶信息待處理」,等待審核。

狀態更改完畢後,點擊「開始設置稅務、銀行業務和聯系信息」。
(1)添加銀行賬戶,按照要求填寫相關內容即可。

(2)選擇報稅表,並填寫。所有與 Apple 有商業合作者必選都是美國,若有其他需求,可以多選。

繼續填寫,首先認證公司基本信息,選擇所有人類型,確認無誤後認證條款處打對勾

Part I 部分,繼續核對公司相關信息,選填內容可不填。

Part III 部分,簽署稅務條約,設置利益限制條款的種類,選填內容可不填。此部分如果需要可勾選上下圖勾選框,不需要可不勾選,我們這個項目沒有用到part III 部分,所以沒有勾選。

Part XXX 部分,確認之前填寫的信息,勾選完畢後,提交

(3)填寫聯系信息,共5個。高級管理、財務、技術、法務、營銷。只需要提供5個人的基本信息即可。

https://appstoreconnect.apple.com/apps/1604297713/appstore/addons?m=

只可使用一次的產品,使用之後即失效,必須再次購買。

示例: 釣魚 App 中的魚食。

只需購買一次,不會過期或隨著使用而減少的產品。

示例: 游戲 App 的賽道。

允許用戶在固定時間段內購買動態內容的產品。除非用戶選擇取消,否則此類訂閱會自動續期。

示例: 每月訂閱提供流媒體服務的 App。

允許用戶購買有時限性服務的產品。此 App 內購買項目的內容可以是靜態的。此類訂閱不會自動續期。

示例: 為期一年的已歸檔文章目錄訂閱。

App 內購買項目的截屏,即所售項目的示意圖。例如,如果 App 內購買項目是一本圖書,您可以提交圖書的截屏。您也可以提交購買頁的截屏。該截屏僅用於 Apple 審核,不會在 App Store 中顯示。
截屏要求如下:

iOS 至少需要 640 x 920 像素

Apple tvOS 需要 1920 x 1080 像素

macOS 需要 1280 x 800 像素

App 審核圖像上傳後,可以替換,但無法移除。當您的 App 內購買項目處於審核中時,您無法更新截屏。

https://appstoreconnect.apple.com/access/testers

沙箱賬號是不能直接在App Store進行登錄的,只能在點擊了購買商品之後,在彈出的登錄框進行登錄 。

驗證是否已登錄沙箱測試賬號:

設置--iTunes Store與App Store,頁面拉到最底部,會看到沙箱賬戶項會列出你已登錄的沙箱測試賬號!

操作方法一:打開App Store應用首頁滑到最下方--選中AppleID--注銷
操作方法二:設置--iTunes Store與App Store--選中AppleID--注銷

checks if the client can make payments(檢測App是否能支付)

getAvailablePurchases
Get all non-consumed purchases 獲取未消費的商品

列印信息查詢;

原因:
沒有先執行getProcts,直接執行requestPurchase方法,要先拉取商品列表,再執行購買操作.

問題描述;

1.漏單必須要處理,玩家花RMB購買的東西卻丟失了,是絕對不能容忍的。所謂的漏單就是玩家已經正常付費,卻沒有拿到該拿的道具。

解決:只要購買成功,便將購買記錄(receipt等賬單信息)保存下來,然後將賬單信息傳送給我們游戲伺服器,游戲伺服器獲得賬單後,和蘋果伺服器驗證,賬單有效的話,回饋給游戲伺服器處理,游戲伺服器處理後,返回給游戲客戶端處理,處理完畢,將本地保存的購買記錄刪除。

https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html 官方文檔:向蘋果校驗支付憑證

21000 App Store無法讀取你提供的JSON數據
21002 收據數據不符合格式
21003 收據無法被驗證
21004 你提供的共享密鑰和賬戶的共享密鑰不一致
21005 收據伺服器當前不可用
21006 收據是有效的,但訂閱服務已經過期。當收到這個信息時,解碼後的收據信息也包含在返回內容中
21007 收據信息是測試用(sandbox),但卻被發送到產品環境中驗證 【請求sandbox校驗支付憑證】
21008 收據信息是產品環境中使用,但卻被發送到測試環境中驗證

消耗類型: 例如:金幣、道具等。
非續訂訂閱: non-renewable subscription 例如:VIP

您的首個 App 內購買項目必須以新的 App 版本提交。請創建您的 App 內購買項目,然後前往 App 的「App Store」頁,從「App 內購買項目」中進行選擇,點按「提交」。 了解更多

在上傳二進制文件並提交首個 App 內購買項目以供審核後,您可以使用下表提交其他 App 內購買項目。

唐巧-iOS應用內付費(IAP)開發步驟列表

未完~待續

當使用內購購買過商品之後沒有把這個交易關閉,所以再次去購買商品後就會調用以前已經購買成功的交易去購買因為已經購買過,才會有這個提示

原因:添加內購項目時,信息填寫不完整,app審核圖像未上傳

處理方法:上傳app審核圖片( 合適的尺寸 ),點擊提交,狀態改為正在准備審核中。

這個是內購選擇類型不匹配原因導致。

購買成功之後,Apple會返回以下四個數據給應用

Reference

Review the updated Paid Applications Schele.

遊客身份解決方案:即不登錄也要能購買

1)伺服器端做一個蘋果審核機制,審核期間遊客身份可以進行一切行為,一旦審核通過,修改服務端即可達到強制用戶登錄進行內購買的目的(這個有點。。。)

2)遊客可以進行內購買,購買時以設備UUID為准,生成一個遊客賬號,將購買信息保存在伺服器和本地,當用戶登錄正式賬戶後判斷此設備是否進行過內購,有的話提示用戶將遊客身份購買的權益與現有賬號綁定,如果綁定,遊客權益則遷移到正式賬戶,如果不遷移,則遊客身份和正是賬戶是兩個獨立賬戶,正式賬戶不享有遊客身份的權益(我用的這個)

內購遊客模式解決方案
iOS內購規則

E. iOS蘋果內購(詳細步驟)

iOS蘋果內購(詳細步驟)
iOS 內付費(in-app purchase)--非消耗品的購買與恢復
恢復購買官方地址
蘋果內購商品信息獲取
Unity蘋果(iOS)內購接入(Unity內置IAP)
# Unity3d發布IOS(包含u3d自帶IAP內購)的流程-小白篇(三)-u3d配置ios內購部分

每次支付行為或每筆交易被認為是一個SKPaymentTransation,只有當SKPaymentTransation被finishTransaction:,這次支付(交易)行為才算是正常結束了。即使這次支付途中被中斷,其實也並沒有丟失。假設支付沒有完成 App 就退出了(比如崩潰),那麼當下次 App 重啟之後,只要設置了監聽addTransactionObserver:,之前被中斷的支付就會接著進行。

第1步,這個過程中 App 進程因為某種原因被 kill 了,其實支付行為還在系統後台進行著,蘋果自己做的,很有可能扣款成功。但是這時候沒法為用戶充值虛擬貨幣。
第2步,App 端與自己伺服器端通信失敗;自己伺服器端與 AppStore 伺服器之間的通信失敗。

針對第一種情況,可以在 App 一啟動就設置監聽,如果有未完成的支付,則會回調- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions;這個方法,在這個方法里調用介面充值。
至於第二種情況,App 端需要做介面重試,設置一個重試的邏輯。

在發起支付請求之後,蘋果返回商品列表,先請求伺服器下單介面,成功之後,將訂單信息保存在鑰匙串,然後發起支付,在支付狀態的回調當中, 成功了就去做伺服器的驗簽操作,驗證成功,關閉事物,並將訂單信息刪除,支付完成
app啟動時監聽掉單情況, 如果有掉單情況,回走事物更新的回調,然後再回調里,通過鑰匙串拿出訂單相關信息,然後獲取支付憑證,重新向伺服器發起驗單的流程。
鑰匙串保存訂單信息作用:為了拿到訂單的相關信息作為參數來請求伺服器驗簽介面。

F. iOS蘋果內購(詳細步驟)

1.進入開發者平台,點擊如下圖所示:

設置

2.查看付費同意條款

添加這3個信息

4.添加銀行賬戶

5.選擇報稅表

默認美國

6.根據報稅表填寫報稅情況,根據自己實際情況,在這里我們需要選擇NO,後面選了幾個勾,以為可以,後面報錯了!

三者必須填寫 注意 :這里可以隨便填寫。

7.填寫聯系人,這幾個部分可以填寫同一人

2.選擇內購項目類型

根據功能選擇

3.設置產品價格及名稱

4.顯示信息

5.審核信息

注意:這些信息都要填完整,否則會提示元數據丟失。

內購項目

添加賬號

在需要購買的控制器內

四.注意事項
1.內購必須用真機測試
2.測試時必須退出App Store自己的Apple ID,登錄沙盒的測試Apple ID .
3.本身請求美國伺服器就慢,為防止審核人員誤解,我們需要在購買時載入動畫。

G. iOS 內購掉單 補單 解決整理

1、蘋果內購的流程圖(由伺服器校驗蘋果單據)

①原生app發起內購
②->支付完成後可獲得一個單據
③->獲取單據後調用我們自己後台伺服器介面(伺服器介面調用蘋果介面進行校驗,然後處理修改賬號金額的操作)
④->調用完後台伺服器介面後返回結果給app進行數據刷新

2、掉單出現的位置

①就目前來說,因為我是用的沙盒環境下測試,所以沒有真實的付款流程,所以①這塊發生丟單情況的還沒遇到過,網上有小夥伴反映在實際支付過程中①過程可能產生丟單,明明支付了錢,但是在app收不到內購充錢成功的回調...這里不做探究


對app開發來說,最常見丟單情況出現在③的位置,因為在我們獲取到內購成功的單據後,需要我們自己再自行調用伺服器介面,如果用戶在這時候關網、強行關閉app,就中斷調用過程!

我們自己後台伺服器介面返回超時

///待續...

H. iOS蘋果內購(詳細步驟)

1. iOS蘋果內購(詳細步驟)

2. iOS開發-微信/支付寶/內購封裝

3. ios 內購詳解(2019)

4. iOS內購規則

5. iOS開發支付篇——內購(IAP)詳解

6. ios 記錄支付寶集成遇到的坑及解決方法

7. iOS集成封裝三方支付支付寶、微信、銀聯、Apple Pay

8. iOS-H5支付(微信、支付寶)原生封裝

9. iOS支付封裝(微信/支付寶)

閱讀全文

與ios內購php相關的資料

熱點內容
usb藍牙android 瀏覽:405
伺服器顯示error1什麼意思 瀏覽:708
python代碼精簡 瀏覽:457
文件加密了怎麼找到了 瀏覽:193
jellyfin插件怎麼選擇主伺服器 瀏覽:836
asp用戶注冊源碼 瀏覽:48
什麼是照片壓縮文件 瀏覽:392
java調用js代碼 瀏覽:979
崑山市民app怎麼修改身份信息 瀏覽:779
php登陸次數 瀏覽:744
python字元轉成數字 瀏覽:822
海川用的是什麼伺服器 瀏覽:376
口才是練出來的pdf 瀏覽:458
雲伺服器哪個公司性價比高 瀏覽:517
源碼論壇打包 瀏覽:558
php怎麼做成word 瀏覽:692
python批量生成密鑰 瀏覽:492
程序員要不要考社區人員 瀏覽:150
app的錢怎麼充q幣 瀏覽:814
android銀行卡識別 瀏覽:757