文档中心 > 开放平台

分享到支付宝Android功能开发说明

更新时间:2016/11/07 访问次数:22692

社交分享功能是指第三方App通过接入该功能,让用户可以从App分享图片、网页至支付宝。

支付宝好友分享功能目前支持图片、网页共两种类型。

  • 从支付宝9.9.5版本(VersionCode为101)开始,在您的App内,您无需判断分享场景,调用起支付宝之后会有列表让用户选择分享到的渠道;
  • 在支付宝9.9.5版本之前,如果需要,你可以通过场景码来区分分享到支付宝聊天还是支付宝动态,如果不传递场景码,默认是分享到支付宝聊天。

发送到聊天界面——ZFBSceneSession

发送到生活圈——ZFBSceneTimeline(仅支持网页消息)

1. 分享到支付宝

从支付宝9.9.5版本(VersionCode为101)开始,您的代码中无需再添加场景码,分享到支付宝后会让用户选择分享渠道(聊天、生活动态 or 圈子)。

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;

代码示例:

//创建工具对象实例,此处的APPID为上文提到的,申请应用生效后,在应用详情页中可以查到的支付宝应用唯一标识
IAPApi api = APAPIFactory.createZFBApi(getApplicationContext(),APPID,false);

//初始化APTextObject,组装文本消息内容对象
APTextObject textObject = new APTextObject();
textObject.text = "需要发送的内容";

//初始化APMediaMessage ,组装分享消息对象
APMediaMessage mediaMessage = new APMediaMessage();
mediaMessage.mediaObject = textObject;

//将分享消息对象包装成请求对象
SendMessageToZFB.Req req = new SendMessageToZFB.Req();
req.message = mediaMessage;

//发送请求
api.sendReq(req);
b)发送网页Card

您会使用到开发工具包中的如下类,来实现发送请求:

//社交分享开放工具接口类,便于对社交分享开放接口的调用
import com.alipay.share.sdk.openapi.IAPApi;
//社交分享开放工具工厂类,用于创建工具实例
import com.alipay.share.sdk.openapi.APAPIFactory;
//网页Card消息内容定义类
import com.alipay.share.sdk.openapi.APWebpageObject;
//分享消息定义类
import com.alipay.share.sdk.openapi.APMediaMessage;
//分享消息请求包装类
import com.alipay.share.sdk.openapi.SendMessageToZFB;

代码示例:

//创建工具对象实例,此处的APPID为上文提到的,申请应用生效后,在应用详情页中可以查到的支付宝应用唯一标识
IAPApi api = APAPIFactory.createZFBApi(getApplicationContext(),APPID,false);

//初始化一个APWebPageObject对象,组装网页Card内容对象
APWebPageObject webPageObject = new APWebPageObject();
webPageObject.webpageUrl = "http://www.yoururl.com/";

////初始化APMediaMessage ,组装分享消息对象
APMediaMessage webMessage = new APMediaMessage();
webMessage.mediaObject = webPageObject;
webMessage.title = "分享标题";
webMessage.description = "分享内容描述";
//网页缩略图的分享支持bitmap和url两种方式,直接通过bitmap传递时bitmap最大为32K
//a)url方式
//webMessage.thumbUrl = "http://www.yoururl.com/thumb.jpg";
//b)Bitmap方式
//webMessage.setThumbImage(bitmap);
//bitmap.recycle();
webMessage.thumbUrl = "http://www.yoururl.com/thumb.jpg";

//将分享消息对象包装成请求对象
SendMessageToZFB.Req webReq = new SendMessageToZFB.Req();
webReq.message = webMessage;
webReq.transaction = "WebShare"+String.valueOf(System.currentTimeMillis());

//发送请求
api.sendReq(req);
c)发送图片分享

 您会使用到开发工具包中的如下类,来实现发送请求:

//社交分享开放工具接口类,便于对社交分享开放接口的调用
import com.alipay.share.sdk.openapi.IAPApi;
//社交分享开放工具工厂类,用于创建工具实例
import com.alipay.share.sdk.openapi.APAPIFactory;
//图片消息内容定义类
import com.alipay.share.sdk.openapi.APImageObject;
//分享消息定义类
import com.alipay.share.sdk.openapi.APMediaMessage;
//分享消息请求包装类
import com.alipay.share.sdk.openapi.SendMessageToZFB;

代码示例:

//创建工具对象实例,此处的APPID为上文提到的,申请应用生效后,在应用详情页中可以查到的支付宝应用唯一标识
IAPApi api = APAPIFactory.createZFBApi(getApplicationContext(),APPID,false);

//初始化一个APImageObject对象,组装图片内容对象
APImageObject imageObject = new APImageObject();
//支持三种方式分享图片,本地文件路径,图片二进制流,网上图片url,选取最方便的一个即可
//a)本地图片路径分享
//imageObject.setImagePath("/DCIM/Camera/test.jpg");
//b)图片二进制流分享
//imageObject.imageData = bitmapByte;
//c)图片URL分享
//imageObject.imageUrl = "http://www.yoururl.com/test.jpg";
imageObject.imageUrl = "http://www.yoururl.com/test.jpg";

