文档中心 > 媒体类生活号

媒体类生活号快速接入

更新时间:2017/03/06 访问次数:1090

本文档展示了如何从零开始,使用蚂蚁金服开放平台服务端SDK快速接入媒体类生活号产品,完成与支付宝对接的部分。

注意: 文档中的代码示例和Demo是用来阐述API基本使用方法的,仅针对大众场景。

第一步:创建应用并获取APPID

首先请确认是否需要通过接口大批量创建生活号账号:

1.不需要:

请登录生活号后台入驻,一个支付宝账号可以创建5个生活号。

创建成功以后,登录蚂蚁金服开放平台(open.alipay.com),在管理中心下可以查找到创建成功的生活号应用,并记录APPID,在代码中使用。

2.需要:

要在您的应用中使用支付宝开放产品的接口能力,您需要先去蚂蚁金服开放平台(open.alipay.com),在管理中心中创建登记您的应用,并提交审核,审核通过后会为您生成应用唯一标识(APPID),并且可以申请开通开放产品使用权限,通过APPID您的应用才能调用开放产品的接口能力。需要详细了解开放平台创建应用步骤请参考《开放平台应用创建指南》

把该APPID提供给对应的技术支持或PD申请开通相关接口权限。

第二步:配置密钥

开发者调用接口前需要先生成RSA密钥,RSA密钥包含应用私钥(APP_PRIVATE_KEY)、应用公钥(APP_PUBLIC_KEY)。生成密钥后在开放平台管理中心进行密钥配置,配置完成后可以获取支付宝公钥(ALIPAY_PUBLIC_KEY)。详细步骤请参考《配置应用环境》

第三步:集成并配置SDK

为了帮助开发者调用开放接口,我们提供了开放平台服务端SDK,包含JAVA、PHP和.NET三语言版本,封装了签名&验签、HTTP接口请求等基础功能。请先下载对应语言版本的SDK并引入您的开发工程。

在使用SDK调用具体API前,需要先配置通用接入参数:

参数名称 参数说明
APP_ID 开放平台应用的APPID,详见创建应用并获取APPID
APP_PRIVATE_KEY 开发者应用私钥,详见配置密钥
CHARSET 请求和签名使用的字符编码格式,支持GBK和UTF-8
ALIPAY_PUBLIC_KEY 支付宝公钥,详见配置密钥
sign_type 签名类型,RSA或RSA2,需要与开放平台配置的公钥匹配

然后,使用上述接入参数初始化AlipayClient:

1
AlipayClient alipayClient = new DefaultAlipayClient( "https://openapi.alipay.com/gateway.do" ,APP_ID,APP_PRIVATE_KEY, "json" ,CHARSET,ALIPAY_PUBLIC_KEY,sign_type);

接下来,就可以用alipayClient来调用具体的API了。alipayClient只需要初始化一次,后续调用不同的API都可以使用同一个alipayClient对象。

第四步:接口调用

生活号产品共提供4个接口,分别为:

创建生活号接口:alipay.open.public.life.account.create

发送生活号消息接口:alipay.open.public.life.msg.send

修改生活号接口:alipay.open.public.life.account.modify (未发布)

撤回生活号消息接口:alipay.open.public.life.msg.recall

 

生活号接口明细:

接口名称 接口功能 入参 出参 备注
alipay.open.public.life.account.create 新建一个生活号 1. 被代理生活号:alipay_uid
2. 生活号名称:life_account_name
3. 生活号二级分类:idcatagory_id
4. 简介:content
5. 客服电话:customer_tel
6. 头像图片:logo
7. 背景图片:background
8. 联系人电话 contact_tel
9. 联系人邮箱contact_email
1. 创建的生活号id:public_id
2. 代理授权:token
3. 刷新令牌 refresh_token

4. 过期时间 expire_time
 
