支付宝android客户端,支付宝Android客户端使用笔记(一)

新进的项目需要使用支付宝。于是边学习边记录:

刚接触。还没下手,先读文档。

先前准备工作就不记录了。

1、添加jar文件 alipay_msp.jar

2、初始化安全支付服务:

private ServiceConnection mAlixPayConnection = new ServiceConnection() {

public void onServiceConnected(ComponentName className, IBinder service) {

// Wake up the binder to continue.

synchronized (lock) {

mAlixPay = IAlixPay.Stub.asInterface(service);

lock.notify();

}

}

public void onServiceDisconnected(ComponentName className) {

mAlixPay = null;

}

};

...

// Bind the service, then can call the service.

mActivity.bindService(new Intent(IAlixPay.class.getName()),

mAlixPayConnection, Context.BIND_AUTO_CREATE);

3、生成订单数据:

在调用安全支付时,需要提交订单信息orderInfo。参数以“key=value”形式提交,参数之间用&分隔。所有参数不可缺。:

partner="支付宝分配的合作商户ID"

&seller="账户ID"

&out_trade_no="唯一交易号"

&subject=商品名称""

&body="商品描述"

&total_fee="价格"

&notify_url="订单支付完成通知URL"

&sign="商品信息前面" //对数据签名后得到的sign值必须进行URLEncode之后,才可作为参数。

&sign_type="RSA"

4、调用安全支付:

result = mAlixPay.Pay(orderInfo);   //AliXPay函数具体说明请见AlixPay方法描述。

5、支付结果获取和处理:(参看demo中的ResultChecker.java)

调用安全支付后,将通过两种途径获得支付结果:

1、AliXpay.pay()方法的返回结果

该方法将返回表示支付结果的字符串

2、支付宝服务器通知

商户需要提供一个http协议的接口,包含在参数里面传递给安全支付,即:notify_url。支付宝服务器在支付完成后,会用POST方法调用notufy_url,以xml为数据格式传输支付结果。

alipay_plugin.apk运行时安装方法:

1)将alipay_plugin.apk作为资源复制到第三方工程的assets目录

2)第三方应用在适当时机,闲检测安全支付服务是否已经安装。如尚未安装,则从assets目录中提取alipay_plugin.apk到手机存储。

3)安装手机存储中的安全支付服务apk。

// Install the APK of SecurePayment which is included in the merchant’s App.

public boolean retrieveApkFromAssets(Context context, String fileName,

String path) {

boolean isRetrieve = false;

InputStream input = null;

FileOutputStream output = null;

try {

input = context.getAssets().open(fileName);

File file = new File(path);

file.createNewFile();

output = new FileOutputStream(file);

byte[] temp = new byte[1024];

int i = 0;

while ((i = input.read(temp)) > 0) {

output.write(temp, 0, i);

}

isRetrieve = true

} catch (IOException e) {

e.printStackTrace ();

}finally{

if(output != null){

try {

output.close();

} catch (IOException e) {

}

}

if(input != null){

try {

input.close();

} catch (IOException e) {

}

}

}

return isRetrieve;

}

//install apk from the path

public installAPK(Context context,String path){

Intent installIntent = new Intent(Intent.ACTION_VIEW);

installIntent.setDataAndType(Uri.parse("file://"+path,"application/vnd.android.package-archive");

context.startActivity(installIntent);

}

//if you want to download the apk.You can :

public boolean retrieveApkFromNet(Context context, String strurl,

String filename) {

boolean isRetrieve = false;

try {

NetworkManager networkManager = new NetworkManager(this.mContext);

isRetrieve = networkManager.downloadToFile(context, strurl,

filename);

} catch (Exception e) {

e.printStackTrace();

}

return isRetrieve;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值