Air-Extension-Inappbilling adalah Adobe Air Native Extension (ANE) untuk membeli produk untuk beberapa pasar Android (penduduk setempat dan global).
........... راهنمــــــای فـــــــارسی ..........
Kami menyiapkan 2 jenis Template Proyek:

Menggunakan Google Play dalam aplikasi tagihan Versi 3 API.
Fungsi yang Didukung:
Tolong, baca dokumen dan coba ane sebelum mengajukan pertanyaan.
http://developer.android.com/google/play/billing/index.html
http://help.adobe.com/en_us/air/extensions/index.html
Tambahkan file iabilling.ane dari folder paket ke Proyek Udara Adobe Anda.
Tutorial: Cara Menyematkan Anes ke FlashBuilder, Flash (Animate) dan FlashDevelop
Masukkan semua menggunakan item ke dalam array '_items'.
Dapatkan basis64Key dari konsol pasar dan ganti dengan '== 5amp1e8a5e64ke7 =='.
Juga jika Anda ingin menambahkan pasar baru, Anda harus menambahkan kasus baru dengan 'bindeurl' dan 'packageUrl'.
import com.gerantech.extensions.iab.Iab ;
import com.gerantech.extensions.iab.Purchase ;
import com.gerantech.extensions.iab.events.IabEvent ;
...
// provide all sku items
_items = new Array ( "my.product.id1" , "my.product.id2" , "my.product.id3" ) ;
var _marketName : String = "google" ;
var base64Key : String , bindURL : String , package URL:String;
switch ( _marketName ) {
case "google" :
base64Key = "==5AMP1E8A5E64KE7==" ;
bindURL = "com.android.vending.billing.InAppBillingService.BIND" ;
packageURL = "com.android.vending" ;
break;
case "cafebazaar" :
base64Key = "==5AMP1E8A5E64KE7==" ;
bindURL = "ir.cafebazaar.pardakht.InAppBillingService.BIND" ;
packageURL = "com.farsitel.bazaar" ;
break;
case "myket" :
base64Key = "==5AMP1E8A5E64KE7==" ;
bindURL = "ir.mservices.market.InAppBillingService.BIND" ;
packageURL = "ir.mservices.market" ;
break;
case "cando" :
base64Key = "==5AMP1E8A5E64KE7==" ;
bindURL = "com.ada.market.service.payment.BIND" ;
packageURL = "com.ada.market" ;
break;
default:
trace( "BillingManager ::: market name[" + _marketName + "] is invalid." );
break;
}
Iab . instance . addEventListener (IabEvent . SETUP_FINISHED , iabSetupFinishedHandler) ;
Iab . instance . startSetup(base64Key, bindURL, package URL);
...
function iabSetupFinishedHandler(event : IabEvent) : void {
trace( "BillingManager ::: iabSetupFinishedHandler" , event.result.message);
Iab.instance.removeEventListener(IabEvent.SETUP_FINISHED, iabSetupFinishedHandler);
queryInventory();
}Terkadang pengguna tidak dapat menyelesaikan aliran pembelian menyebabkan masalah jaringan atau kesalahan fatal lainnya. Anda dapat memulihkan item setelah menginisialisasi ke pengalaman pengguna yang lebih baik.
/**Getting purchased product details, Iab should be initialized first</br>
* if put items args getting purchased and not purchased product details
*/
function queryInventory() : void {
//restoring purchased in-app items and subscriptions
Iab.instance.addEventListener(IabEvent.QUERY_INVENTORY_FINISHED, iabQueryInventoryFinishedHandler);
Iab.instance.queryInventory();
}
...
function iabQueryInventoryFinishedHandler(event : IabEvent) : void {
Iab.instance.removeEventListener(IabEvent.QUERY_INVENTORY_FINISHED, iabQueryInventoryFinishedHandler);
if ( !event.result.succeed ) {
trace ( "iabQueryInventoryFinishedHandler failed to finish." ) ;
return ;
}
// consume all consumable items
/*for each(var k:String in _items) {
var purchase:Purchase = Iab.instance.getPurchase(k);
if( purchase == null || purchase.itemType == Iab.ITEM_TYPE_SUBS )
continue;
consume(purchase.sku);
}*/
} Ketika pengguna disadap atau diklik pada metode pembelian panggilan tombol 'beli'. Jangan lupa untuk membeli barang itu harus dikonsumsi.
Untuk barang -barang yang dapat dikonsumsi, Anda harus segera mengonsumsi barang -barang setelah pembelian selesai dalam metode pendengar.
// making the purchase, Iab should be initialized first
Iab . instance . addEventListener (IabEvent . PURCHASE_FINISHED , iabPurchaseFinishedHandler) ;
Iab . instance . purchase(sku, Iab . ITEM_TYPE_INAPP , payload) ;
...
function iabPurchaseFinishedHandler(event : IabEvent) : void {
trace( "BillingManager ::: iabPurchaseFinishedHandler" , event.result.message);
Iab.instance.removeEventListener(IabEvent.PURCHASE_FINISHED, iabPurchaseFinishedHandler);
if (!event.result.succeed) {
trace (event . result . response, event . result . message ) ;
return ;
}
var purchase:Purchase = Iab.instance.getPurchase(event.result.purchase.sku);
if( purchase == null )
queryInventory();
else // if you want immediatly consume after purchase
consume(purchase.sku);
}Untuk item yang tidak dapat dikonsumsi tidak perlu menggunakan metode ini.
function consume(sku : String ) : void {
trace( "BillingManager ::: consume" , sku);
Iab.instance.addEventListener(IabEvent.CONSUME_FINISHED, iabConsumeFinishedHandler);
Iab.instance.consume(sku);
}
function iabConsumeFinishedHandler(event : IabEvent) : void {
trace( "BillingManager ::: iabConsumeFinishedHandler" , event.result.message);
Iab.instance.removeEventListener(IabEvent.CONSUME_FINISHED, iabConsumeFinishedHandler);
if (!event.result.succeed) {
trace ( "iabConsumeFinishedHandler failed to consume:" , event . result . message ) ;
return ;
}
}Tambahkan Izin Penagihan Berdasarkan Pasar Terpilih Tambahkan baris berikut ke file Air Application-App.xml Anda di dalam <ImifestAdditions>
<!-- In APP Billing permissions -->
< uses-permission android : name = " android.permission.INTERNET " />
<!-- For Google --> < uses-permission android : name = " com.android.vending.BILLING " />
<!-- For CafeBazaar --> <!-- <uses-permission android:name="com.farsitel.bazaar.permission.PAY_THROUGH_BAZAAR" /> -->
<!-- For Myket --> <!-- <uses-permission android:name="ir.mservices.market.BILLING" /> -->
< application android : enabled = " true " >
< activity android : name = " com.gerantech.extensions.IabActivity "
android : theme = " @android:style/Theme.Translucent.NoTitleBar.Fullscreen "
android : background = " #30000000 "
android : screenOrientation = " portrait "
android : configChanges = " orientation|keyboardHidden " />
</ application >Tambahkan ID Ekstensi ID Ekstensi: com.gerantech.extensions.iabilling
< extensions >
< extensionID >com.gerantech.extensions.iabilling</ extensionID >
</ extensions >http://developer.android.com/google/play/billing/billing_testing.html
Ane dibangun untuk udara 18.0+, untuk membangun kembali untuk versi lain melakukan hal berikut: