際際滷

際際滷Share a Scribd company logo
Google Play Billing
v 3.0
仍舒仆
亰亠仆亳亠 API 从于舒亠仄 亠 于 弍舒仆从亠) 亠亞亳亳亠仄
从舒仂从
弌仂亰亟舒亠仄
仗仂亟从
舒舒亠仄 亳
仆舒舒亳于舒亠仄
亳仂亟仆亳从亳
丐亠亳亠仄 弍亠仗亠亳于舒亠仄
弍亠亰仂仗舒仆仂
于仂亟
舒弍仂舒  API
弌亠仄舒亳亠从仂亠 仗亠亟舒于仍亠仆亳亠
 亠亳 2.0  亠亳 3.0
 仂于亠从舒 仆舒仍亳亳 仗仂亟仗亳从亳 亳仍亳 仗仂从仗从亳
舒弍仂舒  API
仂从仗从舒 + 仂亟仗亳从舒
Bundle buyIntentBundle = mService.getBuyIntent(3, packageName, "sku", "inapp|subs", "developerPayload");
PendingIntent pendingIntent = buyIntentBundle.getParcelable ("BUY_INTENT");
startIntentSenderForResult(pendingIntent.getIntentSender(), 1001, new Intent(), Integer.valueOf(0),
Integer.valueOf(0), Integer.valueOf(0));
亞亟亠 developerPayload - 亳仗仂仍亰亠 亟仍 从仂仆仂仍 仗仂从仗从亳 (String).
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1001) {
int responseCode = data.getIntExtra("RESPONSE_CODE", 0);
String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA");
String dataSignature = data.getStringExtra("INAPP_DATA_SIGNATURE");
if (resultCode == RESULT_OK) {
JSONObject jo = new JSONObject(purchaseData);
String sku = jo.getString("productId");
}
}
}
舒弍仂舒  API
仂从仗从舒 + 仂亟仗亳从舒
于亠
BuyProduct: {
油 油"orderId":"12999763169054705758.137107940638715",
油 油"packageName":"com.example.app",
油 油"productId":"exampleSku",
油 油"purchaseTime":1345678900000,
油 油"purchaseState":0,
油 油"developerPayload":"DeveloperPayload",
油 油"purchaseToken":"rojeslcdyyiapnqcynkjyyjh"
}
Signature: E8it1W0vaxaqldd6H6w0hrbFw1BNZrhSQYLfn0g7ErWu6mxOb4WI7brXWQggEHoU9r4.......uqlgEkA==
舒弍仂舒  API
仂亠弍仍亠仆亳亠 + 仂仗亳从舒
 亠亳 2.0
仂亠弍仍亠仆亳亠  仂仍从仂 于亠亳 3.0
仄亠仆舒 仗仂亟仗亳从亳  舒仆舒仍仂亞亳仆仂 于亠亳亳 3.0
 亠亳 3.0
仂亠弍仍亠仆亳亠
int response = mService.consumePurchase(3, packageName, token);
亠亟仗亠亢亟亠仆亳亠: 亠 于亰于舒亶亠 consumePurchase 仄亠仂亟 于 仂仆仂于仆仂仄 仗仂仂从亠.
仄亠仆舒 仗仂亟仗亳从亳
 丐亠从舒 于亠亳 Billing API 仆亠 仗亠亟仂舒于仍磳 仗仂亟亟亠亢从 仗仂亞舒仄仄仆仂亶 仂仄亠仆 仗仂亟仗亳从亳.
 仂仍亠 仂仄亠仆 仗仂亟仗亳从亳 仗仂仍亰仂于舒亠仍 于亠 舒于仆仂 亳仄亠亠 亟仂仗 从 仗仂亟仗亳从亠 亟仂 从仂仆舒 仂从舒 (亠, 仂亟).
 仂亰于舒 亠亟于 亰舒 亢亠 从仗仍亠仆仆 仗仂亟仗亳从 仄仂亢亠 于亠仆 仂仍从仂 舒亰舒弍仂亳从.
 仂仍亠 亟舒仍亠仆亳 仗亳仍仂亢亠仆亳, 于亠 仗仂亟仗亳从亳 仂舒ム
 仂亟仗亳从舒 仆亠 磦仍磳 仗仂亠弍仍磳仄仄 仗仂亟从仂仄.
  于仂亰仄仂亢仆仂 仂从 仆亢仆 舒仆亳 Google Play:
Intent intent = new Intent(Intent.ACTION_VIEW);
String url = "market://details?id=" + packageName;
intent.setData(Uri.parse(url));
startActivity(intent);
舒弍仂舒  API
仂仍亠仆亳亠 亟亠舒仍亠亶 仗仂亟从仂于
亠亟仗亠亢亟亠仆亳亠: 亠 于亰于舒亶亠 getSkuDetails 仄亠仂亟 于 仂仆仂于仆仂仄 仗仂仂从亠.
int response = skuDetails.getInt("RESPONSE_CODE");
if (response == 0) {
ArrayList responseList = skuDetails.getStringArrayList("DETAILS_LIST");
for (String thisResponse : responseList) {
ProductDetails productDetail = new ProductDetails(itemType, thisResponse);
}
}
ArrayList skuList = new ArrayList();
skuList.add("premiumUpgrade");
Bundle querySkus = new Bundle();
querySkus.putStringArrayList("ITEM_ID_LIST", skuList);
Bundle skuDetails = mService.getSkuDetails(3, packageName, "inapp|subs", querySkus);
舒弍仂舒  API
仂仍亠仆亳亠 亟亠舒仍亠亶 仗仂亟从仂于
于亠
ProductDetail: {
"title":"Subscription 1 (Billing 3.0)",
"price":"8,14油",
"type":"subs",
"description":"Description of subscriptions ",
"productId":"subscription_1"
}
舒弍仂舒  API
仂仍亠仆亳亠 仗亳从舒 从仗仍亠仆仆 仗仂亟从仂于
Bundle items = mService.getPurchases(3, packageName, "inapp|subs", null);
//仂亰于舒舒亠 仆亠 弍仂仍亠亠 700 仗仂从仗仂从 亰舒 舒亰.
int response = items.getInt("RESPONSE_CODE");
if (response == 0) {
ArrayList<String> ownedSkus = items.getStringArrayList("INAPP_PURCHASE_ITEM_LIST");
ArrayList<String> purchaseDataList = items.getStringArrayList("INAPP_PURCHASE_DATA_LIST");
ArrayList<String> signatureList = items.getStringArrayList("INAPP_DATA_SIGNATURE");
String continuationToken = items.getString("INAPP_CONTINUATION_TOKEN");
//仍亳 仗仂亟从仂于 仄亠仆亠 700 仂 continuationToken 于亠仆亠 仗仄.
for (int i = 0; i < purchaseDataList.size(); ++i) {
String purchaseData = purchaseDataList.get(i);
String signature = signatureList.get(i);
String sku = ownedSkus.get(i);
}
}
舒弍仂舒  API
仂仍亠仆亳亠 仗亳从舒 从仗仍亠仆仆 仗仂亟从仂于
于亠
OwnedSku: controlled_1
PurchaseData: {
"orderId":"12999763169054705758.1366607722131921",
"packageName":"com.ua.makeev.billingexample",
"productId":"controlled_1",
"purchaseTime":1365369158000,
"purchaseState":0,
"purchaseToken":"koybwcalcuninxrvzzocieaz.AO.........o6jcIjXTCN-7Yrt3tIoUzEDJuxabfpI2H1J5U2"}
}
Signature: E8it1W0vaxaqldd6H6w0hrbFw1BNZrhSQYLfn0g7ErWu6mxOb4WI7brXWQggEHoU9r4.......uqlgEkA==
仂亟亞仂仂于从舒
弌舒仆, 舒亰舒弍仂亳从亳 亳亰 从仂仂 仄仂亞 弍 仗仂亟舒于舒仄亳
亞亠仆亳仆舒, 于舒仍亳, 于亳, 亠仍亞亳, 舒亰亳仍亳, 舒仆舒亟舒, 丼亠亳, 舒仆亳, 个亳仆仍礌亟亳, 个舒仆亳, 亠仄舒仆亳,
仂仆从仂仆亞, 仆亟亳, 仍舒仆亟亳, 亰舒亳仍, 舒仍亳, 亊仗仂仆亳, 亠从亳从舒, 亳亟亠仍舒仆亟, 仂于舒 亠仍舒仆亟亳, 仂于亠亞亳,
仂仍舒, 仂亞舒仍亳, 仂亳, 弌亳仆亞舒仗, 仗舒仆亳, 豫亢仆舒 仂亠, 丿于亠亳, 丿于亠亶舒亳, 丐舒亶于舒仆,
亠仍亳从仂弍亳舒仆亳, 弌丿
仂亟亞仂仂于从舒
从于舒亠仄 亠 于 亳仆仂舒仆仆仂仄 弍舒仆从亠)
1) 亠亞亳亳亠仄 http://www.payoneer.com/cardholdersIntro.aspx
亳 仆舒仍亳亳亳 亰舒亞舒仆 仗舒仗仂舒 亳仗仂仍亰亠仄 亠亞仂. 仂舒于从舒 从舒 1 仄亠
2) 仂亟舒亠仄 亰舒磦从 仆舒 仗仂亟从仍ム亠仆亳亠 从 仍亞亠 US Payment Service.
3) 丶亠仆 (亠仆舒 亰舒于亳亳 仂 仗舒仆从仂亶 仗仂亞舒仄仄):
$29.95 - 亠亢亠亞仂亟仆仂亠 仂亟亠亢舒仆亳亠 从舒
$12.95 - 亰舒仄亠仆舒 从舒
$3.15 - 仆亳亠 仆舒仍亳仆 亟亠仆亠亞.
+ 3 % - 仗亳 仆亳亳 仆亠 于 亟仂仍仍舒舒
$1.00 - 仂从舒亰 于 于亟舒亠 亠亟于
$1.00 - 仂于亠从舒 弍舒仍舒仆舒
弌仂亰亟舒仆亳亠 仗仂亟从仂于 于 developer 从仂仆仂仍亳
 仂仆仂仍亳亠仄亠 - 仗仂亟从, 亳仆仂仄舒亳 仂 从仂仂, 仄仂亢仆仂 于 仍ミ頴笑 仄仂仄亠仆 仗仂仍亳  Google Play.
仗仂仍亰亠 于 于亠亳 2.0 亳 3.0.
 亠 从仂仆仂仍亳亠仄亠 - 仄仂亢亠 仗仂从仗舒 仄仆仂亞仂 舒亰. 仆仂仄舒亳 仂 舒仆亰舒从亳 仆亠 舒仆亳 于
Google Play. 仂仗亠仆 仂仍从仂 亟仍 于亠亳亳 2.0. 亳 亳仗仂仍亰仂于舒仆亳亳 于亠亳亳 3.0 亳 仗仂亟从
于仂仗亳仆亳仄舒ム 从舒从 从仂仆仂仍亳亠仄亠.
 仂亟仗亳从舒 - 于仂亰仄仂亢仆舒 亠亢亠仄亠仆舒 亳 亞仂亟仂于舒 仗仂亟仗亳从舒. 仗仂仍亰亠 于 于亠亳 2.0 亳 3.0.
舒仂亶从舒 从仂仆仂仍亳 舒亰舒弍仂亳从舒
舒仂亶从舒 从仂仆仂仍亳 舒亰舒弍仂亳从舒
舒仂亶从舒 从仂仆仂仍亳 舒亰舒弍仂亳从舒
舒仂亶从舒 仗亳仍仂亢亠仆亳
舒仂亶从舒 仄舒仆亳亠舒
 亠亳 2.0
<uses-permission android:name="com.android.vending.BILLING" />
<service android:name=".billing.BillingService" />
<receiver android:name=".billing.BillingReceiver" >
<intent-filter>
<action android:name="com.android.vending.billing.IN_APP_NOTIFY" />
<action android:name="com.android.vending.billing.RESPONSE_CODE" />
<action
android:name="com.android.vending.billing.PURCHASE_STATE_CHANGED" />
</intent-filter>
</receiver>
 亠亳 3.0
<uses-permission android:name="com.android.vending.BILLING" />
 从于舒亠仄 Android SDK Manager.
 丕舒仆舒于仍亳于舒亠仄 Google Play Billing Library.
仂亟仆亳从亳 仍亠亢舒 于 <sdk>/extras/google/play_billing/.
舒舒亠仄 亳仂亟仆亳从亳
丐亠亳仂于舒仆亳亠
丐亠仂于亠 仗仂亟从
 舒亠亰亠于亳仂于舒仆仆亠 亳亟亠仆亳亳从舒仂 仗仂亟从仂于
android.test.purchased  仂于亠, 从舒从 弍亟仂 于 仗亠仆仂 从仗亳仍亳 仂于舒.
android.test.canceled  仗仂从仗从舒 仂仄亠仆亠仆舒.
android.test.refunded  于仂亰于舒 亠亟于.
android.test.item_unavailable  仗仂亟从 仆亠 仆舒亶亟亠仆 于 仗亳从亠 仗仂亟从仂于.
亳仍仂亢亠仆亳亠 弍仍仂
仂仗弍仍亳从仂于舒仆仂?
亳仍仂亢亠仆亳亠 仂仍从仂
亰舒亞亢亠仆仂?
仂 亰舒仗从舒亠
仗亳仍仂亢亠仆亳亠
于亠
No No Any Unsigned
No No Developer Signed
Yes No Any Unsigned
Yes No Developer Signed
Yes No Test account Signed
Yes Yes Any Signed
丐亠亳仂于舒仆亳亠
 丐亠弍仂于舒仆亳 亟仍 亠亳仂于舒仆亳:
