Amazon In-App Purchasing API - ã¯ã¤ãã¯ã¹ã¿ã¼ãã¬ã¤ã
â»æ¬è¨äºã¯ãAmazon Mobile App SDK/In-App Purchasing API ã® Quick Start Guide ã®ç¿»è¨³è¨äºã§ãã
Introduction
In-App Purchase API ã¯ãå®å ¨ãªæ©è½ãæã¤APIã»ãããæä¾ããã¨åæã«èª²éããã»ã¹ã®è¤éæ§ãã«ãã»ã«åããããã«ãã¶ã¤ã³ããã¦ãã¾ããAPIã¯ã¢ããªå 課éã®ãã©ã³ã¶ã¯ã·ã§ã³ãå®äºããéã以ä¸ã®ãªãã¸ã§ã¯ããå©ç¨ãã¾ãï¼
- Purchasing Manager - APIãªã¯ã¨ã¹ããåæåããã®ã«ä½¿ç¨ãã¾ã
- Purchasing Observer - APIã¬ã¹ãã³ã¹ã®ã³ã¼ã«ããã¯ãå¦çãã¾ã
- Response Receiver - Amazonã¯ã©ã¤ã¢ã³ããã Purchasing Observer ã¸ã®ã³ã¼ã«ããã¯ãè£å©ãã¾ã
- Receipt Verification Service - ã¢ããªå¤ã§ã¬ã·ã¼ããæ¤è¨¼ãããªãã·ã§ã³ã®ãµã¼ãã¹ã§ã
以ä¸ã®å³ã¯è³¼å
¥ã·ã¼ã±ã³ã¹ãå«ãã¹ãããã®æ¦è¦ã§ãï¼
Fig. 1: In-App Purchasing API
ã·ã³ãã«ãªå®è£ ã¯ã以ä¸ã®5ã¹ãããã§å®äºãã¾ãã
1. Android ãããã§ã¹ãã®æ´æ°
Amazon Client ããã³ã¼ã«ããã¯ãåãåãããã« AndroidManifest.xml ãã¡ã¤ã«ã®
<application> . . . <receiver android:name = "com.amazon.inapp.purchasing.ResponseReceiver" > <intent-filter> <action android:name = "com.amazon.inapp.purchasing.NOTIFY" android:permission = "com.amazon.inapp.purchasing.Permission.NOTIFY" /> </intent-filter> </receiver> . . . </application>
Response Receiverãèªã
2. Purchasing Observerã®å®è£
Purchasing Observer㯠Purchasing Manager ãéãã¦åæåãããã³ã¼ã«ããã¯ããªãã¹ã³ãã¾ãããªãã¶ã¼ãã¼ã¯BasePurchasingObserver ã¯ã©ã¹ãæ¡å¼µãã¹ãã§ãå¿
è¦ãªã³ã¼ã«ããã¯ã¡ã½ããã®ã¿ããªã¼ãã¼ã©ã¤ããã¾ãã
æä½ã§ãã¢ã¤ãã ãã¼ã¿ãåå¾ããè³¼å
¥ãªã¯ã¨ã¹ããåæåããããã®ã³ã¼ã«ããã¯ãç¨æããå¿
è¦ãããã¾ããã¢ããªã®ã¢ã¯ãã£ããã£ã®ä¸ã« Purchasing Observer ã¯ã©ã¹ãçæãããã¨ãã§ãã¾ãã
private class MyObserver extends BasePurchasingObserver { public MyObserver() { super(MainActivity.this); } @Override public void onItemDataResponse(ItemDataResponse itemDataResponse) { //Check itemDataResponse.getItemDataRequestStatus(); //Use itemDataResponse to populate catalog data } @Override public void onPurchaseResponse(PurchaseResponse purchaseResponse) { //Check purchaseResponse.getPurchaseRequestStatus(); //If SUCCESSFUL, fulfill content; } }
Purchasing Observerãèªã
3. Purchasing Observerã®ç»é²
Purchasing Manager ã§ Purchasing Observer ãç»é²ããå¿ è¦ãããã¾ãããããããã¨ã§ããªãã¶ã¼ãã¼ã¯ã³ã¼ã«ããã¯ããªãã¹ã³ãããã¨ãã§ãã¾ããããã¯ãã¢ããªã®éå§ã¡ã½ããã§å®æ½ãããªããã°ãªãã¾ããã
protected void onStart() { super.onStart(); PurchasingManager.registerObserver(new MyObserver()); };
registering the Purchasing Observer ãèªã
4. ã¢ããªå 課éï¼In-App Purchaseï¼ã®åæå
ãªãã¶ã¼ãã¼ãç»é²ããããã¢ã¤ãã ãã¼ã¿ãªã¯ã¨ã¹ãã®åæåã¨è³¼å
¥ãªã¯ã¨ã¹ãã使ç¨ã§ããããã«ãªãã¾ããAPIã¯è³¼å
¥ããã¼ã¨å
¨ã¦ã®é¡§å®¢ãã¢ããªã¨ã¤ã³ã¿ã©ã¯ã·ã§ã³ãããã¨ã管çãã¾ãã
initiateItemDataRequest ã¡ã½ããã§ SKU ã®ã¢ã¤ãã ãã¼ã¿ããªã¯ã¨ã¹ãããããã«ãPurchasing Manager ã使ç¨ãã¾ãã
PurchasingManager.initiateItemDataRequest("DeveloperSKU-1234");
initiatePurchaseRequest ã¡ã½ããã§ SKU ã®è³¼å ¥ãªã¯ã¨ã¹ããåæåããããã«ãPurchasing Managerã使ç¨ãã¾ãã
private OnClickListener purchaseClickListener = new OnClickListener() { public void onClick(View v) { String requestId = PurchasingManager.initiatePurchaseRequest("DeveloperSKU-1234"); } };
Purchasing Manager ãèªã
5. ã¬ã¹ãã³ã¹ã®éç¥ããã³ãã«ãã
è³¼å
¥ãªã¯ã¨ã¹ãã®å¼ã³åºãã®åæåå¾ãPurchasing Observer ã¯ãªã¯ã¨ã¹ãã«ããããã¦ããã¬ã¹ãã³ã¹ãªãã¸ã§ã¯ãã®ã³ã¼ã«ããã¯ãåä¿¡ãã¾ããã¢ããªã¯ãã³ã¼ã«ããã¯ãåä¿¡ããã¬ã¹ãã³ã¹ãªãã¸ã§ã¯ãããã³ãã«ããã¦ã¼ã¶ã¼ã«ã³ã³ãã³ããæä¾ããå¿
è¦ãããã¾ãã
ãã®å®è£
ã¯ã¢ããªç¹æã®ãã®ã§ãããã®æç¹ã§åºæ¬çãªå®è£
ã¯å®äºããSDK Tester App ã使ç¨ãã¦ãã¹ããéå§ãããã¨ãã§ãã¾ãã
(C) 2010-2013, Amazon.com, Inc. or its affiliates. All Rights Reserved.
æè²¬ï¼åå·éçºèª²ãç¬æ¸ ç´å(@Lionas)