支付宝分享入口
1. 申请你的AppID
请到支付宝开放平台应用登记页面进行登记,登记并选择移动应用进行设置后,将获得AppId,可立即用于开发。但应用登记完成后还需要提交审核,只有审核通过的应用才能正式发布使用。
Android申请AppId需要的信息:
应用包名,应用签名MD5,应用图标
2. 搭建开发环境
[1]在IDE中建立你的工程。
[2]在工程中新建一个libs目录,将开发工具包中libs目录下的libapshare.jar复制到该目录中(如下图所示,建立了一个名为APShareDemo的工程,并把jar包复制到libs目录下)。
[3]将libs目录下的libapshare.jar文件添加到工程依赖中
3. 在代码中使用开发工具包
[1]发送请求到支付宝钱包
现在,你的程序要发送请求到支付宝钱包,可以通过IAPApi的 sendReq方法来实现。
boolean sendReq(BaseReq req);
sendReq是第三方app主动发送消息给支付宝钱包,发送完成之后会切回到第三方app界面。
sendReq的实现示例,如下图所示:
//初始化一个APTextObject对象APTextObject textObject =newAPTextObject();textObject.text=text;//用APTextObject对象初始化一个APMediaMessage对象APMediaMessage mediaMessage =newAPMediaMessage();mediaMessage.mediaObject= textObject;//构造一个ReqSendMessageToZFB.Req req =newSendMessageToZFB.Req();req.message= mediaMessage;//调用api接口发送消息到支付宝api.sendReq(req);
[2] 接收支付宝钱包的返回值
如果你的程序需要接收支付宝钱包发送的请求,或者接收发送到支付宝钱包请求的响应结果,需要下面3步操作:
a.在你的包名相应目录下新建一个apshare包,并在该apshare目录下新增一个ShareEntryActivity类,该类继承自Activity(例如应用程序的包名为com.alipay.share,则新添加的类如下图所示)
并在AndroidManifest文件里面加上exported属性,设置为true,例如:
android:exported="true">
b.实现IAPAPIEventHandler接口,发送到支付宝钱包请求的响应结果将回调到onResp方法
c.在ShareEntryActivity中将接收到的intent及实现了IAPAPIEventHandler接口的对象传递给IAPApi接口的handleIntent方法,示例如下图:
api.handleIntent(intent,apiEventHandler);
应用请求支付宝钱包的响应结果将通过onResp回调。
注意
如果需要混淆代码,为了保证sdk的正常使用,需要在proguard.cfg加上下面两行配置:
-keep class com.alipay.share.sdk.** {
*;
}
4. 判断当前设备是否支持分享
支付宝钱包从9.0版本开始支持分享,api中提供了接口来判断当前设备是否能够支持分享到支付宝钱包
[1]判断当前设备是否已经安装支付宝钱包
//判断当前是被是否已经安装支付宝钱包booleanisZFBInstalled =api.isZFBSupportAPI();
[2]判断当前设备是否支持分享到支付宝(已经安装支付宝&&支付宝版本支持分享)
//判断当前设备是否支持分享到支付宝钱包booleanisZFBSupportApi=api.isZFBSupportAPI();
5. 分享其他类型
9.0版本支付宝钱包支持的分享类型如下
文本 (APTextObject)
网页Card(APWebPageObject)
图片 (APImageObject)
[1] 文本消息的发送请参照3[1]的示例
[2] 发送网页Card
//初始化一个APWebPageObject对象
APWebPageObject webPageObject =newAPWebPageObject();webPageObject.webpageUrl= webUrl;//用APWebPageObject对象初始化一个APMediaMessage对象APMediaMessage webMessage =newAPMediaMessage();webMessage.mediaObject= webPageObject;webMessage.title= title;webMessage.description= desc;//网页缩略图的分享支持bitmap和url两种方式,直接通过bitmap传递时bitmap最大为32KwebMessage.thumbUrl= thumbUrl;webMessage.setThumbImage(bitmap);
bitmap.recycle();
//构造一个ReqSendMessageToZFB.Req webReq =newSendMessageToZFB.Req();webReq.message= webMessage;webReq.transaction= buildTransaction("webpage");//调用api接口发送消息到支付宝api.sendReq(webReq);
[3] 分享图片
//初始化一个APImageObject对象,支持三种方式分享图片,本地文件路径,图片二进制流,网上图片url,选取最方便的一个即可APImageObject imageObject =newAPImageObject();//本地图片路径分享imageObject.setImagePath(path);//图片二进制流分享imageObject.imageData= bitmapByte;//图片URL分享imageObject.imageUrl= imageUrl;//用APImageObject对象初始化一个APMediaMessage对象APMediaMessage mediaMessage =newAPMediaMessage();mediaMessage.mediaObject= imageObject;//构造一个ReqSendMessageToZFB.Req req =newSendMessageToZFB.Req();req.message= mediaMessage;req.transaction= buildTransaction("image");//调用api接口发送消息到支付宝api.sendReq(req);
至此,你已经能够使用支付宝分享SDK的所有内容了,更多内容,可以参考Android分享开发工具包中的分享Demo
分享到生活圈
检查是否支持发送到生活圈,支付宝在versionCode 84之后支持分享到生活圈,判断是否支持生活圈分享,可以使用下面的接口进行判断
api.isZFBAppInstalled() &&api.getZFBVersionCode() >= 84
生活圈分享目前支持的格式仅仅支持网页分享
和分享到会话不同的是需要添加参数
webReq.scene= SendMessageToZFB.Req.ZFBSceneTimeLine;
完整代码如下
APWebPageObject webPageObject = newAPWebPageObject();webPageObject.webpageUrl=url.getText().toString();APMediaMessage webMessage =newAPMediaMessage();webMessage.title=title.getText().toString();webMessage.description=desc.getText().toString();webMessage.mediaObject= webPageObject;webMessage.thumbUrl=thumbUrl.getText().toString();SendMessageToZFB.Req webReq =newSendMessageToZFB.Req();webReq.message= webMessage;webReq.transaction= buildTransaction("webpage");webReq.scene=timelineChecked.isChecked()? SendMessageToZFB.Req.ZFBSceneTimeLine: SendMessageToZFB.Req.ZFBSceneSession;webReq.scene= SendMessageToZFB.Req.ZFBSceneTimeLine;api.sendReq(webReq);finish();