Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Apple In App Purchase
Search
Sing Jie Lee
May 22, 2015
Technology
21
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Apple In App Purchase
Sing Jie Lee
May 22, 2015
More Decks by Sing Jie Lee
See All by Sing Jie Lee
Infocomm Media Youth Festival 2016 - Career Talk
singjie
0
58
Sprite Kit
singjie
0
59
SiriKit
singjie
0
210
React Native
singjie
1
90
Arduino
singjie
0
45
Software Engineering
singjie
0
57
Advanced Core Data
singjie
0
42
Amazon Echo and Home Integration
singjie
0
100
CS3216 Garena Project X
singjie
0
53
Other Decks in Technology
See All in Technology
元銀行員がAIだけでアプリを量産!「バイブコーディング実演セミナー 」
tatsuya1970
0
110
AI 不只幫你寫 Code: 當專案從 300 暴增到 1500, 我們如何撐住 DevOps
appleboy
0
220
飲食店もAIで。レジ締めやハンディシステムをつくってる話 / Using AI for restaurant management
vtryo
0
160
2026年6月23日 Syncable Tech + Start Python Club にて
hamukazu
0
150
From Prompt Engineering to Loop Engineering
shibuiwilliam
1
190
AI時代のコスト管理を考えよう〜明日から使える実践AWSノウハウ~
yoshimi0227
0
860
2026-06-24_人とAIの責務分離に基づく開発プロセスの提案.pdf
takahiromatsui
0
120
【Snowflake Summit 2026 Recap!!】Snowflake Summit Deep Dive: Security & Governance
civitaspo
1
310
GitHub Copilot 最新アップデート – 「一歩先」の実践活用術
moulongzhang
5
1.7k
いまさら聞けない「仕様駆動開発入門」 〜AI活用時代の開発プロセスを考える〜
findy_eventslides
2
200
レガシーな広告配信システムでのAI駆動開発/運用の挑戦
i16fujimoto
0
120
Agile and AI Redmine Japan 2026
hiranabe
4
480
Featured
See All Featured
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.6k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
260
Believing is Seeing
oripsolob
1
150
How STYLIGHT went responsive
nonsquared
100
6.2k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
Site-Speed That Sticks
csswizardry
13
1.2k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
160
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
200
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
390
Transcript
In App Purchase iOS
Why?
Background Story
None
5 types of IAP • Consumable • Non Consumable •
Auto Renewable Subscription • Non-Renewing Subscription • Free Subscription
Products • Products are identified by ProductID • e.g. com.garena.fishfood.100
productID - Product Name (Localized) - Product Price (Tier) - Product Description
Pricing Tier
Pricing Tier
Live/Sandbox App Store Live Sandbox BeeFlight IAP Apple Review Real
AppleID, Real $$ Test AppleID, No $$
Request for SKProduct Add SKProduct to Payment Queue Finish Transaction
ProductID (NSString) 1 2 3 4
Request for SKProduct ProductID (NSString) 1 2 typedef void(^PaymentBlock)(BOOL success);
- (void)buyProductID:(NSString *)productID onCompletion:(PaymentBlock)onCompletion; { NSSet *identifiers = [NSSet setWithObject:productID]; SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:identifiers]; request.delegate = self; [request start]; self.paymentBlock = onCompletion; }
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response { SKProduct *product =
[response.products firstObject]; SKPayment *payment = [SKPayment paymentWithProduct:product]; [[SKPaymentQueue defaultQueue] addPayment:payment]; } Add SKProduct to Payment Queue 3
- (void)paymentCompleted:(SKPaymentTransaction *)transaction { [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; } Finish Transaction
4
IAP Crackable
IAP Crackable
Request for SKProduct Add SKProduct to Payment Queue Verify Transaction
Finish Transaction ProductID (NSString) 1 2 3 4 5
Receive Receipt Our Server Apple Server Verification
Receive Receipt Our Server Apple Server Encrypted receipt Verification
Receive Receipt Our Server Apple Server Encrypted receipt Encrypted receipt
Verification
Receive Receipt Our Server Apple Server Encrypted receipt Encrypted receipt
Decrypted receipt Verification
iOS Client, receive receipt Our Server Apple Server Encrypted receipt
Encrypted receipt Decrypted receipt OK/Not OK Verification
Verification { "receipt": { "original_purchase_date_pst": "2015-05-20 03:26:29 America/Los_Angeles" "unique_identifier": "c1b17ca2d3ceb9b77797fc2c4826ba4aece18370",
"original_transaction_id": "340000068545339", "bvrs": "1.1", "app_item_id": "530942747", "transaction_id": "340000068545339", "quantity": "1", "unique_vendor_identifier": "D39AC063-4817-4DCE-B061-EB5EEE073A5B", "product_id": "com.singjie.btt.full.package", "item_id": "532592602", "version_external_identifier": "11626777", "bid": "com.singjie.BTT", "purchase_date_ms": "1432117589538", "purchase_date": "2015-05-20 10:26:29 Etc/GMT", "purchase_date_pst": "2015-05-20 03:26:29 America/Los_Angeles", "original_purchase_date": "2015-05-20 10:26:29 Etc/GMT", "original_purchase_date_ms": "1432117589538" }, "status": 0 }
Verification { "receipt": { "original_purchase_date_pst": "2012-07-12 05:54:35 America/Los_Angeles" "purchase_date_ms": "1342097675882",
"original_transaction_id": "170000029449420", "original_purchase_date_ms": "1342097675882", "app_item_id": "450542233", "transaction_id": "170000029449420", "quantity": "1", "bvrs": "1.4", "version_external_identifier": "9051236", "bid": "com.zeptolab.ctrexperiments", "product_id": "com.zeptolab.ctrbonus.superpower1", "purchase_date": "2012-07-12 12:54:35 Etc/GMT", "purchase_date_pst": "2012-07-12 05:54:35 America/Los_Angeles", "original_purchase_date": "2012-07-12 12:54:35 Etc/GMT", "item_id": "534185042" }, "status": 0 }
Verification { "receipt": { "original_purchase_date_pst": "2015-05-20 03:26:29 America/Los_Angeles" "unique_identifier": "c1b17ca2d3ceb9b77797fc2c4826ba4aece18370",
"original_transaction_id": "340000068545339", "bvrs": "1.1", "app_item_id": "530942747", "transaction_id": "340000068545339", "quantity": "1", "unique_vendor_identifier": "D39AC063-4817-4DCE-B061-EB5EEE073A5B", "product_id": "com.singjie.btt.full.package", "item_id": "532592602", "version_external_identifier": "11626777", "bid": "com.singjie.BTT", "purchase_date_ms": "1432117589538", "purchase_date": "2015-05-20 10:26:29 Etc/GMT", "purchase_date_pst": "2015-05-20 03:26:29 America/Los_Angeles", "original_purchase_date": "2015-05-20 10:26:29 Etc/GMT", "original_purchase_date_ms": "1432117589538" }, "status": 0 }
Demo
iTunesConnect • Create Products • Create Test Account
Q&A