Android支付接入(八):Amazon亚马逊支付 <receiver android:name = "com.amazon.inapp.purchasing.ResponseReceiver" > </receiver> @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); PurchasingManager.registerObserver(new MyObserver(MainActivity.this)); } private void copyDataBase () throws IOException{ PurchasingManager.initiatePurchaseRequest("qht200catcapcoin"); class MyObserver extends BasePurchasingObserver{ public MyObserver(Context arg0) { super(arg0); // TODO Auto-generated constructor stub } @Override public void onItemDataResponse(ItemDataResponse arg0) { // TODO Auto-generated method stub super.onItemDataResponse(arg0); } @Override public void onPurchaseResponse(PurchaseResponse arg0) { // TODO Auto-generated method stub super.onPurchaseResponse(arg0); switch (arg0.getPurchaseRequestStatus } @Override public void onGetUserIdResponse(GetUserIdResponse arg0) { // TODO Auto-generated method stub super.onGetUserIdResponse(arg0); } @Override public void onSdkAvailable(boolean arg0) { // TODO Auto-generated method stub super.onSdkAvailable(arg0); } }
下面跟大家一起走一遍Amazon亚马逊的支付,亚马逊目前刚把业务拓展到大陆市场,但这并不代表Amazon支付不成熟,恰恰相反,Amazon的支付流程,支付结果获取及测试另人称赞,支付流程、测试流程简洁可靠。不想国内三个运营商,典型的国企,支付成功与否的判断标准仅仅是看短信是否发送出去,连个二次握手都没有,更没有安全可靠之说。在此并无他意,只是在对比运营商支付跟其他支付后的感触。但不可否认的是运营商支付在大陆移动付费端堪称龙头,尽管它并不安全,这就是现状。。。
一:导出JSON数据文件如下:(填写了几个应用内商品导出的JSON文件就包含几个计费点)
二:drawable-hdpi文件夹中最好放置高分辨率的桌面图片(建议512*512),因为Kindle fire设备有个旋转菜单,96*96分辨率在上边太模糊。三:做本地测试时必须安装AmazonSDKTester.apk,文件位置在:http://pan.baidu.com/share/link?shareid=2085409847&uk=473193131解压Apps-SDK,如下:
四:本地测试支付成功后,订阅商品可以在AmazonSDKTester.apk中查看:
下边来看下代码实现:
package com.example.blogforamazonbilling;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import com.amazon.inapp.purchasing.BasePurchasingObserver;import com.amazon.inapp.purchasing.GetUserIdResponse;import com.amazon.inapp.purchasing.ItemDataResponse;import com.amazon.inapp.purchasing.PurchaseResponse;import com.amazon.inapp.purchasing.PurchasingManager;import com.amazon.inapp.purchasing.Receipt;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.content.Context;import android.view.View;import android.widget.Toast;
public class MainActivity extends Activity {private final String path = "/mnt/sdcard/amazon.sdktester.json";private String productName;
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);try {copyDataBase();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}//消耗类商品findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubPurchasingManager.initiatePurchaseRequest("qht200catcapcoin");productName = "200猫币";}});//消耗类商品findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubPurchasingManager.initiatePurchaseRequest("qht340catcapcoin");productName = "340猫币";}});//订阅类商品findViewById(R.id.button3).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubPurchasingManager.initiatePurchaseRequest("qhtactive");productName = "激活正版游戏";}});}@Overrideprotected void onStart() {// TODO Auto-generated method stubsuper.onStart();PurchasingManager.registerObserver(new MyObserver(MainActivity.this));}private void copyDataBase () throws IOException{
public MyObserver(Context arg0) {super(arg0);// TODO Auto-generated constructor stub}@Overridepublic void onItemDataResponse(ItemDataResponse arg0) {// TODO Auto-generated method stubsuper.onItemDataResponse(arg0);}@Overridepublic void onPurchaseResponse(PurchaseResponse arg0) {// TODO Auto-generated method stubsuper.onPurchaseResponse(arg0);switch (arg0.getPurchaseRequestStatus
Android支付接入(8):Amazon亚马逊支付
Android支付接入(八):Amazon亚马逊支付下面跟大家一起走一遍Amazon亚马逊的支付,亚马逊目前刚把业务拓展到
