`
AnhuiOSS技术分享
  • 浏览: 35108 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

google in-app-billing 应用内付费的简介与实现

阅读更多

     android平台下, 谷歌应用收费提供了最新的google-billing接口,该接口用来发送请求应用收费和管理应用收费事物。下面简单介绍应用收费的实现过程。

 

      实现android应用的支付功能需要做到以下几点:

1.查看google应用支付功能提供的最新开发文档,了解应用内支付功能的机制,具体参考http://developer.android.com/guide/google/play/billing/index.html

 

2.升级android sdk开发环境,安装google-billing的api,添加IMarketBillingService,将aild文件添加到项目中(参看附加图片,aidl路径。须确认最新公布google billing的aidl文件已经为V2版本)。

用于实现五类的计费请求:

1)检查账单的支付请求(request);

2)请求进行购买的请求(purchast);

3)获取购买信息的请求(receiver);

4)确认通知的请求(confirm);

5)恢复交易的请求(restore)。

 

 

3.更新AndroidManifest.xml文件。添加权限设置以及调用服务的设置。

<uses-permission android:name="com.android.vending.BILLING" />

<service android:name=".billing.BillingService" />
<application
        <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>
</application>

 

 4.创建服务用于绑定到IMarketBillingService,android应用程序可以通过该service进行发送用户的购买请求和接收来自google play store的计费响应账单。

BillingService mService = IMarketBillingService.Stub.asInterface(service);

 

 5.创建BillingReceiver用于接受来自IPC发送的广播信息。

public class BillingReceiver extends BroadcastReceiver {
  
        private static final String TAG = "BillingReceiver";
  
        @Override
        public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
                Log.i(TAG, "Received action: " + action);
        if (Const.ACTION_PURCHASE_STATE_CHANGED.equals(action)) {
            String signedData = intent.getStringExtra(Const.INAPP_SIGNED_DATA);
            String signature = intent.getStringExtra(Const.INAPP_SIGNATURE);
            purchaseStateChanged(context, signedData, signature);
        } else if (Const.ACTION_NOTIFY.equals(action)) {
            String notifyId = intent.getStringExtra(Const.NOTIFICATION_ID);
            notify(context, notifyId);
        } else if (Const.ACTION_RESPONSE_CODE.equals(action)) {
            long requestId = intent.getLongExtra(Const.INAPP_REQUEST_ID, -1);
            int responseCodeIndex = intent.getIntExtra(Const.INAPP_RESPONSE_CODE, Const.ResponseCode.RESULT_ERROR.ordinal());
            checkResponseCode(context, requestId, responseCodeIndex);
        } else {
           Log.e(TAG, "unexpected action: " + action);
        }
        }
        private void purchaseStateChanged(Context context, String signedData, String signature) {
                Log.i(TAG, "purchaseStateChanged got signedData: " + signedData);
                Log.i(TAG, "purchaseStateChanged got signature: " + signature);
                BillingHelper.verifyPurchase(signedData, signature);
        }
        
        private void notify(Context context, String notifyId) {
                Log.i(TAG, "notify got id: " + notifyId);
                String[] notifyIds = {notifyId};
                BillingHelper.getPurchaseInformation(notifyIds);
        }
        
        private void checkResponseCode(Context context, long requestId, int responseCodeIndex) {
                Log.i(TAG, "checkResponseCode got requestId: " + requestId);
                Log.i(TAG, "checkResponseCode got responseCode: " + Const.ResponseCode.valueOf(responseCodeIndex));
        }
}
 

 6.创建一个安全处理的组件BillingSecurity,用于包含应用的支付功能以及账户的安全问题,将google play 上的发布应用的public key 作为验证的密钥,进行交易的安全验证。

 

7.修改应用代码,实现各接口,用于支持应用的收费功能。

 

注:

1)以上仅是简单介绍in-app-billing的实现过程,在操作之前,需要了解完成的支付机制,明确各接口需要的参数以及应用内产品设置。根据需求,开发者需要明确,应用是属于购买还是订阅功能,在google play上传时应用,可以参考: http://developer.android.com/guide/google/play/billing/billing_admin.html

 

2)在应用功能完成上架之前,必须对支付功能进行测试。用于测试的方式有两种:

一种利用静态响应对应用的内够功能进行测试;

另一种是使用开发者的商品ID对应用的内够功能进行测试。

具体可以参考:http://developer.android.com/guide/google/play/billing/billing_testing.html。

 

3)测试中会遇到一系列的问题,国内用户会有诸多障碍,测试发布流程:

(1)将应用作为测试apk上传到google play;

(2)设置应用商品的购买属性,产品IP等;

(3)在实体android 设备上安装应用;

(4)将google play store上某一账户,设置为设备的主账户;

(5)确保设备上的play store或apps 是最新版本。

 

 

 

 

 

  • 大小: 5.5 KB
分享到:
评论
2 楼 AnhuiOSS技术分享 2013-08-02  
煜闷_唔再肤浅 写道
楼主有成功测试吗?
最近在调试这个,一直提示"不支持付费...".注册国外的账号,再滚墙出去登录也不行...
求指导啊

国内的话,即使连接vpn也是不支持支付功能的,测试提示不支持支付(但功能是OK的),我们采用方式是添加好相关功能,在国外进行测试,支付等是可以的,然后发布应用后支付一切正常。


1 楼 煜闷_唔再肤浅 2013-07-10  
楼主有成功测试吗?
最近在调试这个,一直提示"不支持付费...".注册国外的账号,再滚墙出去登录也不行...
求指导啊

相关推荐

    In-app payment is one of the ways to earn money from the applica

    标题中的“In-app payment”指的是在应用程序内购买或支付功能,是移动应用开发者常见的盈利模式之一。这种模式允许用户在不离开应用的情况下购买虚拟商品、服务或者解锁额外功能,为开发者创造了收入来源。 **1. ...

    Android_Billing:专注于 Google Play In-app Billing 的 Android 测试应用程序

    在移动应用开发领域,Google Play In-app Billing 是一个至关重要的功能,它允许开发者在应用内销售数字商品和服务,如额外的游戏关卡、订阅服务或者高级功能解锁。本文将深入探讨这个主题,重点关注如何在 Android ...

    Android-AndroidIn-AppBillingv3Library开发者通过Androidv3API轻松处理应用程序支付问题

    Android In-App Billing v3 Library 是一个专门为Android开发者设计的工具,它简化了在应用程序内实现付费功能的过程。这个库是基于Google的Android v3 API,使得开发者能够更高效、更安全地处理应用内的购买操作,...

    in-app-purchase:在应用内购买Android应用程序

    在Android平台上,应用内购买(In-App Purchase,简称IAP)是一种常见的商业模式,允许开发者在应用程序中提供额外的功能、内容或服务以获取收入。本文将深入探讨如何在Android应用中实现IAP功能,主要关注Java语言...

    Android高级应用源码-android应用内购买 google app veding billing.zip

    本资源“Android高级应用源码-android应用内购买 google app veding billing.zip”提供了关于如何集成并实现Google Play应用内购买功能的详细示例。以下是对这个主题的深入探讨: 一、Google Play应用内购买介绍 ...

    googleplay支付demo

    在Android平台上,Google Play是应用分发的主要渠道,同时它也提供了一套完善的付费机制——Google Play支付(Google Play In-app Billing),允许开发者在应用程序内销售数字产品和服务,如游戏内的虚拟商品、订阅...

    billing.zip

    在Android应用内实现Google Pay通常涉及到使用Google的In-app Billing服务。这是一个API,允许开发者在应用程序中销售数字内容和服务,包括但不限于应用内购买、订阅和一次性付费项目。Google Pay可以作为这些交易的...

    安卓开发-Android应用源码安卓应用市场app商店源码.zip.zip

    6. **支付与广告**:如果应用商店支持付费应用或内购,源码会包含支付接口的集成,如Google Play Billing。另外,广告展示的相关代码也可能存在。 7. **权限和安全**:确保用户数据的安全,源码中会有处理权限请求...

    skubit-iab:Skubit InApp计费库

    这个库的主要目的是简化开发人员在集成Google Play Store的In-App Billing服务时的工作,使他们能够轻松地在自己的应用中实现付费内容、订阅和其他增值服务。 【描述】"skubit-iab"库是为Android开发者提供的一种...

    Android应用源码之安卓应用市场app商店源码.rar

    9. **支付集成**:对于付费应用或内购功能,源码可能集成了Google Play的In-app Billing服务,处理购买流程。 10. **推送通知**:为了提高用户活跃度,应用商店可能实现了推送通知功能,这可能涉及到Firebase Cloud...

    android应用内购买

    Google Play提供的应用内购买服务是通过Google App Vending Billing系统来实现的。这个系统为开发者提供了一种安全、方便的方式来销售数字内容,如游戏内的道具、高级功能、订阅服务等。 应用内购买的实现过程涉及...

    cordova-plugin-inapppurchase:一个轻量级的cordova插件,可在iOSAndroid上进行应用内购买

    特征简单的基于承诺的API 支持消耗品/非消耗品以及付费/免费订阅支持恢复购买内部使用经过良好测试的本机库-于iOS的和适用于Android的经过调整的安装$ cordova plugin add cordova-plugin-inapppurchase配置的iOS ...

    Google App Engine的一些限制

    Google App Engine (GAE) 是Google Cloud Platform的重要组成部分之一,它为开发者提供了构建高效、可扩展的应用程序的平台。本文旨在详细介绍GAE在资源使用方面的一些关键限制,帮助开发者更好地理解和规划应用程序...

    app添加goolge内置购买项及调试

    ### Android APP 添加Google内置购买项及调试详解 #### 一、获取项目License Key 要开始在Android应用中集成Google Play的内置购买功能,首先需要获取项目的License Key。具体步骤如下: 1. **登录Google Play...

    IOS-安卓内购 for air

    1. **ActionScript库**: 为了在Air应用中实现内购,你需要一个支持iOS和Android的ActionScript库,如iap-as3或air-in-app-purchase。这些库封装了与平台内购系统的交互,简化开发过程。 2. **适配器模式**: 由于iOS...

    GooglePlay代码及服务器部署

    3. **应用内购买与订阅**:通过Google Play的In-app Billing服务,开发者可以实现应用内购买功能,提供付费内容或订阅服务。这需要在代码中集成相关API,并在Google Play Console配置产品。 4. **分析与报告**:...

    EgoGooglePlay.rar

    标题"EgoGooglePlay.rar"指的是一个与Unity游戏引擎集成Google Play内购系统相关的资源压缩包。...通过理解这些知识点,开发者可以成功地在Unity游戏中集成Google Play内购服务,从而实现应用内的付费购买功能。

    WordPress for Android.zip

    IAB(In-app Billing)是Android开发者用来在应用内销售数字商品或服务的工具。通过这个服务,开发者可以为应用添加付费内容,如解锁高级功能、购买虚拟物品等。 3. **WordPress.IAD (In-app Advertising)**:可能...

    Android应用市场项目源码.zip_examinepx7_安卓_安卓应用_安卓应用市场_应用市场

    9. **支付集成**:如果应用市场包含付费应用,那么需要集成支付接口,如Google Play的In-app Billing或第三方支付平台。 10. **测试与调试**:应用市场需要经过详尽的测试,包括单元测试、集成测试和UI测试,以确保...

    android app shop

    8. **支付集成**:如果应用市场有付费应用,那么可能涉及到支付接口的集成,如Google Play的In-app Billing或第三方支付平台。 9. **安全性**:理解如何保护用户数据的安全,防止恶意攻击,如使用HTTPS进行加密通信...

Global site tag (gtag.js) - Google Analytics