1) 仂亟从 亟仂仍亢亠仆 弍 舒从亳于亳仂于舒仆.
2) 亠亳亳 仗亳仍仂亢亠仆亳 于 仄舒从亠亠 亳 仆舒 仂亶于亠 亟仂仍亢仆 仂于仗舒亟舒
3) 亳仍仂亢亠仆亳亠 亟仂仍亢仆仂 弍 仗仂亟仗亳舒仆仂 Production 从仍ム仂仄.
4) 仗仂仍亰仂于舒 亠仂于亶 舒从从舒仆 亳 仂仆 亟仂仍亢亠仆 弍 亞仍舒于仆仄 仆舒 仂亶于亠. 亠仍亰 仗仂从仗舒  舒仄仂亞仂
亠弍.
5) 丐仂仍从仂 Google 舒从从舒仆
亳仄亠舒仆亳亠: 亟仍 舒仆仂于从亳 亟亞仂亶 亠仆仂亶 亰舒仗亳亳 从舒从 仂仆仂于仆仂亶 仆亢仆仂 弍舒于舒 仆舒仂亶从亳 亟仂
亰舒于仂亟从亳
弌仂弍于亠仆仆亠 仗仂亟从
亠亰仂仗舒仆仂
 仂于亠从舒 仗仂从仗从亳 仆舒 仂仂仆亠 亠于亠舒;
 仄亠 于仂亰仄仂亢仆仂 仂仄亠仆亳 仗仂从仗从 仂 仂仂仆 亠于亠舒 (仗亳 亠亞仂 仆舒仍亳亳亳);
 亳仆舒仄亳亠从舒 亞亠仆亠舒亳 developerPayload;
 弍从舒亳 从仂亟舒 亠舒仍亳亰ム亠亞仂 仍仂亞亳从 仗仂从仗从亳;
亳 亳仗仂仍亰仂于舒仆亳亳 Proguard, 于 舒亶仍 从仂仆亳亞舒亳亳 亟仂弍舒于亳:
-keep class com.android.vending.billing.**;
 亠 仂舒仆 Public Key 从舒从 舒亳亠从 仂从;
于仂亟
 亠亳仄亠于舒 3 于亠亳亳:
1) 仂磦亳仍舒 于仂亰仄仂亢仆仂 仄仂亠 亟亠舒仍亳 仗仂亟从仂于 亟仂仗仆 亟仍 仗仂亟舒亢亳 (亠仆舒, 亳仗, 仆舒亰于舒仆亳亠,
仂仗亳舒仆亳亠);
2) 仆仂仄舒亳 仂 仗仂从仗从亠 亟仂仗仆舒 舒亰 仗仂仍亠 亠亠 亰舒于亠亠仆亳;
3) 亠 仗仂亟从 舒仍亳 从仂仆仂仍亳亠仄仄亳;
4) 仂仍亠亠 仗仂舒 亠舒仍亳亰舒亳.
 亠亳仄亠于舒 2 于亠亳亳:
1) 亠 仆亢仆仂 亳仗仂仍亰仂于舒 onActivityResult 仍舒亠仍.
 于仂仗仂?
弌仗舒亳弍仂 亰舒 于仆亳仄舒仆亳亠!
makeev.dmitriy22@gmail.com
dmitriy_makeev
dmitriy.makeev1
id=190485666
dmitrij.makeev

More Related Content

Viewers also liked (11)

eBay Architecture
eBay Architecture eBay Architecture
eBay Architecture
Tony Ng
Announcing AWS OpsWorks for Chef Automate - January 2017 AWS Online Tech Talks
Announcing AWS OpsWorks for Chef Automate - January 2017 AWS Online Tech TalksAnnouncing AWS OpsWorks for Chef Automate - January 2017 AWS Online Tech Talks
Announcing AWS OpsWorks for Chef Automate - January 2017 AWS Online Tech Talks
Amazon Web Services
RightScale 2017 State of the Cloud
RightScale 2017 State of the CloudRightScale 2017 State of the Cloud
RightScale 2017 State of the Cloud
RightScale
Service Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and KubernetesService Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and Kubernetes
Sreenivas Makam
Cloud Trends for 2017 and Actions You Can Take Now
Cloud Trends for 2017 and Actions You Can Take NowCloud Trends for 2017 and Actions You Can Take Now
Cloud Trends for 2017 and Actions You Can Take Now
RightScale
Microservices Workshop All Topics Deck 2016
Microservices Workshop All Topics Deck 2016Microservices Workshop All Topics Deck 2016
Microservices Workshop All Topics Deck 2016
Adrian Cockcroft
Gohan
GohanGohan
Gohan
Nachi Ueno
B4 - The TCO of cloud applications
B4 - The TCO of cloud applicationsB4 - The TCO of cloud applications
B4 - The TCO of cloud applications
Amazon Web Services
AWS Partner Webcast - Improving Your AWS Cost Efficiency with Cloudability
AWS Partner Webcast - Improving Your AWS Cost Efficiency with CloudabilityAWS Partner Webcast - Improving Your AWS Cost Efficiency with Cloudability
AWS Partner Webcast - Improving Your AWS Cost Efficiency with Cloudability
Amazon Web Services
Webinar: Accelerate Your Cloud Business With CloudHealth
Webinar: Accelerate Your Cloud Business With CloudHealthWebinar: Accelerate Your Cloud Business With CloudHealth
Webinar: Accelerate Your Cloud Business With CloudHealth
CloudHealth by VMware
Top 10 Cloud Trends for 2017
Top 10 Cloud Trends for 2017Top 10 Cloud Trends for 2017
Top 10 Cloud Trends for 2017
Tableau Software
eBay Architecture
eBay Architecture eBay Architecture
eBay Architecture
Tony Ng
Announcing AWS OpsWorks for Chef Automate - January 2017 AWS Online Tech Talks
Announcing AWS OpsWorks for Chef Automate - January 2017 AWS Online Tech TalksAnnouncing AWS OpsWorks for Chef Automate - January 2017 AWS Online Tech Talks
Announcing AWS OpsWorks for Chef Automate - January 2017 AWS Online Tech Talks
Amazon Web Services
RightScale 2017 State of the Cloud
RightScale 2017 State of the CloudRightScale 2017 State of the Cloud
RightScale 2017 State of the Cloud
RightScale
Service Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and KubernetesService Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and Kubernetes
Sreenivas Makam
Cloud Trends for 2017 and Actions You Can Take Now
Cloud Trends for 2017 and Actions You Can Take NowCloud Trends for 2017 and Actions You Can Take Now
Cloud Trends for 2017 and Actions You Can Take Now
RightScale
Microservices Workshop All Topics Deck 2016
Microservices Workshop All Topics Deck 2016Microservices Workshop All Topics Deck 2016
Microservices Workshop All Topics Deck 2016
Adrian Cockcroft
B4 - The TCO of cloud applications
B4 - The TCO of cloud applicationsB4 - The TCO of cloud applications
B4 - The TCO of cloud applications
Amazon Web Services
AWS Partner Webcast - Improving Your AWS Cost Efficiency with Cloudability
AWS Partner Webcast - Improving Your AWS Cost Efficiency with CloudabilityAWS Partner Webcast - Improving Your AWS Cost Efficiency with Cloudability
AWS Partner Webcast - Improving Your AWS Cost Efficiency with Cloudability
Amazon Web Services
Webinar: Accelerate Your Cloud Business With CloudHealth
Webinar: Accelerate Your Cloud Business With CloudHealthWebinar: Accelerate Your Cloud Business With CloudHealth
Webinar: Accelerate Your Cloud Business With CloudHealth
CloudHealth by VMware
Top 10 Cloud Trends for 2017
Top 10 Cloud Trends for 2017Top 10 Cloud Trends for 2017
Top 10 Cloud Trends for 2017
Tableau Software

