成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為你的應用添加內置收費 In App Purchase

移動開發 iOS
本文講闡述如何為你現有的應用或游戲添加程序內購買(In App Purchase)功能。閱讀前提:假設了你擁有一定的iPhone SDK開發基礎,和App Store實踐經驗。

自從09年10月16日蘋果發送給所有開發者的那一封信,通知了程序內購買將可用于免費應用,我認為這也宣告了pTE版的時代結束。

成千上萬的免費版的軟件或游戲,將作為限制了功能的完整版免費發售,如果用戶覺得有意購買,可以直接解鎖完整版的功能或購買附加內容。

本文講闡述如何為你現有的應用或游戲添加程序內購買(In App Purchase)功能。

閱讀前提:假設了你擁有一定的iPhone SDK開發基礎,和App Store實踐經驗。

你的程序需要***的Bundle ID, 如果已經發布的程序使用了通配符,那么就不能直接添加該功能。如果擁有了***的ID,請在program portal中添加你的app id,允許程序使用內購買(Enable In App Purchase)。

在設計好你的程序內購買的功能以后,首先需要定義元數據。來到iTunes Connect,在Manage Your In App Purchases中為你的程序添加一個程序內購買的商品。

上面***個部分是添加的內部信息。參考名稱,ID,類型,和價格。以及各種本地化信息。

這里簡單說一下類型的選擇,其他信息,以及In App Purchase支持什么類型的商品請查看Getting Started with In App Purchase

Non-consumable 默認類型,非消耗品,具有持久性,特點是一次性購買,可用在所有設備。例如解鎖游戲的儲存關卡功能。

Consumable 消耗品,用完或使用后消失,可多次購買,不能用在所有的設備,例如游戲中的血瓶或技能書。

Subscription 訂閱,和消耗品一樣,除了可以在設備之間共享。

創建購買流程

大致可以分為十個步驟:

驗證App Store存取權限 這樣做是因為,家長控制或一些公司的配置文件阻止了此功能,使用支付隊列的查詢功能canMakePayments來確定用戶是否有權限購買,返回值 YES代表可以購買/NO代表沒有權限購買。

載入目錄 載入儲存在本地或者遠程的商品目錄。

獲得商品本地化信息 程序向App Store發起查詢請求獲得目錄中商品的本地化信息:

  1. myPossibleProds = [NSSet setWithObjects: @”myProd1”, @”myProd2”, @”myProd3, nil]; 
  2. myProdRequest = [[SKProductsRequest alloc] initWithProductIdentifiers: myPossibleProds]; 
  3. myProdRequest.delegate = myProductsRequestDelegate; [myProdRequest start];  

