1. 程式人生 > >iOS應用內支付(IAP)開發步驟

iOS應用內支付(IAP)開發步驟

前兩天和服務端同事一起,完成了應用內付費(以下簡稱IAP, In app purchase)的開發工作。步驟繁多,在此把開發步驟列表整理如下。因為只是步驟列表,所以並不含詳細的說明教程,需要看教程的新手,可以看我附在最後的一些參考連結。

配置Developer.apple.com

  1. 為應用建立建立一個不帶萬用字元的App ID
  2. 用該App ID生成和安裝相應的Provisioning Profile檔案。

配置iTunes Connect

  1. 用該App ID建立一個新的應用。
  2. 在該應用中,建立應用內付費專案,選擇付費型別,通常可選的是可重複消費(Consumable)的或是永久有效(Non-Consumable)的2種,然後設定好價格和Product ID以及購買介紹和截圖即可,這裡的Product ID是需要記住的,後面開發的時候需要。如下圖所示: 

  3. 新增一個用於在sandbox付費的測試使用者,如下圖所示。注意蘋果對該測試使用者的密碼要求 和正式賬號一樣,必須是至少8位,並且同時包含數字和大小寫字母: 

  4. 填寫相關的稅務,銀行,聯絡人資訊。如下圖所示: 

開發工作(ios端)

1、 在工程中引入 storekit.framework 和 #import <StoreKit/StoreKit.h>

2、 獲得所有的付費Product ID列表。這個可以用常量儲存在本地,也可以由自己的伺服器返回。

3、 製作一個介面,展示所有的應用內付費專案。這些應用內付費專案的價格和介紹資訊可以是自己的伺服器返回。但如果是不帶伺服器的單機遊戲應用或工具類應用,則可以通過向App Store查詢獲得。我在測試時發現,向App Store查詢速度非常慢,通常需要2-3秒鐘,所以不建議這麼做,最好還是搞個自己的伺服器吧。

4、當用戶點選了一個IAP專案,我們先查詢使用者是否允許應用內付費,如果不允許則不用進行以下步驟了。程式碼如下:

1
2
3
4
5
6
if ([SKPaymentQueue canMakePayments]) {
    // 執行下面提到的第5步:
    [self getProductInfo];
} else {
    NSLog(@"失敗,使用者禁止應用內付費購買.");
}

5、 我們先通過該IAP的ProductID向AppStore查詢,獲得SKPayment例項,然後通過SKPaymentQueue的 addPayment方法發起一個購買的操作。

1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
// 下面的ProductId應該是事先在itunesConnect中新增好的,已存在的付費專案。否則查詢會失敗。
- (void)getProductInfo {
  NSSet * set = [NSSet setWithArray:@[@"ProductId"]];
  SKProductsRequest * request = [[SKProductsRequest alloc] initWithProductIdentifiers:set];
  request.delegate = self;
  [request start];
}
// 以上查詢的回撥函式
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
    NSArray *myProduct = response.products;
    if (myProduct.count == 0) {
        NSLog(@"無法獲取產品資訊,購買失敗。");
        return;
    }
    SKPayment * payment = [SKPayment paymentWithProduct:myProduct[0]];
    [[SKPaymentQueue defaultQueue] addPayment:payment];
}

6、 在viewDidLoad方法中,將購買頁面設定成購買的Observer。