Similar to Google play billing v3.0 (20)

丼仂 仆仂于仂亞仂 于 Android O (Grodno HTP)
丼仂 仆仂于仂亞仂 于 Android O (Grodno HTP)丼仂 仆仂于仂亞仂 于 Android O (Grodno HTP)
丼仂 仆仂于仂亞仂 于 Android O (Grodno HTP)
Kirill Rozov
丿从仂仍舒-弌亟亳 舒亰舒弍仂从亳 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 5 仍亠从亳. 舒亰仆仂亠
丿从仂仍舒-弌亟亳 舒亰舒弍仂从亳 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 5 仍亠从亳. 舒亰仆仂亠丿从仂仍舒-弌亟亳 舒亰舒弍仂从亳 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 5 仍亠从亳. 舒亰仆仂亠
丿从仂仍舒-弌亟亳 舒亰舒弍仂从亳 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 5 仍亠从亳. 舒亰仆仂亠
仍亠弍 丐舒舒仂于
仂亞仂仆亶 舒仆舒仍亳亰 亟仍 舒亶仆亳从仂于
仂亞仂仆亶 舒仆舒仍亳亰 亟仍 舒亶仆亳从仂于仂亞仂仆亶 舒仆舒仍亳亰 亟仍 舒亶仆亳从仂于
仂亞仂仆亶 舒仆舒仍亳亰 亟仍 舒亶仆亳从仂于
舒从亠亳仆亞-舒仆舒仍亳亳从舒 OWOX BI
Droidcon Moscow 2015. Google Analytics 亳 GTM 亟仍 仄仂弍亳仍仆 仗亳仍仂亢亠仆亳亶 Android...
Droidcon Moscow 2015. Google Analytics 亳 GTM 亟仍 仄仂弍亳仍仆 仗亳仍仂亢亠仆亳亶 Android...Droidcon Moscow 2015. Google Analytics 亳 GTM 亟仍 仄仂弍亳仍仆 仗亳仍仂亢亠仆亳亶 Android...
Droidcon Moscow 2015. Google Analytics 亳 GTM 亟仍 仄仂弍亳仍仆 仗亳仍仂亢亠仆亳亶 Android...
Mail.ru Group
Toolbar (Lecture 16 toolbar)
Toolbar (Lecture 16  toolbar)Toolbar (Lecture 16  toolbar)
Toolbar (Lecture 16 toolbar)
Noveo
舒亠仄 亳仆亠仆亠 仄舒从亠仂仍仂亞 仗仂仆亳仄舒 仂 舒从仂亠 API. 舒亰弍亳舒亠仄 仂亶于仂 API G...
舒亠仄 亳仆亠仆亠 仄舒从亠仂仍仂亞 仗仂仆亳仄舒 仂 舒从仂亠 API. 舒亰弍亳舒亠仄 仂亶于仂 API G...舒亠仄 亳仆亠仆亠 仄舒从亠仂仍仂亞 仗仂仆亳仄舒 仂 舒从仂亠 API. 舒亰弍亳舒亠仄 仂亶于仂 API G...
舒亠仄 亳仆亠仆亠 仄舒从亠仂仍仂亞 仗仂仆亳仄舒 仂 舒从仂亠 API. 舒亰弍亳舒亠仄 仂亶于仂 API G...
仍亠从亠亶 弌亠仍亠亰仆于
C# Web. 舒仆亳亠 11.
C# Web. 舒仆亳亠 11.C# Web. 舒仆亳亠 11.
C# Web. 舒仆亳亠 11.
Igor Shkulipa
In-App-Purchases 亳 亠仄 亳 亠亟
In-App-Purchases 亳  亠仄 亳 亠亟In-App-Purchases 亳  亠仄 亳 亠亟
In-App-Purchases 亳 亠仄 亳 亠亟
Pavel Bashmakov
Aspect Oriented Approach
Aspect Oriented ApproachAspect Oriented Approach
Aspect Oriented Approach
Dmytro Chyzhykov
仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 7. 舒弍仂舒 亠
仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 7. 舒弍仂舒  亠仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 7. 舒弍仂舒  亠
仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 7. 舒弍仂舒 亠
仍亠弍 丐舒舒仂于
仗亠从仆仂-亳亠仆亳仂于舒仆仆亶 仂亟仂亟
仗亠从仆仂-亳亠仆亳仂于舒仆仆亶 仂亟仂亟仗亠从仆仂-亳亠仆亳仂于舒仆仆亶 仂亟仂亟
仗亠从仆仂-亳亠仆亳仂于舒仆仆亶 仂亟仂亟
akopium
仆舒仍亳亰 仗仂亟舒亢 于 仗亳仍仂亢亠仆亳亳 QlikView 11. 弌仂亰亟舒仆亳亠 仗亳仍仂亢亠仆亳 亟仍 弍亳亰仆亠-舒仆舒仍亳亰舒
仆舒仍亳亰 仗仂亟舒亢 于 仗亳仍仂亢亠仆亳亳 QlikView 11. 弌仂亰亟舒仆亳亠 仗亳仍仂亢亠仆亳 亟仍 弍亳亰仆亠-舒仆舒仍亳亰舒仆舒仍亳亰 仗仂亟舒亢 于 仗亳仍仂亢亠仆亳亳 QlikView 11. 弌仂亰亟舒仆亳亠 仗亳仍仂亢亠仆亳 亟仍 弍亳亰仆亠-舒仆舒仍亳亰舒
仆舒仍亳亰 仗仂亟舒亢 于 仗亳仍仂亢亠仆亳亳 QlikView 11. 弌仂亰亟舒仆亳亠 仗亳仍仂亢亠仆亳 亟仍 弍亳亰仆亠-舒仆舒仍亳亰舒
Ivan Shamaev
仆亟亠从亳仂于舒仆亳亠 于 Magento
仆亟亠从亳仂于舒仆亳亠 于 Magento仆亟亠从亳仂于舒仆亳亠 于 Magento
仆亟亠从亳仂于舒仆亳亠 于 Magento
Magecom Ukraine
Magento - 仆仂仆 舒仗仍
Magento - 仆仂仆 舒仗仍Magento - 仆仂仆 舒仗仍
Magento - 仆仂仆 舒仗仍
meet_magento
PayStore
PayStorePayStore
PayStore
rusbase.vc
亠从亳 Android
亠从亳 Android亠从亳 Android
亠从亳 Android
Pavel Tsukanov
舒从亠亳仆亞 仄仂弍亳仍仆 仗亳仍仂亢亠仆亳亶: 亠从-仍亳 仗仂 亰舒仗从 仗亠于仂亶 从舒仄仗舒仆亳亳
舒从亠亳仆亞 仄仂弍亳仍仆 仗亳仍仂亢亠仆亳亶: 亠从-仍亳 仗仂 亰舒仗从 仗亠于仂亶 从舒仄仗舒仆亳亳舒从亠亳仆亞 仄仂弍亳仍仆 仗亳仍仂亢亠仆亳亶: 亠从-仍亳 仗仂 亰舒仗从 仗亠于仂亶 从舒仄仗舒仆亳亳
舒从亠亳仆亞 仄仂弍亳仍仆 仗亳仍仂亢亠仆亳亶: 亠从-仍亳 仗仂 亰舒仗从 仗亠于仂亶 从舒仄仗舒仆亳亳
Netpeak
Google Tag Manager: 于亠弍亳仆舒 仗仂亟于亳仆仂亞仂 仂于仆/
Google Tag Manager: 于亠弍亳仆舒 仗仂亟于亳仆仂亞仂 仂于仆/Google Tag Manager: 于亠弍亳仆舒 仗仂亟于亳仆仂亞仂 仂于仆/
Google Tag Manager: 于亠弍亳仆舒 仗仂亟于亳仆仂亞仂 仂于仆/
Netpeak
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020
OdessaJS Conf
丼仂 仆仂于仂亞仂 于 Android O (Grodno HTP)
丼仂 仆仂于仂亞仂 于 Android O (Grodno HTP)丼仂 仆仂于仂亞仂 于 Android O (Grodno HTP)
丼仂 仆仂于仂亞仂 于 Android O (Grodno HTP)
Kirill Rozov
丿从仂仍舒-弌亟亳 舒亰舒弍仂从亳 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 5 仍亠从亳. 舒亰仆仂亠
丿从仂仍舒-弌亟亳 舒亰舒弍仂从亳 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 5 仍亠从亳. 舒亰仆仂亠丿从仂仍舒-弌亟亳 舒亰舒弍仂从亳 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 5 仍亠从亳. 舒亰仆仂亠
丿从仂仍舒-弌亟亳 舒亰舒弍仂从亳 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 5 仍亠从亳. 舒亰仆仂亠
仍亠弍 丐舒舒仂于
Droidcon Moscow 2015. Google Analytics 亳 GTM 亟仍 仄仂弍亳仍仆 仗亳仍仂亢亠仆亳亶 Android...
Droidcon Moscow 2015. Google Analytics 亳 GTM 亟仍 仄仂弍亳仍仆 仗亳仍仂亢亠仆亳亶 Android...Droidcon Moscow 2015. Google Analytics 亳 GTM 亟仍 仄仂弍亳仍仆 仗亳仍仂亢亠仆亳亶 Android...
Droidcon Moscow 2015. Google Analytics 亳 GTM 亟仍 仄仂弍亳仍仆 仗亳仍仂亢亠仆亳亶 Android...
Mail.ru Group
Toolbar (Lecture 16 toolbar)
Toolbar (Lecture 16  toolbar)Toolbar (Lecture 16  toolbar)
Toolbar (Lecture 16 toolbar)
Noveo
舒亠仄 亳仆亠仆亠 仄舒从亠仂仍仂亞 仗仂仆亳仄舒 仂 舒从仂亠 API. 舒亰弍亳舒亠仄 仂亶于仂 API G...
舒亠仄 亳仆亠仆亠 仄舒从亠仂仍仂亞 仗仂仆亳仄舒 仂 舒从仂亠 API. 舒亰弍亳舒亠仄 仂亶于仂 API G...舒亠仄 亳仆亠仆亠 仄舒从亠仂仍仂亞 仗仂仆亳仄舒 仂 舒从仂亠 API. 舒亰弍亳舒亠仄 仂亶于仂 API G...
舒亠仄 亳仆亠仆亠 仄舒从亠仂仍仂亞 仗仂仆亳仄舒 仂 舒从仂亠 API. 舒亰弍亳舒亠仄 仂亶于仂 API G...
仍亠从亠亶 弌亠仍亠亰仆于
C# Web. 舒仆亳亠 11.
C# Web. 舒仆亳亠 11.C# Web. 舒仆亳亠 11.
C# Web. 舒仆亳亠 11.
Igor Shkulipa
In-App-Purchases 亳 亠仄 亳 亠亟
In-App-Purchases 亳  亠仄 亳 亠亟In-App-Purchases 亳  亠仄 亳 亠亟
In-App-Purchases 亳 亠仄 亳 亠亟
Pavel Bashmakov
Aspect Oriented Approach
Aspect Oriented ApproachAspect Oriented Approach
Aspect Oriented Approach
Dmytro Chyzhykov
仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 7. 舒弍仂舒 亠
仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 7. 舒弍仂舒  亠仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 7. 舒弍仂舒  亠
仆亳. 舒亰舒弍仂从舒 仗亳仍仂亢亠仆亳亶 亟仍 iOS. 亠从亳 7. 舒弍仂舒 亠
仍亠弍 丐舒舒仂于
仗亠从仆仂-亳亠仆亳仂于舒仆仆亶 仂亟仂亟
仗亠从仆仂-亳亠仆亳仂于舒仆仆亶 仂亟仂亟仗亠从仆仂-亳亠仆亳仂于舒仆仆亶 仂亟仂亟
仗亠从仆仂-亳亠仆亳仂于舒仆仆亶 仂亟仂亟
akopium
仆舒仍亳亰 仗仂亟舒亢 于 仗亳仍仂亢亠仆亳亳 QlikView 11. 弌仂亰亟舒仆亳亠 仗亳仍仂亢亠仆亳 亟仍 弍亳亰仆亠-舒仆舒仍亳亰舒
仆舒仍亳亰 仗仂亟舒亢 于 仗亳仍仂亢亠仆亳亳 QlikView 11. 弌仂亰亟舒仆亳亠 仗亳仍仂亢亠仆亳 亟仍 弍亳亰仆亠-舒仆舒仍亳亰舒仆舒仍亳亰 仗仂亟舒亢 于 仗亳仍仂亢亠仆亳亳 QlikView 11. 弌仂亰亟舒仆亳亠 仗亳仍仂亢亠仆亳 亟仍 弍亳亰仆亠-舒仆舒仍亳亰舒
仆舒仍亳亰 仗仂亟舒亢 于 仗亳仍仂亢亠仆亳亳 QlikView 11. 弌仂亰亟舒仆亳亠 仗亳仍仂亢亠仆亳 亟仍 弍亳亰仆亠-舒仆舒仍亳亰舒
Ivan Shamaev
仆亟亠从亳仂于舒仆亳亠 于 Magento
仆亟亠从亳仂于舒仆亳亠 于 Magento仆亟亠从亳仂于舒仆亳亠 于 Magento
仆亟亠从亳仂于舒仆亳亠 于 Magento
Magecom Ukraine
Magento - 仆仂仆 舒仗仍
Magento - 仆仂仆 舒仗仍Magento - 仆仂仆 舒仗仍
Magento - 仆仂仆 舒仗仍
meet_magento
舒从亠亳仆亞 仄仂弍亳仍仆 仗亳仍仂亢亠仆亳亶: 亠从-仍亳 仗仂 亰舒仗从 仗亠于仂亶 从舒仄仗舒仆亳亳
舒从亠亳仆亞 仄仂弍亳仍仆 仗亳仍仂亢亠仆亳亶: 亠从-仍亳 仗仂 亰舒仗从 仗亠于仂亶 从舒仄仗舒仆亳亳舒从亠亳仆亞 仄仂弍亳仍仆 仗亳仍仂亢亠仆亳亶: 亠从-仍亳 仗仂 亰舒仗从 仗亠于仂亶 从舒仄仗舒仆亳亳
舒从亠亳仆亞 仄仂弍亳仍仆 仗亳仍仂亢亠仆亳亶: 亠从-仍亳 仗仂 亰舒仗从 仗亠于仂亶 从舒仄仗舒仆亳亳
Netpeak
Google Tag Manager: 于亠弍亳仆舒 仗仂亟于亳仆仂亞仂 仂于仆/
Google Tag Manager: 于亠弍亳仆舒 仗仂亟于亳仆仂亞仂 仂于仆/Google Tag Manager: 于亠弍亳仆舒 仗仂亟于亳仆仂亞仂 仂于仆/
Google Tag Manager: 于亠弍亳仆舒 仗仂亟于亳仆仂亞仂 仂于仆/
Netpeak
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020
OdessaJS Conf

