偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

為你的應(yīng)用添加內(nèi)置收費(fèi) In App Purchase

移動(dòng)開發(fā) iOS
本文講闡述如何為你現(xiàn)有的應(yīng)用或游戲添加程序內(nèi)購買(In App Purchase)功能。閱讀前提:假設(shè)了你擁有一定的iPhone SDK開發(fā)基礎(chǔ),和App Store實(shí)踐經(jīng)驗(yàn)。

自從09年10月16日蘋果發(fā)送給所有開發(fā)者的那一封信,通知了程序內(nèi)購買將可用于免費(fèi)應(yīng)用,我認(rèn)為這也宣告了pTE版的時(shí)代結(jié)束。

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

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

閱讀前提:假設(shè)了你擁有一定的iPhone SDK開發(fā)基礎(chǔ),和App Store實(shí)踐經(jīng)驗(yàn)。

你的程序需要***的Bundle ID, 如果已經(jīng)發(fā)布的程序使用了通配符,那么就不能直接添加該功能。如果擁有了***的ID,請(qǐng)?jiān)趐rogram portal中添加你的app id,允許程序使用內(nèi)購買(Enable In App Purchase)。

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

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

這里簡(jiǎn)單說一下類型的選擇,其他信息,以及In App Purchase支持什么類型的商品請(qǐng)查看Getting Started with In App Purchase。

Non-consumable 默認(rèn)類型,非消耗品,具有持久性,特點(diǎn)是一次性購買,可用在所有設(shè)備。例如解鎖游戲的儲(chǔ)存關(guān)卡功能。

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

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

創(chuàng)建購買流程

大致可以分為十個(gè)步驟:

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

載入目錄 載入儲(chǔ)存在本地或者遠(yuǎn)程的商品目錄。

獲得商品本地化信息 程序向App Store發(fā)起查詢請(qǐng)求獲得目錄中商品的本地化信息:

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

程序接收來自App Store的回應(yīng): -(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response response包含可能的信息 response.products //產(chǎn)品信息 response.invapdProductIdentifiers //錯(cuò)誤的產(chǎn)品標(biāo)示符 錯(cuò)誤的產(chǎn)品可能由下面的原因?qū)е拢?/p>

    商品未在 iTunes Connect中錄入。

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

    商品還沒有傳播到所有服務(wù)器。

創(chuàng)建商品信息 前面的步驟獲得了產(chǎn)品信息的數(shù)組用以呈現(xiàn):

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

呈現(xiàn)商品信息 在UI中顯示前面獲得的信息

請(qǐng)求支付

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

然后提交到隊(duì)列

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

驗(yàn)證支付的事務(wù)

  1. for(SKPaymentTransaction *aTransaction in transactions) {  
  2.        switch (aTransaction.transactionState )  
  3.            { 
  4.             // 商品進(jìn)入購買流程 
  5.             case SKPaymentTransactionStatePurchasing: ... break;  
  6.             // 成功購買商品  
  7.             case SKPaymentTransactionStatePurchased: ... break;  
  8.             // 已經(jīng)購買過該商品  
  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

收到交易回執(zhí)以后可以傳送到你的服務(wù)器處理該交易。

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

解鎖內(nèi)置物品火提供遠(yuǎn)程存取地址 需要注意的地方

    用戶可能隨時(shí)退出程序。

    Store Kit 的交易隊(duì)列是持久化的。

    交易是持久化的。

    驗(yàn)證存取。

    移除交易。

 

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

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

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

測(cè)試沙盒環(huán)境

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

可以為每個(gè)國(guó)家的商店添加測(cè)試帳號(hào)。

不能用來測(cè)試其他的iTunes Store特性。

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

payam+usa@example.com—測(cè)試美國(guó)的商品

payam+uk@example.com—測(cè)試英國(guó)的商品

payam+jp@example.com—測(cè)試日本的商品

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

然后不要在設(shè)置菜單中登錄測(cè)試帳號(hào),而是直接打開需要測(cè)試的程序進(jìn)行測(cè)試。

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

財(cái)務(wù)報(bào)表

收入和應(yīng)用程序同樣的規(guī)則

你獲得總收入的70%。

支付日程,使用稅,報(bào)表等全部都一樣。

報(bào)表

一樣的報(bào)表格式。

販賣的標(biāo)示符欄顯示物品的產(chǎn)品ID。

所有者標(biāo)示符欄顯示程序的ID。

責(zé)任編輯:閆佳明 來源: cocoachina
相關(guān)推薦

2013-09-09 16:11:16

iOS應(yīng)用內(nèi)置付費(fèi)IAP總結(jié)

2013-09-09 13:57:27

iOS應(yīng)用內(nèi)置付費(fèi)In-App Purc

2013-09-09 14:26:25

iOS應(yīng)用內(nèi)置付費(fèi)In-App Purc

2012-02-22 16:02:12

2014-12-09 10:50:11

2011-04-25 09:04:14

應(yīng)用商店蘋果

2013-07-05 13:48:47

App

2013-09-05 15:12:09

iOS應(yīng)用內(nèi)置付費(fèi)In-App Purc

2012-01-05 09:19:25

iOSApp應(yīng)用

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桌面啟動(dòng)器.desktop文件

2020-01-17 18:40:38

Python游戲代碼

2013-11-05 13:19:37

設(shè)計(jì)加速

2021-10-14 08:07:33

Go 應(yīng)用Prometheus監(jiān)控

2013-07-30 15:24:53

App應(yīng)用體驗(yàn)

2020-06-19 13:53:47

BokehPython繪圖

2011-04-22 11:12:42

JavaScript

2013-09-09 15:05:12

iOS應(yīng)用內(nèi)置付費(fèi)IAP完全攻略
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)