//初始化一个APMediaMessage对象 ,组装分享消息对象
APMediaMessage mediaMessage = new APMediaMessage();
mediaMessage.mediaObject = imageObject;

//将分享消息对象包装成请求对象
SendMessageToZFB.Req req = new SendMessageToZFB.Req();
req.message = mediaMessage;
req.transaction = "ImageShare"+String.valueOf(System.currentTimeMillis()); //发送请求 api.sendReq(req);

2. 分享到生活圈

从支付宝9.9.5版本(VersionCode为101)开始,不用显式增加scene场景码来标识分享到支付宝生活圈,分享到支付宝后会让用户选择分享渠道(聊天、生活动态 or 圈子)。

您会使用到开发工具包中的如下类,来实现发送请求:

//社交分享开放工具接口类,便于对社交分享开放接口的调用
import com.alipay.share.sdk.openapi.IAPApi;
//社交分享开放工具工厂类,用于创建工具实例
import com.alipay.share.sdk.openapi.APAPIFactory;
//网页Card消息内容定义类
import com.alipay.share.sdk.openapi.APWebpageObject;
//分享消息定义类
import com.alipay.share.sdk.openapi.APMediaMessage;
//分享消息请求包装类
import com.alipay.share.sdk.openapi.SendMessageToZFB;

代码示例:

//创建工具对象实例,此处的APPID为上文提到的,申请应用生效后,在应用详情页中可以查到的支付宝应用唯一标识
IAPApi api = APAPIFactory.createZFBApi(getApplicationContext(),APPID,false);

//初始化一个APWebPageObject对象,组装网页Card内容对象
APWebPageObject webPageObject = new APWebPageObject();
webPageObject.webpageUrl = "http://www.yoururl.com/";

////初始化APMediaMessage ,组装分享消息对象
APMediaMessage webMessage = new APMediaMessage();
webMessage.mediaObject = webPageObject;
webMessage.title = "分享标题";
webMessage.description = "分享内容描述";
//网页缩略图的分享支持bitmap和url两种方式,直接通过bitmap传递时bitmap最大为32K
//a)url方式
//webMessage.thumbUrl = "http://www.yoururl.com/thumb.jpg";
//b)Bitmap方式
//webMessage.setThumbImage(bitmap);
//bitmap.recycle();
webMessage.thumbUrl = "http://www.yoururl.com/thumb.jpg";

//将分享消息对象包装成请求对象
SendMessageToZFB.Req webReq = new SendMessageToZFB.Req();
webReq.message = webMessage;
webReq.transaction = "WebShare"+String.valueOf(System.currentTimeMillis());
//修改请求消息对象的scene场景值为ZFBSceneTimeLine
//9.9.5版本之后的支付宝不需要传此参数,用户会在跳转进支付宝后选择分享场景(好友、动态等)
webReq.scene = SendMessageToZFB.Req.ZFBSceneTimeLine;

//发送请求
api.sendReq(req);

3. 其他辅助能力

a)检查当前手机上是否安装了支付宝

//创建工具对象实例,此处的APPID为上文提到支付宝应用唯一标识
IAPApi api = APAPIFactory.createZFBApi(getApplicationContext(),APPID,false);
//判断是否安装了支付宝,返回boolean类型
boolean isZFBInstalled = api.isZFBAppInstalled();

b)检查当前手机上安装的支付宝版本是否支持分享到朋友

//创建工具对象实例,此处的APPID为上文提到支付宝应用唯一标识
IAPApi api = APPIFactory.createZFBApi(getApplicationContext(),APPID,false);
//判断是否支持分享,返回boolean类型
boolean isZFBSupportApi = api.isZFBSupportAPI();

c)检查当前手机上的支付宝安装版本是否支持分享到动态
支付宝在versionCode 84之后支持分享到生活圈,判断是否支持生活圈分享,可以使用下面的接口进行判断

//创建工具对象实例,此处的APPID为上文提到支付宝应用唯一标识
IAPApi api = APAPIFactory.createZFBApi(getApplicationContext(),APPID,false);
//判断是否支持生活圈
boolean isZFBSupportLife = api.isZFBAppInstalled() && api.getZFBVersionCode() >= 84;

4. 响应返回码说明

参照"Android接入指南-接受和处理支付宝返回的响应消息"章节实现回调函数之后,可以在回调方法里面针对不同的错误码进行后续处理

错误码枚举定义在com.alipay.share.sdk.openapi.BaseResp.ErrCode中:

错误码 说明
ERR_OK 分享成功
ERR_USER_CANCEL 分享被用户取消
ERR_AUTH_DENIED 分享鉴权失败,需要检查appId、packageId以及签名是否和注册的时候一致
ERR_SENT_FAILED 分享过程中出现异常导致分享失败,可能由于网络或其他原因的失败
ERR_COMM 分享参数错误
除以上错误码外,其他未知异常建议做失败处理

FAQ

关于此文档暂时还没有FAQ
返回
顶部