程序接收來自App Store的回應: -(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response response包含可能的信息 response.products //產品信息 response.invapdProductIdentifiers //錯誤的產品標示符 錯誤的產品可能由下面的原因導致:

    商品未在 iTunes Connect中錄入。

    商品沒有選擇“Cleared for Sale”。

    商品還沒有傳播到所有服務器。

創建商品信息 前面的步驟獲得了產品信息的數組用以呈現:

  1. myAvailableProductsArray = response.products; 
  2. for (SKProduct* aProduct in myAvailableProductsArray) { 
  3. diplayTitle = aProduct.locapzedTitle; 
  4. displayDesc = aProduct.locapzedDescription; 
  5. displayPrice = aProduct.price; 

呈現商品信息 在UI中顯示前面獲得的信息

請求支付

  1. myPayment = [SKPayment paymentForProductIdentifier: selectedProdID userInfo: nil];  
  2. myPayment = [SKPayment paymentForProduct: selectedProduct userInfo: nil]; 

然后提交到隊列

  1. defaultPaymentQueue = [SKPaymentQueue defaultQueue]; [defaultPaymentQueue addTransactionObserver: myObserver]; [defaultPaymentQueue addPayment: myPayment];  
  2. [defaultPaymentQueue addPayment: myRequest];  
  3. - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions 

驗證支付的事務

  1. for(SKPaymentTransaction *aTransaction in transactions) {  
  2.        switch (aTransaction.transactionState )  
  3.            { 
  4.             // 商品進入購買流程 
  5.             case SKPaymentTransactionStatePurchasing: ... break;  
  6.             // 成功購買商品  
  7.             case SKPaymentTransactionStatePurchased: ... break;  
  8.             // 已經購買過該商品  
  9.             case SKPaymentTransactionStateRestored: ... break;  
  10.             // 用戶取消交易  
  11.             case: SKPaymentTransactionStateFailed ... break;  
  12.            } 

 

    Used to vapdate e-commerce transaction

    Cryptographically signed chunk of data

    Contains information about the purchase

    Can vapdate using Web-based API

收到交易回執以后可以傳送到你的服務器處理該交易。

你的服務器可以向蘋果發送交易驗證信息。 蘋果的交易驗證地址:https://buy.itunes.apple.com/verifyReceipt 驗證數據格式:{ receipt-data : &helpp;} 蘋果的返回值如果是{ status : 0 } 那么交易是正確,如果返回任何其他值 { status : any_other_value } 交易就是不成立。 你的服務器收到蘋果的驗證成功信息以后,返回給應用程序類似于解鎖功能等消息。

解鎖內置物品火提供遠程存取地址 需要注意的地方

    用戶可能隨時退出程序。

    Store Kit 的交易隊列是持久化的。

    交易是持久化的。

    驗證存取。

    移除交易。

 

  1. [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; 

儲存購買 需要將非消耗的購買記錄在服務器上,以供用戶更換設備或刪除程序以后重新安裝時再次解鎖功能。

提供物品恢復 前面的代碼中,已經購買過該商品的處理就是直接解鎖。 defaultPaymentQueue = [SKPaymentQueue defaultQueue]; [defaultPaymentQueue restoreCompletedTransactions];

測試沙盒環境

只供給測試用戶,并且設備上才有效,不能使用模擬器測試。

可以為每個國家的商店添加測試帳號。

不能用來測試其他的iTunes Store特性。

需要為每個測試添加***的email地址,可以考慮使用+

payam+usa@example.com—測試美國的商品

payam+uk@example.com—測試英國的商品

payam+jp@example.com—測試日本的商品

測試步驟,需要在設備的設置菜單中iTunes Store登出原有帳戶。

然后不要在設置菜單中登錄測試帳號,而是直接打開需要測試的程序進行測試。

在這之前需要在iTunes Connect的Manage Users菜單中添加In App Purchase測試用戶。

財務報表

收入和應用程序同樣的規則

你獲得總收入的70%。

支付日程,使用稅,報表等全部都一樣。

報表

一樣的報表格式。

販賣的標示符欄顯示物品的產品ID。

所有者標示符欄顯示程序的ID。

責任編輯:閆佳明 來源: cocoachina
相關推薦

2013-09-09 16:11:16

iOS應用內置付費IAP總結

2013-09-09 13:57:27

iOS應用內置付費In-App Purc

2013-09-09 14:26:25

iOS應用內置付費In-App Purc

2012-02-22 16:02:12

2014-12-09 10:50:11

2011-04-25 09:04:14

應用商店蘋果

2013-07-05 13:48:47

App

2013-09-05 15:12:09

iOS應用內置付費In-App Purc

2012-01-05 09:19:25

iOSApp應用

2020-12-20 19:26:20

LVMFedoraLinux

2012-07-30 09:41:04

Android搜索功能

2010-11-04 09:57:38

In App PurcAndroid 2.3Android

2018-01-04 16:08:13

Linux桌面啟動器.desktop文件

2020-01-17 18:40:38

Python游戲代碼

2013-11-05 13:19:37

設計加速

2021-10-14 08:07:33

Go 應用Prometheus監控

2013-07-30 15:24:53

App應用體驗

2020-06-19 13:53:47

BokehPython繪圖

2011-04-22 11:12:42

JavaScript

2013-09-09 15:05:12

iOS應用內置付費IAP完全攻略
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人精品在线 | 中文字幕av一区二区三区 | 日干夜操| 亚欧精品一区 | 成人欧美 | 中文字幕免费在线 | 国产色网 | 99免费视频 | 成人精品一区二区三区中文字幕 | 在线观看国产 | 国产不卡一区在线观看 | 欧美一二精品 | 久久久精品影院 | 国产精品一区二区三区在线 | 九色一区 | 国产精品美女久久久久aⅴ国产馆 | 高清国产午夜精品久久久久久 | 久久亚洲国产精品日日av夜夜 | 国产成人精品亚洲日本在线观看 | 91久久婷婷 | 日本中文在线 | 日韩在线小视频 | 久久精品一区 | 色啪网| 波多野结衣中文字幕一区二区三区 | 综合久久久 | 亚洲精品1 | av在线一区二区三区 | 中文字幕第一页在线 | 99精品视频在线观看 | 91九色在线观看 | www.亚洲 | 国产成人av在线 | 97久久精品午夜一区二区 | 亚洲男人的天堂网站 | 国产精品a久久久久 | 国产一区二区精品自拍 | 天天躁日日躁狠狠的躁天龙影院 | 久久精品亚洲精品国产欧美 | 亚洲情综合五月天 | 欧美视频精品 |