欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android支付宝接入流程

程序员文章站 2022-07-13 17:08:27
...

下载Android 支付宝SDK的demo

一、导入支付宝SDK

1.将alipaySdk-*****.aar包放在应用工程的libs目录下。

2.在主项目的build.gradle中,添加下面的内容,将libs目录作为依赖仓库

Android支付宝接入流程

3.在App Module中的build.gradle中,将支付宝SDK添加依赖。

Android支付宝接入流程

二、添加支付宝权限

Android支付宝接入流程

在 AndroidManifest 里配置以上 3 个权限,支付宝 SDK 在运行时需要进行网络连接,并在必要的时候判断网络连接的状态(4G/Wi-Fi)等来进行支付体验的优化。

三、接口调用

在新线程中调用支付接口

PayTask对象主要为商户提供订单支付、查询功能,及获取当前开发包版本号。获取PayTask支付对象调用支付(支付行为需要在独立的非ui线程中执行)

final String orderInfo = info;   // 订单信息

		Runnable payRunnable = new Runnable() {

			@Override
			public void run() {
				PayTask alipay = new PayTask(DemoActivity.this);
               Map <String,String> result = alipay.payV2(orderInfo,true);

				Message msg = new Message();
				msg.what = SDK_PAY_FLAG;
				msg.obj = result;
				mHandler.sendMessage(msg);
			}
		};
	     // 必须异步调用
		Thread payThread = new Thread(payRunnable);
		payThread.start();

四、支付结果获取和处理

同步返回
商户应用客户端通过当前调用支付的Activity的Handler对象,通过它的回调函数获取支付结果。(可参考 alipay_demo 实现)
代码示例:

private Handler mHandler = new Handler() {
		public void handleMessage(Message msg) {
			Result result = new Result((String) msg.obj);
			Toast.makeText(DemoActivity.this, result.getResult(),
						Toast.LENGTH_LONG).show();
		};
	};

异步通知
商户需要提供一个http协议的接口,包含在请求支付的入参中,其 key 对应notify_url。支付宝服务器在支付完成后,会以POST 方式调用notify_url传输数据。

相关标签: Android知识点