1
2
3
4
5
6
7
8
9
10
- (void)viewDidLoad {
    [super viewDidLoad];
    // 監聽購買結果
    [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
}
- (void)viewDidUnload {
    [super viewDidUnload];
    [[SKPaymentQueue defaultQueue] removeTransactionObserver:self];
}

7、 當用戶購買的操作有結果時,就會觸發下面的回撥函式,相應進行處理即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions {
    for (SKPaymentTransaction *transaction in transactions)
    {
        switch (transaction.transactionState)
        {
            case SKPaymentTransactionStatePurchased://交易完成
                
            
           

相關推薦

iOS應用支付(IAP)開發步驟

前兩天和服務端同事一起,完成了應用內付費(以下簡稱IAP, In app purchase)的開發工作。步驟繁多,在此把開發步驟列表整理如下。因為只是步驟列表,所以並不含詳細的說明教程,需要看教程的新手,可以看我附在最後的一些參考連結。 配置Developer.apple.com 為應用建立建立一個

iOS應用支付(IAP)開發中後期的那些坑

一,Product ID無效? 好了,經過前面的準備後,就到了真正和IAP聯通的步驟了。在輸入一個Product ID向伺服器發起request的時候,很有可能出現失敗的情況,在request屬性InvalidateIdentifier中,你會發現這個Product I

iOS應用付費(IAP)開發步驟列表

前兩天和服務端同事一起,完成了應用內付費(以下簡稱IAP, In app purchase)的開發工作。步驟繁多,在此把開發步驟列表整理如下。因為只是步驟列表,所以並不含詳細的說明教程,需要看教程的新手,可以看我附在最後的一些參考連結。 配置Developer.appl

IOS應用支付IAP從零開始詳解,讓你少踩坑!

前言 什麼是IAP,即in-app-purchase 這幾天一直在搞ios的應用內購,查了很多部落格,發現幾乎沒有一篇部落格可以完整的概括出所有的點,為了防止大夥多次查閱資料,所以寫了這一篇部落格,希望大家能夠跟著我,從零開始,寫一個包含內購的應用出來 流程 一般有以下幾種

iOS應用支付(IAP)的注意事項

來源:http://blog.csdn.net/xinruiios/article/details/9289573 IAP的全稱是In-App Purchase,應用內付費。這種業務模式允許使用者免費下載試用,對應用內提供的商品選擇消費,比如購買遊戲道具,購買遊戲等級

iOS應用支付IAP)服務端端校驗詳解

imageview sof 客戶端 標識 知識庫 ndb json replace undle IAP流程 IAP流程分為兩種: 一種是直接使用Apple的服務器進行購買和驗證, 另一種就是自己假設服務器進行驗證。由於國內網絡連接Apple服務器驗證非常慢,而且也為了防止黑

iOS應用支付IAP)詳解

在iOS開發中如果涉及到虛擬物品的購買,就需要使用IAP服務,我們今天來看看如何實現。 在實現程式碼之前我們先做一些準備工作,一步步來看。 1、IAP流程 IAP流程分為兩種,一種是直接使用Apple的伺服器進行購買和驗證,另一種就是自己假設伺服

[iOS]應用支付(購)的個人開發過程及坑!

本文會給大家詳細介紹iOS內購,這是本人16年5月底的開發過程,希望對看完此篇文章的人有所幫助。 本文基於XcodeVersion 7.3 (7D175)版本,手機是iPhone 6,9.3系統。 部分地方直接摘自網路,基本上是我的邏輯,省時省心省力。 一

[紹棠] 應用支付(IAP)詳解

1、IAP流程 IAP流程分為兩種,一種是直接使用Apple的伺服器進行購買和驗證,另一種就是自己假設伺服器進行驗證。由於國內網路連線Apple伺服器驗證非常慢,而且也為了防止黑客偽造購買憑證,通用做法是自己架設伺服器進行驗證。 下面我們通過圖來看看兩種方式的差別:

ios 應用支付(In-App Purchase,沙盒測試,後臺驗證)

1.蘋果iTunes Connect內購產品資訊錄入。 1)建立app內購買專案(Create New),選擇型別: 1.消耗型專案 對於消耗型 App 內購買專案,使用者每次下載時都必須進行購買。一次性服務通常屬於消耗型專案,例如釣魚App 中的魚餌。 2.非消耗型

ios 應用支付(In-App Purchase,沙盒測試,後臺驗證)

1.蘋果iTunes Connect內購產品資訊錄入。 1)建立app內購買專案(Create New),選擇型別: 1.消耗型專案 對於消耗型 App 內購買專案,使用者每次下載時都必須進行購買。一次性服務通常屬於消耗型專案,例如釣魚App 中的魚餌。 2.非消耗型專案

iOS應用支付購)

本文會給大家詳細介紹iOS內購,這是本人16年5月底的開發過程,希望對看完此篇文章的人有所幫助。  本文基於XcodeVersion 7.3 (7D175)版本,手機是iPhone 6,9.3系統。  部分地方直接摘自網路,基本上是我的邏輯,省時省心省力。 一. 建立測

iOS 應用付費(IAP開發步驟

參考文章連結: (1)http://mobile.51cto.com/iphone-389249.htm (2)http://blog.csdn.net/xiaominghimi/article/details/6937097 (3)http://zengwu3915.bl

iOS應用購買專案(IAP

iOS應用內購買專案流程,大致分為三個部分: 第一部分:iTunes connect設定,包含建立新的釋出版本號、建立購買專案(商品)、設定協議稅務銀行業務、新增沙盒技術測試賬號; 第二部分:在專案Xcode中設定允許In-App Purchase,然後編寫程式碼;程式碼

iOS應用建付費 In-App Purchase 詳細介紹(IAP詳解)

In App Purchase(程式內購買)為蘋果開發人員們打開了一個新的盈利渠道,如果您對此並不瞭解,下面這段 CocoaChina 會員“leon”翻譯的 In App Purchase 詳細介紹一定不能錯過。 一、In App Purchase概覽 Store

iOS 應用跳轉到系統設置

photo pod style software lin vol ios5 per man 在iOS5下面版本號使用下面方法:【IOS5.1+之後不能使用此方法,iOS8的跳轉方法已找到見下方,iOS7的正在摸索。歡迎大家給出觀點意見】 通過URL Scheme的方

Cocos2d-x使用iOS遊戲付費IAP(C++篇)

pos ack tegra cocos2d http tor -c html5 trac http://www.cocos2d-x.org/docs/manual/framework/html5/jsb-ios-iap/ios-storekit-integratio

ios應用嵌h5頁面數據自動變色識別為手機號碼的解決方法——手機號碼撥號禁用IOS手機頁面數字自動識別為手機號

log 數字 bsp 標簽 one .com div meta name 現象如下,ios應用內嵌h5頁面,本來是設置了白色的數字,兩三秒之後會自動變為黑色,然後點擊的時候就會彈出是否撥號的提示; 解決方法,添加如下meta標簽,即可解決: <meta

iOS應用切換多國語言

apple 按鈕 cal () sta err ans 移除 系統 1.新建工程之類的就不用說了,配置項目本地化支持簡體中文和英文 工程-PROJECT-info->Localizations,點“+”,選擇(Chinese(Simp

iOS應用跳轉百度高德蘋果地圖

bool 知識點 coo count value oid bsp lse rec 移動開發經常用到基於位置的一些導航功能,但是對於對導航功能依賴性不強的的應用,我們直接采用應用外跳轉地圖APP即可。 但是應用間跳轉,首先需要設置白名單, 在iOS 9 下涉及到平臺客戶端跳