注:
本文为Android终端开发工具的新手使用教程,涉及到支付宝“Android分享开发工具包”的使用方法,默认读者已经熟悉应用开发IDE的基本使用方法(本文以Android Studio为例),以及具有一定的编程知识基础。支付宝社交分享开放接口免费并默认向开发者开放,所以无需进行签约申请。
要在您的应用中使用支付宝开放产品的接口能力,您需要先去蚂蚁金服开放平台(open.alipay.com),在开发者中心创建登记您的应用,并提交审核,审核通过后会为您生成应用唯一标识(APPID),并且可以申请开通开放产品使用权限,通过APPID您的应用才能调用开放产品的接口能力。需要详细了解开放平台创建应用步骤请参考《开放平台应用创建指南》。
点击下载 支付宝“Android分享SDK包”和“Android分享DEMO”
开发工具包主要包含3部分内容:(其中,只有libapshare.jar是必须的)
- libapshare.jar(是需要被第三方应用导入的sdk库,通过该库可以实现对支付宝社交分享能力接口的调用和通信)
- APShareDemo.apk 和 APShareDemo-code.zip (DEMO实例及源代码,供开发者参考开发)
- GenSignature.apk(应用签名获取工具)
1. 在Android Studio创建您的Android应用工程
2. 在工程中添加Java资源文件夹resources\libs,将开发工具包中的libapshare.jar复制到该文件夹中。
3. 右键libapshare.jar包,点击“Add As Library...”,将SDK jar包添加为工程依赖包。(如下图所示)
1. 发送请求调用支付宝社交分享能力
您的Android应用要发送请求到支付宝,可以通过IAPApi的sendReq方法,发送包装好的分享消息请求对象给支付宝钱包来实现。发送分享消息会唤起支付宝钱包,并在用户完成分享操作后,可以选择回到您的Android应用界面。
试一试:
下面将通过一个简单的发送文本类分享信息给好友作为例子演示如何发送请求调用支付宝社交分享能力
a)首先,您会使用到开发工具包中的如下类,来实现发送请求:
//社交分享开放工具接口类,便于对社交分享开放接口的调用 import com.alipay.share.sdk.openapi.IAPApi; //社交分享开放工具工厂类,用于创建工具实例 import com.alipay.share.sdk.openapi.APAPIFactory; //普通文本消息内容定义类 import com.alipay.share.sdk.openapi.APTextObject; //分享消息定义类 import com.alipay.share.sdk.openapi.APMediaMessage; //分享消息请求包装类 import com.alipay.share.sdk.openapi.SendMessageToZFB;
b)然后,在您的事件触发代码中加入如下代码:
//创建工具对象实例,此处的APPID为上文提到的,申请应用生效后,在应用详情页中可以查到的支付宝应用唯一标识 IAPApi api = APAPIFactory.createZFBApi(getApplicationContext(),APPID,false); //组装文本消息内容对象 APTextObject textObject = new APTextObject(); textObject.text = "需要发送的内容"; //组装分享消息对象 APMediaMessage mediaMessage = new APMediaMessage(); mediaMessage.mediaObject = textObject; //将分享消息对象包装成请求对象 SendMessageToZFB.Req req = new SendMessageToZFB.Req(); req.message = mediaMessage; //发送请求 api.sendReq(req);
c)完成后,生成Android安装文件到手机上尝试一下吧(注意:手机上需要安装好支付宝钱包)。
2. 接受和处理支付宝返回的响应消息
当你的应用成功将分享请求消息发送给支付宝钱包后,用户将在钱包中完成分享操作,在用户完成操作后,支付宝将会把用户操作的结果消息返回给您的Android应用。当您需要处理该相应消息时,可以通过实现IAPAPIEventHandler接口的onResp方法来处理消息。
试一试:
下面将实现接收和处理上文中文本消息分享后支付宝返回的响应消息,来说明如何接受和处理支付宝返回的响应消息的。
a)首先,您会使用到开发工具包中的如下类,来实现接收和处理响应消息:
//社交分享应用工具通用事件处理接口 import com.alipay.share.sdk.openapi.IAPAPIEventHandler; //社交分享应用工具接口类,便于对社交分享开放接口的调用 import com.alipay.share.sdk.openapi.IAPApi; //社交分享应用工具工厂类,用于创建工具实例 import com.alipay.share.sdk.openapi.APAPIFactory; //社交分享应用的通用请求对象 import com.alipay.share.sdk.openapi.BaseReq; //社交分享应用的通用响应对象 import com.alipay.share.sdk.openapi.BaseResp;
b)在你的包名相应目录下新建一个apshare包,并在该apshare目录下新增一个ShareEntryActivity类,该类继承自Activity(android.app.Activity),如下图所示:
c)在AndroidManifest文件里将ShareEntryActivity的exported属性设置为true,如下图所示:
d)通过实现IAPAPIEventHandler接口,来定义如何处理返回的响应消息,要处理返回的响应消息,需要实现onResp(BaseResp baseResp)方法。
注:本文为方便,直接让ShareEntryActivity实现IAPAPIEventHandler接口。
public class ShareEntryActivity extends Activity implements IAPAPIEventHandler
@Override public void onResp(BaseResp baseResp) { //打印相应返回消息结果码 Toast.makeText(this, "Result Code:" + baseResp.errCode, Toast.LENGTH_LONG).show(); }
e)在ShareEntryActivity中将接收到的intent及实现了IAPAPIEventHandler接口的对象传递给IAPApi接口的handleIntent方法,此方法最好在Activity的onCreate方法中完成调用。
//创建工具对象实例,此处的APPID为上文提到的,申请应用生效后,在应用详情页中可以查到的支付宝应用唯一标识 IAPApi api = APAPIFactory.createZFBApi(getApplicationContext(), APPID, false); Intent intent = getIntent(); //通过调用工具实例提供的handleIntent方法,绑定消息处理对象实例, api.handleIntent(intent, this);
f)完成后,生成Android安装文件到手机上尝试一下吧(注意:手机上需要安装好支付宝钱包)。