alipay.open.public.life.msg.send 发送一条生活号消息 1. 生活号授权token:app_auth_token
2. 生活号消息类型:msg_type
3. 消息标题:title(不超过30字)
4. 消息摘要:desc(不超过50字)
5. 消息封面图:cover
6. 视频链接地址:video_url
7. 视频时长:video_length
8. 视频大小:video_size
9. 消息正文:content
10. 原文跳转URL:raw_url
11. 消息分类:category
12. 消息描述信息:source_ext_info
13. 来源方消息唯一id:unique_msg_id
生活号消息id:messageId(生活号消息唯一标识  
alipay.open.public.life.account.modify 修改生活号信息 1. 生活号授权token:app_auth_token
2. 头像图片:logo
3. 封面图片:background
4. 简介:content(长度小于200字)
修改结果: result 本接口每月最多仅能调用一次
alipay.open.public.life.msg.recall 撤回一条生活号消息 1. 生活号授权token:app_auth_token
2. 生活号消息id:messageId
撤回结果:status  

上表中入参加粗字段为必填字段,具体接口文档详见API目录。

如果无需创建生活号,只需调试发送及撤销接口。

创建生活号接口,创建成功后会返回token,在调用发送接口或撤销接口时,需要传递对应token,使支付宝识别是哪个生活号发送的。

 

此处重点阐述发送接口alipay.open.public.life.msg.send 示例:

1.分类取值范围

描述 编码 说明
财经 c001 包含财经要闻、投资理财指南等内容
科技 c002 包含科技新闻、互联网公司动向、科学探索等内容
数码 c003 包含手机、电脑、平板、VR等数码设备、消费、点评内容
体育 c004 包含体育新闻、赛事报道、体育明星动向、赛事分析等内容
运动 c005 包含个人运动、健身、体育锻炼的科普、指南、课程等内容
娱乐综艺 c006 包含娱乐八卦、明星动态、综艺节目、美女帅哥等内容
美食 c007 包含探店、烹饪、烘焙、营养膳食等内容
时尚 c008 包含穿搭、美妆、风物、潮流、街拍、网红等内容
旅行 c009 包含境内外旅游攻略、排行榜、目的地介绍等内容
教育 c010 包含k12、英语、成人、职业培训等教育内容
游戏 c011 包含游戏攻略、游戏发行、游戏视频、玩家动态等内容
汽车 c012 包含购车指南、养车攻略等内容
养生 c013 包含身体保健、膳食调理、生活习惯等内容(严格禁止药物介绍和医院介绍)
电影 c014 包含电影发行、影评、电影剪辑、影视特效、电影节等内容
电视剧 c015 包含流行电视剧、剧评、电视剪辑等内容
音乐 c016 包含音乐分析、音乐榜单、音乐节、音乐奖项新闻等内容
摄影 c017 包含摄影技巧、摄影作品、摄影设备等内容
艺术 c018 包含文学、绘画、设计、乐器、雕塑等内容
情感 c019 包含婚姻、两性、家庭、伦理等内容
宠物 c020 包含养宠技巧、宠物趣图、宠物食品等内容
动漫 c021 包含动画、漫画、周边产品、动漫节、动漫作者采访等内容
星座 c022 包含星座、占卜、运势等内容
育儿 c023 包含备孕、孕妇、生子、产后护理、婴幼儿护理等内容
搞笑 c024 主要为搞笑视频
房产 c025 包含地产新闻、最新国家政策、楼市走势分析、装修装潢、家居软装等内容

2.消息正文content样例:

  1. 正文为Html片段,不包含html头尾。
  2. 只支持p、div、img等简单的html标签,不应包含table等复杂标签。
  3. 不能包含script标签,如有css样式,尽量内联在html标签内。
  4. 权益位
    自定义内容:跳转链接,头像,名称,简介
    跳转链接可选填,如不跳转,统一填「javascript:void(0)」

 

<p>明天就是5月8日,是今年的母亲节了。我们每个人的长相不同,身份不同,梦想不同,可是我们相同的是都有一位生下我们的伟大的母亲!</p>

    <p><br></p>
    <p><img src="https://t.alipayobjects.com/images/publichome/T16P8oXlhdXXcUQpbX"></p>
    <p><img src="https://t.alipayobjects.com/images/publichome/T1ORhoXd8XXXcUQpbX"></p>
    <p><br></p>
    <p><img src="https://t.alipayobjects.com/images/publichome/T1dlhoXghXXXcUQpbX"></p>

    <a class="author-info" href="javascript:void(0)">
        <span class="title">
            <span class="logo" style="background-image: url(https://os.alipayobjects.com/rmsportal/HARMCZNAKsXFMmw.png);"></span>
            <span class="name">毒蛇电影</span>
        </span>
        <span class="desc">毒蛇影院以最快的速度为你提供最新电视剧以及最热门的好看的电视剧,电影,综艺,动漫等...新浪微博账号:@mingricaijing</span>
    </a>

3.java版本SDKalipay.open.public.life.msg.send接口调用示例:


// 支付宝SDK调用客户端调用工厂类 public class AlipayAPIClientFactory{ // 获取ISV调用客户端 public static AlipayClient getAlipayISVClient(String appId){ //AlipayISVEnvConstant.ALIPAY_GATEWAY:**支付宝网关地址**(线上:https://openapi.alipay.com/gateway.do) //AlipayISVEnvConstant.APP_ID:**外部商户应用id** //AlipayISVEnvConstant.PRIVATE_KEY:**外部商户应用私钥** //AlipayServiceEnvConstants.UTF_CHARSET:utf-8 return new DefaultAlipayClient(AlipayISVEnvConstant.ALIPAY_GATEWAY, AlipayISVEnvConstant.APP_ID, AlipayISVEnvConstant.PRIVATE_KEY, "json", AlipayServiceEnvConstants.UTF_CHARSET); } } 3.java版本SDKalipay.open.public.life.msg.send接口调用示例: /** * 生活号消息接口实现 * * @author xuzeng.xz * @version $Id: AlipayOpenPublicLifeMsgFacadeImpl.java, v 0.1 2016年4月29日 下午8:58:39 xuzeng.xz Exp $ */ public class AlipayOpenPublicLifeMsgFacadeImpl implements AlipayOpenPublicLifeMsgFacade { @Override public String send(String appId, String biz_content) { // 取自创建生活号接口返回值,形如 String appAuthToken = "201509BBdcba1e3347de4e75ba3fed2c9abebE36"; // 初始化SDK调用客户端 AlipayClient alipayClient = AlipayAPIClientFactory.getAlipayISVClient(appId); /** * 由于app_auth_token如果间隔一年不使用,会自动失效的 * 若无使用场景,建议定期刷新;如果使用,则自动续命一年 * */ if(间隔一段时间未使用app_auth_token发送消息){ // 设置刷新应用授权令牌Request类, refresh_token使用alipay.open.public.life.account.create接口返回值 AlipayOpenAuthTokenAppRequest authRequest = new AlipayOpenAuthTokenAppRequest(); request.setBizContent("{\"grant_type\":\"refresh_token\",\"refresh_token\":\"201509BBdcba1e3347de4e75ba3fed2c9abebE36\"}"); // 调用刷新应用授权令牌 AlipayOpenAuthTokenAppResponse authResponse = alipayClient.execute(authRequest); // 获取刷新后的令牌 appAuthToken = authResponse.getAppAuthToken(); } // 调用生活号消息发送接口 AlipayOpenPublicLifeMsgSendRequest request = new AlipayOpenPublicLifeMsgSendRequest(); // 填充app_auth_token request.putOtherTextParam("app_auth_token", appAuthToken); // 图文类型消息为IMAGE-CONTENT,视频类消息为VIDEO request.setMsgType("VIDEO"); request.setUniqueMsgId("2016042810221362"); request.setTitle("杭州天气预报"); request.setDesc("多云转晴,13-21°"); FileItem Cover = new FileItem("/home/admin/res/LifeMsgCover.png"); request.setCover(Cover); request.setContent("多云转晴,10°-21°"); request.setRawUrl("https://open.alipay.com/platform/home.htm"); request.setCategory("天气,杭州"); request.setVideoUrl("http://cloud.video.taobao.com/play/u/693005635/e/1/t/1/p/1/28630973.swf"); request.setVideoLength("36"); request.setVideoSize("1024"); JSONObject source_ext_info = new JSONObject(); source_ext_info.put("keyword_list", "娱乐|财经"); source_ext_info.put("comment", "100000"); source_ext_info.put("reward", "1000000"); source_ext_info.put("is_recommended", "true"); source_ext_info.put("is_news", "true"); source_ext_info.put("read", "100000"); source_ext_info.put("like", "100000"); source_ext_info.put("is_hot", "true"); source_ext_info.put("share", "10000"); source_ext_info.put("deadline", "2016.04.10 16:50:00"); request.setSourceExtInfo(source_ext_info.toJSONString()); try { // 发送生活号消息 AlipayOpenPublicLifeMsgSendResponse response = alipayClient.execute(request); // 发送成功 if (null != response && response.isSuccess()) { // 获取生活号消息id String lifeAPPMsgId = response.getAlipayMsgId(); // TODO 记录生活号消息id } // 发送失败 else { LoggerUtil.warn(LOGGER, response); } } catch (Exception e) { LoggerUtil.error(LOGGER, String.format("AlipayOpenPublicLifeMsgSender接口调用异常,request:%s", request), e); } } } // 生活号消息撤回 public class AlipayOpenPublicLifeMsgRecallSender implements RequestSender { @Override public String send(String appId, String biz_content) { String msg = ""; String cover = ""; try { // 调用生活号消息撤回接口 AlipayOpenPublicLifeMsgRecallRequest request = new AlipayOpenPublicLifeMsgRecallRequest(); // 设置oauthToken request.putOtherTextParam("app_auth_token", appAuthToken); String msgId = (String) req.get("message_id"); JSONObject reqJsonObject = new JSONObject(); reqJsonObject.put("message_id", msgId); request.setBizContent(reqJsonObject.toJSONString()); try { // 商户自己发送 // alipayClient = AlipayAPIClientFactory.getAlipayClient(appId); AlipayOpenPublicLifeMsgRecallResponse response = alipayClient.execute(request); if (null != response && response.isSuccess()) { msg = response.getBody(); LoggerUtil.info(LOGGER, AMPLUQ + "成功 : response = " + response.getBody() + ",cover:" + cover); } else { msg = AMPLUQ + "失败 :response = " + response.getBody(); LoggerUtil.warn(LOGGER, msg); } } catch (Exception e) { LoggerUtil.error(LOGGER, String.format("AlipayOpenPublicLifeMsgRecallSender接口调用异常,request:%s", request), e); msg = e.toString(); } } catch (Exception e) { LoggerUtil.error(LOGGER, String.format( "AlipayOpenPublicLifeMsgRecallSender接口调用异常,biz_content:%s", biz_content), e); msg = e.toString(); } return msg + ", cover:" + cover; } }

FAQ

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