Google play billing v3.0

  • 2. 仍舒仆 亰亠仆亳亠 API 从于舒亠仄 亠 于 弍舒仆从亠) 亠亞亳亳亠仄 从舒仂从 弌仂亰亟舒亠仄 仗仂亟从 舒舒亠仄 亳 仆舒舒亳于舒亠仄 亳仂亟仆亳从亳 丐亠亳亠仄 弍亠仗亠亳于舒亠仄 弍亠亰仂仗舒仆仂 于仂亟
  • 3. 舒弍仂舒 API 弌亠仄舒亳亠从仂亠 仗亠亟舒于仍亠仆亳亠 亠亳 2.0 亠亳 3.0 仂于亠从舒 仆舒仍亳亳 仗仂亟仗亳从亳 亳仍亳 仗仂从仗从亳
  • 4. 舒弍仂舒 API 仂从仗从舒 + 仂亟仗亳从舒 Bundle buyIntentBundle = mService.getBuyIntent(3, packageName, "sku", "inapp|subs", "developerPayload"); PendingIntent pendingIntent = buyIntentBundle.getParcelable ("BUY_INTENT"); startIntentSenderForResult(pendingIntent.getIntentSender(), 1001, new Intent(), Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0)); 亞亟亠 developerPayload - 亳仗仂仍亰亠 亟仍 从仂仆仂仍 仗仂从仗从亳 (String). protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1001) { int responseCode = data.getIntExtra("RESPONSE_CODE", 0); String purchaseData = data.getStringExtra("INAPP_PURCHASE_DATA"); String dataSignature = data.getStringExtra("INAPP_DATA_SIGNATURE"); if (resultCode == RESULT_OK) { JSONObject jo = new JSONObject(purchaseData); String sku = jo.getString("productId"); } } }
  • 5. 舒弍仂舒 API 仂从仗从舒 + 仂亟仗亳从舒 于亠 BuyProduct: { 油 油"orderId":"12999763169054705758.137107940638715", 油 油"packageName":"com.example.app", 油 油"productId":"exampleSku", 油 油"purchaseTime":1345678900000, 油 油"purchaseState":0, 油 油"developerPayload":"DeveloperPayload", 油 油"purchaseToken":"rojeslcdyyiapnqcynkjyyjh" } Signature: E8it1W0vaxaqldd6H6w0hrbFw1BNZrhSQYLfn0g7ErWu6mxOb4WI7brXWQggEHoU9r4.......uqlgEkA==
  • 6. 舒弍仂舒 API 仂亠弍仍亠仆亳亠 + 仂仗亳从舒 亠亳 2.0 仂亠弍仍亠仆亳亠 仂仍从仂 于亠亳 3.0 仄亠仆舒 仗仂亟仗亳从亳 舒仆舒仍仂亞亳仆仂 于亠亳亳 3.0 亠亳 3.0 仂亠弍仍亠仆亳亠 int response = mService.consumePurchase(3, packageName, token); 亠亟仗亠亢亟亠仆亳亠: 亠 于亰于舒亶亠 consumePurchase 仄亠仂亟 于 仂仆仂于仆仂仄 仗仂仂从亠. 仄亠仆舒 仗仂亟仗亳从亳 丐亠从舒 于亠亳 Billing API 仆亠 仗亠亟仂舒于仍磳 仗仂亟亟亠亢从 仗仂亞舒仄仄仆仂亶 仂仄亠仆 仗仂亟仗亳从亳. 仂仍亠 仂仄亠仆 仗仂亟仗亳从亳 仗仂仍亰仂于舒亠仍 于亠 舒于仆仂 亳仄亠亠 亟仂仗 从 仗仂亟仗亳从亠 亟仂 从仂仆舒 仂从舒 (亠, 仂亟). 仂亰于舒 亠亟于 亰舒 亢亠 从仗仍亠仆仆 仗仂亟仗亳从 仄仂亢亠 于亠仆 仂仍从仂 舒亰舒弍仂亳从. 仂仍亠 亟舒仍亠仆亳 仗亳仍仂亢亠仆亳, 于亠 仗仂亟仗亳从亳 仂舒ム 仂亟仗亳从舒 仆亠 磦仍磳 仗仂亠弍仍磳仄仄 仗仂亟从仂仄. 于仂亰仄仂亢仆仂 仂从 仆亢仆 舒仆亳 Google Play: Intent intent = new Intent(Intent.ACTION_VIEW); String url = "market://details?id=" + packageName; intent.setData(Uri.parse(url)); startActivity(intent);
  • 7. 舒弍仂舒 API 仂仍亠仆亳亠 亟亠舒仍亠亶 仗仂亟从仂于 亠亟仗亠亢亟亠仆亳亠: 亠 于亰于舒亶亠 getSkuDetails 仄亠仂亟 于 仂仆仂于仆仂仄 仗仂仂从亠. int response = skuDetails.getInt("RESPONSE_CODE"); if (response == 0) { ArrayList responseList = skuDetails.getStringArrayList("DETAILS_LIST"); for (String thisResponse : responseList) { ProductDetails productDetail = new ProductDetails(itemType, thisResponse); } } ArrayList skuList = new ArrayList(); skuList.add("premiumUpgrade"); Bundle querySkus = new Bundle(); querySkus.putStringArrayList("ITEM_ID_LIST", skuList); Bundle skuDetails = mService.getSkuDetails(3, packageName, "inapp|subs", querySkus);
  • 8. 舒弍仂舒 API 仂仍亠仆亳亠 亟亠舒仍亠亶 仗仂亟从仂于 于亠 ProductDetail: { "title":"Subscription 1 (Billing 3.0)", "price":"8,14油", "type":"subs", "description":"Description of subscriptions ", "productId":"subscription_1" }
  • 9. 舒弍仂舒 API 仂仍亠仆亳亠 仗亳从舒 从仗仍亠仆仆 仗仂亟从仂于 Bundle items = mService.getPurchases(3, packageName, "inapp|subs", null); //仂亰于舒舒亠 仆亠 弍仂仍亠亠 700 仗仂从仗仂从 亰舒 舒亰. int response = items.getInt("RESPONSE_CODE"); if (response == 0) { ArrayList<String> ownedSkus = items.getStringArrayList("INAPP_PURCHASE_ITEM_LIST"); ArrayList<String> purchaseDataList = items.getStringArrayList("INAPP_PURCHASE_DATA_LIST"); ArrayList<String> signatureList = items.getStringArrayList("INAPP_DATA_SIGNATURE"); String continuationToken = items.getString("INAPP_CONTINUATION_TOKEN"); //仍亳 仗仂亟从仂于 仄亠仆亠 700 仂 continuationToken 于亠仆亠 仗仄. for (int i = 0; i < purchaseDataList.size(); ++i) { String purchaseData = purchaseDataList.get(i); String signature = signatureList.get(i); String sku = ownedSkus.get(i); } }
  • 10. 舒弍仂舒 API 仂仍亠仆亳亠 仗亳从舒 从仗仍亠仆仆 仗仂亟从仂于 于亠 OwnedSku: controlled_1 PurchaseData: { "orderId":"12999763169054705758.1366607722131921", "packageName":"com.ua.makeev.billingexample", "productId":"controlled_1", "purchaseTime":1365369158000, "purchaseState":0, "purchaseToken":"koybwcalcuninxrvzzocieaz.AO.........o6jcIjXTCN-7Yrt3tIoUzEDJuxabfpI2H1J5U2"} } Signature: E8it1W0vaxaqldd6H6w0hrbFw1BNZrhSQYLfn0g7ErWu6mxOb4WI7brXWQggEHoU9r4.......uqlgEkA==
  • 11. 仂亟亞仂仂于从舒 弌舒仆, 舒亰舒弍仂亳从亳 亳亰 从仂仂 仄仂亞 弍 仗仂亟舒于舒仄亳 亞亠仆亳仆舒, 于舒仍亳, 于亳, 亠仍亞亳, 舒亰亳仍亳, 舒仆舒亟舒, 丼亠亳, 舒仆亳, 个亳仆仍礌亟亳, 个舒仆亳, 亠仄舒仆亳, 仂仆从仂仆亞, 仆亟亳, 仍舒仆亟亳, 亰舒亳仍, 舒仍亳, 亊仗仂仆亳, 亠从亳从舒, 亳亟亠仍舒仆亟, 仂于舒 亠仍舒仆亟亳, 仂于亠亞亳, 仂仍舒, 仂亞舒仍亳, 仂亳, 弌亳仆亞舒仗, 仗舒仆亳, 豫亢仆舒 仂亠, 丿于亠亳, 丿于亠亶舒亳, 丐舒亶于舒仆, 亠仍亳从仂弍亳舒仆亳, 弌丿
  • 12. 仂亟亞仂仂于从舒 从于舒亠仄 亠 于 亳仆仂舒仆仆仂仄 弍舒仆从亠) 1) 亠亞亳亳亠仄 http://www.payoneer.com/cardholdersIntro.aspx 亳 仆舒仍亳亳亳 亰舒亞舒仆 仗舒仗仂舒 亳仗仂仍亰亠仄 亠亞仂. 仂舒于从舒 从舒 1 仄亠 2) 仂亟舒亠仄 亰舒磦从 仆舒 仗仂亟从仍ム亠仆亳亠 从 仍亞亠 US Payment Service. 3) 丶亠仆 (亠仆舒 亰舒于亳亳 仂 仗舒仆从仂亶 仗仂亞舒仄仄): $29.95 - 亠亢亠亞仂亟仆仂亠 仂亟亠亢舒仆亳亠 从舒 $12.95 - 亰舒仄亠仆舒 从舒 $3.15 - 仆亳亠 仆舒仍亳仆 亟亠仆亠亞. + 3 % - 仗亳 仆亳亳 仆亠 于 亟仂仍仍舒舒 $1.00 - 仂从舒亰 于 于亟舒亠 亠亟于 $1.00 - 仂于亠从舒 弍舒仍舒仆舒
  • 13. 弌仂亰亟舒仆亳亠 仗仂亟从仂于 于 developer 从仂仆仂仍亳 仂仆仂仍亳亠仄亠 - 仗仂亟从, 亳仆仂仄舒亳 仂 从仂仂, 仄仂亢仆仂 于 仍ミ頴笑 仄仂仄亠仆 仗仂仍亳 Google Play. 仗仂仍亰亠 于 于亠亳 2.0 亳 3.0. 亠 从仂仆仂仍亳亠仄亠 - 仄仂亢亠 仗仂从仗舒 仄仆仂亞仂 舒亰. 仆仂仄舒亳 仂 舒仆亰舒从亳 仆亠 舒仆亳 于 Google Play. 仂仗亠仆 仂仍从仂 亟仍 于亠亳亳 2.0. 亳 亳仗仂仍亰仂于舒仆亳亳 于亠亳亳 3.0 亳 仗仂亟从 于仂仗亳仆亳仄舒ム 从舒从 从仂仆仂仍亳亠仄亠. 仂亟仗亳从舒 - 于仂亰仄仂亢仆舒 亠亢亠仄亠仆舒 亳 亞仂亟仂于舒 仗仂亟仗亳从舒. 仗仂仍亰亠 于 于亠亳 2.0 亳 3.0. 舒仂亶从舒 从仂仆仂仍亳 舒亰舒弍仂亳从舒
  • 16. 舒仂亶从舒 仗亳仍仂亢亠仆亳 舒仂亶从舒 仄舒仆亳亠舒 亠亳 2.0 <uses-permission android:name="com.android.vending.BILLING" /> <service android:name=".billing.BillingService" /> <receiver android:name=".billing.BillingReceiver" > <intent-filter> <action android:name="com.android.vending.billing.IN_APP_NOTIFY" /> <action android:name="com.android.vending.billing.RESPONSE_CODE" /> <action android:name="com.android.vending.billing.PURCHASE_STATE_CHANGED" /> </intent-filter> </receiver> 亠亳 3.0 <uses-permission android:name="com.android.vending.BILLING" /> 从于舒亠仄 Android SDK Manager. 丕舒仆舒于仍亳于舒亠仄 Google Play Billing Library. 仂亟仆亳从亳 仍亠亢舒 于 <sdk>/extras/google/play_billing/. 舒舒亠仄 亳仂亟仆亳从亳
  • 17. 丐亠亳仂于舒仆亳亠 丐亠仂于亠 仗仂亟从 舒亠亰亠于亳仂于舒仆仆亠 亳亟亠仆亳亳从舒仂 仗仂亟从仂于 android.test.purchased 仂于亠, 从舒从 弍亟仂 于 仗亠仆仂 从仗亳仍亳 仂于舒. android.test.canceled 仗仂从仗从舒 仂仄亠仆亠仆舒. android.test.refunded 于仂亰于舒 亠亟于. android.test.item_unavailable 仗仂亟从 仆亠 仆舒亶亟亠仆 于 仗亳从亠 仗仂亟从仂于. 亳仍仂亢亠仆亳亠 弍仍仂 仂仗弍仍亳从仂于舒仆仂? 亳仍仂亢亠仆亳亠 仂仍从仂 亰舒亞亢亠仆仂? 仂 亰舒仗从舒亠 仗亳仍仂亢亠仆亳亠 于亠 No No Any Unsigned No No Developer Signed Yes No Any Unsigned Yes No Developer Signed Yes No Test account Signed Yes Yes Any Signed
  • 18. 丐亠亳仂于舒仆亳亠 丐亠弍仂于舒仆亳 亟仍 亠亳仂于舒仆亳: 1) 仂亟从 亟仂仍亢亠仆 弍 舒从亳于亳仂于舒仆. 2) 亠亳亳 仗亳仍仂亢亠仆亳 于 仄舒从亠亠 亳 仆舒 仂亶于亠 亟仂仍亢仆 仂于仗舒亟舒 3) 亳仍仂亢亠仆亳亠 亟仂仍亢仆仂 弍 仗仂亟仗亳舒仆仂 Production 从仍ム仂仄. 4) 仗仂仍亰仂于舒 亠仂于亶 舒从从舒仆 亳 仂仆 亟仂仍亢亠仆 弍 亞仍舒于仆仄 仆舒 仂亶于亠. 亠仍亰 仗仂从仗舒 舒仄仂亞仂 亠弍. 5) 丐仂仍从仂 Google 舒从从舒仆 亳仄亠舒仆亳亠: 亟仍 舒仆仂于从亳 亟亞仂亶 亠仆仂亶 亰舒仗亳亳 从舒从 仂仆仂于仆仂亶 仆亢仆仂 弍舒于舒 仆舒仂亶从亳 亟仂 亰舒于仂亟从亳 弌仂弍于亠仆仆亠 仗仂亟从
  • 19. 亠亰仂仗舒仆仂 仂于亠从舒 仗仂从仗从亳 仆舒 仂仂仆亠 亠于亠舒; 仄亠 于仂亰仄仂亢仆仂 仂仄亠仆亳 仗仂从仗从 仂 仂仂仆 亠于亠舒 (仗亳 亠亞仂 仆舒仍亳亳亳); 亳仆舒仄亳亠从舒 亞亠仆亠舒亳 developerPayload; 弍从舒亳 从仂亟舒 亠舒仍亳亰ム亠亞仂 仍仂亞亳从 仗仂从仗从亳; 亳 亳仗仂仍亰仂于舒仆亳亳 Proguard, 于 舒亶仍 从仂仆亳亞舒亳亳 亟仂弍舒于亳: -keep class com.android.vending.billing.**; 亠 仂舒仆 Public Key 从舒从 舒亳亠从 仂从;
  • 20. 于仂亟 亠亳仄亠于舒 3 于亠亳亳: 1) 仂磦亳仍舒 于仂亰仄仂亢仆仂 仄仂亠 亟亠舒仍亳 仗仂亟从仂于 亟仂仗仆 亟仍 仗仂亟舒亢亳 (亠仆舒, 亳仗, 仆舒亰于舒仆亳亠, 仂仗亳舒仆亳亠); 2) 仆仂仄舒亳 仂 仗仂从仗从亠 亟仂仗仆舒 舒亰 仗仂仍亠 亠亠 亰舒于亠亠仆亳; 3) 亠 仗仂亟从 舒仍亳 从仂仆仂仍亳亠仄仄亳; 4) 仂仍亠亠 仗仂舒 亠舒仍亳亰舒亳. 亠亳仄亠于舒 2 于亠亳亳: 1) 亠 仆亢仆仂 亳仗仂仍亰仂于舒 onActivityResult 仍舒亠仍.