文档中心 > 开放平台

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

更新时间:2016/12/05 访问次数:23380

社交分享功能是指第三方App通过接入该功能,让用户可以从App分享图片、网页至支付宝。社交分享功能目前支持图片、网页共两种类型。以下是分享内容的代码示例。

不同类型的分享数据主要通过APMediaMessage内的mediaObject对象进行区分:

  • APShareTextObject - 纯文本数据
  • APShareImageObject - 图片数据
  • APShareWebObject - 网页数据

不同场景的分享区分:

  • 在支付宝9.9.5版本前(不包括9.9.5版本),不同场景的分享通过APMediaMessage内的scene进行区分。scene为0表示分享到好友,scene为1表示分享到动态;
  • 支付宝9.9.5版本至当前版本,分享入口已合并,scene参数并没有被使用,用户会在跳转进支付宝后选择分享场景(好友、动态、圈子等);但为保证老版本上无问题,建议还是照常传入。

分享到动态在支付宝9.9.5版本前(不包括9.9.5版本)只支持网页链接类型的消息,在9.9.5版本及以后只有纯文本类型的消息不支持。

1. 分享给朋友

a)发送文本消息

代码示例:

//  发送文本消息到支付宝
- (void)sendText
{
    //  创建消息载体 APMediaMessage 对象
    APMediaMessage *message = [[APMediaMessage alloc] init];
    
    //  创建文本类型的消息对象
    APShareTextObject *textObj = [[APShareTextObject alloc] init];
    textObj.text = @"此处填充发送到支付宝的纯文本信息";
    //  回填 APMediaMessage 的消息对象
    message.mediaObject = textObj;
    
    //  创建发送请求对象
    APSendMessageToAPReq *request = [[APSendMessageToAPReq alloc] init];
    //  填充消息载体对象
    request.message = message;
    //  分享场景,0为分享到好友,1为分享到生活圈;支付宝9.9.5版本至当前版本,分享入口已合并,scene参数并没有被使用,用户会在跳转进支付宝后选择分享场景(好友、动态、圈子等),但为保证老版本上无问题,建议还是照常传入。
    request.scene = 0;
    //  发送请求
    BOOL result = [APOpenAPI sendReq:request];
    if (!result) {
        //失败处理
        NSLog(@"发送失败");
    }
}
b)发送网页Card

代码示例:

//  发送网页消息到支付宝
- (void)sendWebByUrl
{
    //  创建消息载体 APMediaMessage 对象
    APMediaMessage *message = [[APMediaMessage alloc] init];
    
    message.title = @"此处填充网页标题";
    message.desc = @"此处填充网页简要内容";
    message.thumbUrl = @"此处填充缩略图的url链接地址";
    //缩略图也可使用thumbData字段分享本地UIImage类型图片,必须填充有效的image NSData类型数据,否则无法正常分享
    //例如 message.thumbData = UIImagePNGRepresentation(Your UIImage Obj);
    
    //  创建网页类型的消息对象
    APShareWebObject *webObj = [[APShareWebObject alloc] init];
    webObj.wepageUrl = @"此处填充网页url链接地址";
    //  回填 APMediaMessage 的消息对象
    message.mediaObject = webObj;
    
    //  创建发送请求对象
    APSendMessageToAPReq *request = [[APSendMessageToAPReq alloc] init];
    //  填充消息载体对象
    request.message = message;
    //  分享场景,0为分享到好友,1为分享到生活圈;支付宝9.9.5版本至当前版本,分享入口已合并,scene参数并没有被使用,用户会在跳转进支付宝后选择分享场景(好友、动态、圈子等),但为保证老版本上无问题,建议还是照常传入。
    request.scene = 1;
    //  发送请求
    BOOL result = [APOpenAPI sendReq:request];
    if (!result) {
        //失败处理
        NSLog(@"发送失败");
    }
}
c)发送图片分享

代码示例:

//  发送图片消息到支付宝
- (void)sendPhotoByUrl
{
    //  创建消息载体 APMediaMessage 对象
    APMediaMessage *message = [[APMediaMessage alloc] init];
    
    //  创建图片类型的消息对象
    APShareImageObject *imgObj = [[APShareImageObject alloc] init];
    imgObj.imageUrl = @"此处填充图片的url链接地址";
    //图片也可使用imageData字段分享本地UIImage类型图片,必须填充有效的image NSData类型数据,否则无法正常分享
    //例如 imgObj.imageData = UIImagePNGRepresentation(Your UIImage Obj);
    
    //  回填 APMediaMessage 的消息对象
    message.mediaObject = imgObj;
    
    //  创建发送请求对象
    APSendMessageToAPReq *request = [[APSendMessageToAPReq alloc] init];
    //  填充消息载体对象
    request.message = message;
    //  分享场景,0为分享到好友,1为分享到生活圈;支付宝9.9.5版本至当前版本,分享入口已合并,scene参数并没有被使用,用户会在跳转进支付宝后选择分享场景(好友、动态、圈子等),但为保证老版本上无问题,建议还是照常传入。
    request.scene = 0;
    //  发送请求
    BOOL result = [APOpenAPI sendReq:request];
    if (!result) {
        //失败处理
        NSLog(@"发送失败");
    }
}

2. 其他辅助能力

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

支付宝钱包从9.0版本开始支持分享,api中提供了接口来判断当前设备是否能够支持分享到支付宝钱包。
//@return 支付宝已安装返回YES,未安装返回NO。
+(BOOL) isAPAppInstalled;

b)判断当前设备是否支持分享到支付宝好友(已经安装支付宝&&支付宝版本支持分享到好友)

//@return 支持返回YES,不支持返回NO。
+(BOOL) isAPAppSupportOpenApi;

c)判断当前设备是否支持分享到支付宝生活圈(已经安装支付宝&&支付宝版本支持分享到生活圈)

// @return 支持返回YES,不支持返回NO。
+(BOOL) isAPAppSupportShareTimeLine;

d)获取支付宝钱包在AppStore的下载链接,未安装钱包时可使用该链接跳转安装

// @return 支付宝的安装地址字符串。
+(NSString *) getAPAppInstallUrl;

3. 响应返回码说明

在参照章节的接受和处理支付宝返回的响应消息实现回调接口之后,在回调方法里面可以处理相关错误码

错误码枚举定义在APErrorCode中:

错误码 说明
APSuccess 分享成功
APErrCodeUserCancel 分享被用户取消
APErrCodeAuthDeny 分享鉴权失败,需要检查appId、packageId以及签名是否和注册的时候一致
APErrCodeSentFail 分享过程中出现异常导致分享失败,可能由于网络或其他原因的失败
APErrCodeUnsupport 支付宝钱包版本不支持
APErrCodeCommon 分享参数错误

FAQ

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