为什麼在网页上一看图片就会跳到充支付宝宝界面

在微博上有个人发了网页链接,不小心点进去结果跳到了支付宝页面。_百度知道
在微博上有个人发了网页链接,不小心点进去结果跳到了支付宝页面。
在微博上有个人发了领券,网页链接,不小心点进去结果跳到了支付宝页面。我就马上关掉了,请问会不会有什么风险啊?支付宝会不会被盗啊好怕!!!!
我有更好的答案
我也点来过,之后也没什么事,看网上有人说那只是一个支付界面,你不支付就没问题
采纳率:100%
这些都是现在网络流行的宣传手法。确实很烦人的。尽量避免点入来历不明的链接。有些还有病毒的呢
那我这个会不会有什么风险啊,要不要做点什么措施?
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。(国服第一王昭君)
(linlinsue)
第三方登录:为什么打开网页却跳到支付宝网站_百度知道
为什么打开网页却跳到支付宝网站
我有更好的答案
有的是因为有病毒,也有可能是你把支付宝的网页锁定为主页了。在网页设置里锁定下主页就好了你好,有的网页有支付宝的广告弹窗:那要看你打开的是什么网页了
我打开的是蚌埠论坛。。昨天还能上今天就打不开了。。一点网站就变支付宝。。其他网站都可以。就蚌埠论坛不行。别的机子可以正常上。。麻烦解决下。。谢谢
采纳率:32%
来自团队:
营运商DNS劫持产生的,我手机看凤凰网站,也出现了,用的是联通的网络
1条折叠回答
为您推荐:
其他类似问题
支付宝的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。怎么在图片上加超链接 点击图片跳转到指定网页
在一些论坛、博客或者是一些网站浏览图片的时候会发现一个问题,就是当你不小心点击某一张图片后会自动跳转到另一个网页的界面,这样做的目的其实是为了宣传、推广该网页,也
& & & 在一些论坛、博客或者是一些网站浏览图片的时候会发现一个问题,就是当你不小心点击某一张图片后会自动跳转到另一个网页的界面,这样做的目的其实是为了宣传、推广该网页,也达到一个引流的效果,我们也可以利用这样的方法来推广自己的产品。该方法的原理就是给图片添加超链接,图片加超链接的方法其实很简单,一个记事本文件、一个链接的网址、一张图片,即可达到想要的效果。
& && &此方案用到的工具下载:
& && &效果预览
狂戳图片查看效果
& && &首先需要新建一个记事本文件。桌面空白处右击,在弹出的菜单中选择&新建文本文档&。
& && &建立记事本文件后把相应的程序命令复制粘贴进去,程序代码我已经上传了,大家可以在上面的地址进行下载。命令其实很简单,一个表示要跳转的网页地址,另一个表示图片所在的地址,最后的一个则表示图片的边框、图片宽度以及图片的高度。
& && &我们先来设置要跳转的网页地址。首先打开一个要跳转的网页,然后复制网页地址栏上面的地址,接着粘贴到记事本中相应的位置。大家可以根据下面的图示来进行相关的操作。
& && &跳转地址设置好之后现在来设置图片的地址。在网页中找到所需要用到的图片素材,然后右击该图片,在弹出的菜单中选择&复制图片地址&。然后打开新建的记事本文件,把刚刚复制的地址粘贴到相应的位置即可。
& && &因为命令中的地址前面必须要带有http://,所以本地电脑上面的图片没办法直接作为超链接的图片,那如果要用到本地图片作为超链接图片该怎样办呢?这时就要用到百度网盘了,先把相应的图片素材上传到百度网盘,然后右击该图片,在弹出的菜单中选择&分享&。
& && &这时会弹出一个新的界面,点击界面上的&创建公开链接&,等相应的链接地址显示后再点击&复制链接&。接着再把刚刚复制的链接粘贴到记事本的相应位置就行了。
& && &接着来设置图片的边框、图片宽度以及图片高度。border表示图片边框,width表示图片宽度,height则表示图片的高度。图片边框一般设置为0,图片宽度和高度大家可以根据自己的需要进行设置。右击图片选择属性,可以查看相应的参数信息。
& && &所有的命令都设置好之后现在对记事本文件进行保存。选择&文件&菜单下面的&另存为&,在弹出的另存为对话框中设置保存的位置、名称以及保存类型,最后单击保存即可。这里要注意一点,保存文件名称的后缀名一定是要为.htm。
& && &我是保存在桌面上的,所以现在在桌面上就会看到一个后缀名为.htm的文件,双击打开该文件(我这里是用IE浏览器打开的),在浏览器的页面上就会显示相应的图片内容,直接点击该图片会进入到之前设置的要跳转到的网页上面。右击该图片,在弹出的菜单中选择&复制&,然后粘贴到要插入图片的位置,以后只要点击该图片就会跳转到自己想要链接的网页了。
& && &IE浏览器不知道为什么变成英文的了,设置浏览器的显示语言都没用,所以大家上面看到的是英文菜单,大家自己在操作的时候直接右击选择复制就行了哈。建议大家先在IE浏览器打开一个网页,然后再打开后缀名为.htm的文件,这样就不会产生错误了,不过也可能是我的浏览器的原因哈。
& && &以上就是今天关于怎样给图片加超链接的相关操作了。大家在编辑命令的时候一定要输入正确的网页地址和图片地址,而且命令中所有的引号一定要是英文状态下的引号,不然会出现链接不成功的情况。
------分隔线----------------------------
我们可能偶尔需要某张照片中的一部分图像,做为微信头像、...
你还记得《山楂树之恋》中的静秋,你还记得《步步惊心》中一...
照片中添加马赛克是一种破坏性的不可逆算法。通常来讲,当图...服务窗简介
服务窗平台开发接口介绍
服务窗平台是为支付宝用户提供服务的平台,平台开发接口是提供服务的基础。开发者在中创建服务窗,并且申请接口权限之后,可以通过阅读该文档来完成服务窗的开发工作。
服务窗平台开发接口向开发者提供包括自定义菜单、消息交互、获取用户基础信息等能力。当用户发消息给服务窗或者与服务窗发生其他交互时,支付宝网关会使用HTTP请求将消息推送给开发者网关,开发者网关也可以通过异步调用的方式给用户发送消息。
服务窗平台目前支持以下接口能力:
描述及应用场景举例
用户发送的消息或者与服务窗产生的交互都会被推送至开发者网关,配合消息推送接口,开发者可以实现关键词回复消息、客服等业务
开发者可以使用接口、接口或者接口向用户推送消息
开发者可以根据用户地理位置信息提供个性化服务
开发者可以通过OAuth2.0鉴权的方式获取用户基本信息,实现账号绑定、免登等业务逻辑
开发者可以通过OAuth2.0鉴权的方式获取用户手机通讯录中好友的信息
支持、、,用户点击菜单可以向开发者推送消息或者打开Web页面
开发者可以生成和,对服务窗及营销活动进行推广
开发者可以在Web页面调用支付接口,非常方便地实现支付功能
开发者可以在Web页面调用JS接口实现获取用户网络状况、摇一摇等功能
开发者可以申请参与支付宝全民免费Wifi计划,为用户提供Wifi服务的同时,拓展自身的业务
成功案例介绍
中国石化浙江石油掌上营业厅
中石化服务窗可以将用户与自身石化会员体系绑定,在此基础之上,为会员提供在线办卡、办卡进度查询、在线充值、消费查询等一系列服务。用户只需要关注该服务窗便可以享受这些快捷优质的服务。
布丁酒店连锁
用户可以通过布丁酒店连锁服务窗进行账户绑定,使用该服务窗完成酒店预订、订单与积分管理、优惠券与特权券查看等功能,从此告别繁琐的APP,一步完成所需。用户还可以在这些服务中方便地使用支付宝的支付功能,安全快捷。除此之外,用户还能享受布丁酒店推送的优惠活动哦~
中信银行信用卡
如果你是持卡人,可快捷查询信用卡账单、额度及积分。你还可以在服务窗中实现快速还款、申请账单分期等功能。从此你的信用卡消费将更加易于追踪,及时的消息推送让你再也不会忘记信用卡还款。
用户可以在中国电信服务窗中绑定自己的手机,从此话费和流量查询以及充值将变得异常简单。除此之外,用户还能第一时间看到中国电信推送的一系列优惠活动。
交通违章办理
在我们身处异地办理违章缴款并不方便、或是时间不充裕的时候,选择支付宝钱包代办交通违章无疑非常方便,万事不求人,填写完车牌号、发动机号等资料后就可以对车辆的违章情况进行查询,如果我们对违章情况没有异议的话可以直接在这里缴纳违章费用。
开发者规范
开发者进行服务窗开发时,除了需要满足每个接口的规范限制、调用频率限制外,还需特别注意用户数据等敏感信息的使用规范。
用户数据获取使用规范
您的服务需要收集用户任何数据的,必须事先获得用户的明确同意,并且只使用运营中必须的用户数据,同时应当告知用户相关数据收集的目的、范围及使用方式等,保障用户知情权。
您收集用户的数据后,必须采取必要的保护措施,防止用户数据被盗、泄漏等。
您在特定支付宝服务窗中收集的用户数据仅可以在该特定支付宝服务窗中使用,不得将其使用在该特定支付宝服务窗之外或为其他任何目的进行使用,也不得以任何方式将其提供给他人。
如果支付宝认为您收集、使用用户数据的方式,可能损害用户体验,支付宝有权要求您删除相关数据并不得再以该方式收集、使用用户数据。
一旦您停止该服务,或支付宝基于任何原因终止您使用本服务,您必须立即删除全部因使用本服务而获得的数据(包括各种备份), 且不得再以任何方式进行使用。
请勿为任何用户自动登录到支付宝服务窗平台提供代理身份验证凭据。
请勿提供跟踪功能,包括但不限于识别其他用户在个人主页上查看、点击等操作行为。
请勿自动将浏览器窗口定向到其他网页。
请勿设置或发布任何违反相关法规、公序良俗、社会公德等的玩法、内容等。
请勿公开表达或暗示,您与支付宝之间存在合作关系,包括但不限于相互持股、商业往来或合作关系等,或声称支付宝对您的认可。
开发者进行服务窗开发时,除了需要满足每个接口的规范限制、调用频率限制外,还需特别注意用户数据等敏感信息的使用规范。
最新发布功能(Release Note)
release note
全民免费WiFi计划内测申请已经开通,详情
异步单发消息及群发消息支持类型
用户标签及标签组发消息接口组开放内测,详情
通讯录信息接口开放内测,详情
OAuth 2.0授权支持接口组合授权方案,用户一次授权对多个接口生效,详情
release note
事件订阅与重试机制,详情
日凌晨00:00之前入驻的商户的“进入事件”默认订阅,之后入驻的商户的“进入事件”默认不订阅。
日凌晨00:00之前入驻的商户的重试机制默认不打开,之后入驻的商户的重试机制默认打开。
模板消息调用时,做了actionName及url的兼容:
调用接口不再强校验url字段,如果未配置url字段,则点击不跳转,并且下方不显示“立即查看”等引导点击的内容;
调用接口不再强校验actionName字段,如果未配置actionName字段,则默认显示“立即查看”。
release note
接口兼容了OpenId和老的用户Id(2088开头的串)。比如用户完成支付后,开发者可以获取到老的用户Id(2088开头),商户可以使用其作为入参调用向该用户发送一条付款成功通知。以下接口都做了OpenId及老用户Id的兼容:
release note
新增“基础授权”类型——商户无需申请账户信息共享接口权限也可以在网页上获取用户的OpenId,实现商户账号与支付宝服务窗账号的绑定、免登等业务逻辑,对于只需要用户OpenId的授权方式,无需经过用户授权直接跳转商家页面,详情
授权页面交互及视觉改版,默认不显示“取消”按钮,商户可以通过URL上带参数将“取消”按钮打开,用户点击“取消”跳转到商家页面时不会带auth_code这个参数,这种情况需要商户自己做好容错,详情
在商家后台将“账户信息共享接口”的登录名(logonid,比如)及收货地址的申请入口关闭,开发者想要使用收货地址时,请使用我们的JSAPI调用方案,详情,开发者可以在“支付宝未来商业”这个服务窗中的“申请开通-技术文档”菜单中查看所有的Demo
模板消息是指如银行动帐提醒、航空公司值机提醒等对消费者非常有价值的消息类型,模板消息符合特定的格式,无需用户发生交互就可以主动向用户推送。
单发模板消息接口的权限已经向所有商家开放,模板的申请后台还在开发之中,当前有需要申请的请先对应商务合作经理,模板消息接口文档
可以查看模板消息的一个示例
JSAPI用于增强商户H5的功能,比如商户可以通过调用photo JSAPI调起钱包的拍照组件。我们将特色的JSAPI打包成Demo合集,开放给所有开发者参考使用,详情
开发者可以在“支付宝未来商业”这个服务窗中的“申请开通-技术文档”菜单中查看所有的Demo
安全基础与接入
安全基础 - 生成公钥、私钥
服务窗平台采用了RSA加密签名的安全通信机制,开发者可以通过支付宝的公钥验证消息的来源,同时使用自己的私钥进行信息加密。RSA算法及数字签名机制是服务窗平台与开发者网关安全通信的基础,如果开发者对RSA及数字签名并不熟悉,请先查阅相关资料。
RSA密钥使用指南
OpenSSL工具安装
Linux用户(以Ubuntu为例)
sudo apt-get install openssl
Windows用户开发者可以在下载Windows的OpenSSL安装包进行安装
RSA私钥及公钥生成
Linux用户(以Ubuntu为例)
进入OpenSSL程序
OpenSSL& genrsa -out rsa_private_key.pem 1024
OpenSSL& pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
Java开发者需要将私钥转换成PKCS8格式
OpenSSL& rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
OpenSSL& exit
Windows用户
以下操作在cmd窗口使用
C:\Users\Hammer&cd C:\OpenSSL-Win32\bin
进入OpenSSL安装目录
C:\OpenSSL-Win32\bin&openssl.exe
进入OpenSSL程序
OpenSSL& genrsa -out rsa_private_key.pem 1024
OpenSSL& pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
Java开发者需要将私钥转换成PKCS8格式
OpenSSL& rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
OpenSSL& exit
注意:对于使用Java的开发者,将pkcs8在console中输出的私钥去除头尾、换行和空格,作为开发者私钥,对于.NET和PHP的开发者来说,无需进行pkcs8命令行操作。
私钥及公钥文件示例
经过以上步骤,开发者可以在当前文件夹中(Windows用户在C:\OpenSSL-Win32\bin)看到rsa_private_key.pem和rsa_public_key.pem两个文件,前者为私钥,后者为公钥。开发者将私钥保留,将公钥提交给支付宝网关,用于信息加密及解密。以下为使用OpenSSL生成的私钥文件和公钥文件示例。
标准的私钥文件示例(PHP、.NET使用)
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQC+L0rfjLl3neHleNMOsYTW8r0QXZ5RVb2p/vvY3fJNNugvJ7lo
4+fdBz+LN4mDxTz4MTOhi5e2yeAqx+v3nKpNmPzC5LmDjhHZURhwbqFtIpZD51mO
fno2c3MDwlrsVi6mTypbNu4uaQzw/TOpwufSLWF7k6p2pLoVmmqJzQiD0QIDAQAB
AoGAakB1risquv9D4zX7hCv9MTFwGyKSfpJOYhkIjwKAik7wrNeeqFEbisqv35Fp
jGq3Q1oJpGkem4pxaLVEyZOHONefZ9MGVChT/MNH5b0FJYWl392RZy8KCdq376Vt
4gKVlABvaV1DkapL+nLh7LMo/bENudARsxD55IGObMU19lkCQQDwHmzWPMHfc3kd
Y6AqiLrOss+MVIAhQqZOHhDe0aW2gZtwiWeYK1wB/fRxJ5esk1sScOWgzvCN/oGJ
LhU3kipHAkEAysNoSdG2oWADxlIt4W9kUiiiqNgimHGMHPwp4JMxupHMTm7D9XtG
UIiDijZxunHv3kvktNfWj3Yji0661zHVJwJBAM8TDf077F4NsVc9AXVs8N0sq3xz
qwQD/HPFzfq6hdR8tVY5yRMb4X7+SX4EDPORKKsgnYcur5lk8MUi7r072iUCQQC8
xQvUne+fcdpRyrR4StJlQvucogwjTKMbYRBDygXkIlTJOIorgudFlrKP/HwJDoY4
uQNl8gQJb/1LdrKwIe7FAkBl0TNtfodGrDXBHwBgtN/t3pyi+sz7OpJdUklKE7zM
SBuLd1E3O4JMzvWP9wEE7JDb+brjgK4/cxxUHUTkk592
-----END RSA PRIVATE KEY-----
PKCS8处理后的私钥文件示例(Java使用)
-----BEGIN PRIVATE KEY-----
MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAN0yqPkLXlnhM+2H
/57aHsYHaHXazr9pFQun907TMvmbR04wHChVsKVgGUF1hC0FN9hfeYT5v2SXg1WJ
Sg2tSgk7F29SpsF0I36oSLCIszxdu7ClO7c22mxEVuCjmYpJdqb6XweAZzv4Is66
1jXP4PdrCTHRdVTU5zR9xUByiLSVAgMBAAECgYEAhznORRonHylm9oKaygEsqQGk
YdBXbnsOS6busLi6xA+iovEUdbAVIrTCG9t854z2HAgaISoRUKyztJoOtJfI1wJa
QU+XL+U3JIh4jmNx/k5UzJijfvfpT7Cv3ueMtqyAGBJrkLvXjiS7O5ylaCGuB0Qz
711bWGkRrVoosPM3N6ECQQD8hVQUgnHEVHZYtvFqfcoq2g/onPbSqyjdrRu35a7P
vgDAZx69Mr/XggGNTgT3jJn7+2XmiGkHM1fd1Ob/3uAdAkEA4D7aE3ZgXG/PQqlm
3VbE/+4MvNl8xhjqOkByBOY2ZFfWKhlRziLEPSSAh16xEJ79WgY9iti+guLRAMra
vGrs2QJBAOmKWYeaWKNNxiIoF7/4VDgrcpkcSf3uRB44UjFSn8kLnWBUPo6WV+x1
FQBdjqRviZ4NFGIP+KqrJnFHzNgJhVUCQFzCAukMDV4PLfeQJSmna8PFz2UKva8f
vTutTryyEYu+PauaX5laDjyQbc4RIEMU0Q29CRX3BA8WDYg7YPGRdTkCQQCG+pjU
2FB17ZLuKRlKEdtXNV6zQFTmFc1TKhlsDTtCkWs/xwkoCfZKstuV3Uc5J4BNJDkQ
OGm38pDRPcUDUh2/
-----END PRIVATE KEY-----
公钥文件示例
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQWiDVZ7XYxa4CQsZoB3n7bfxL
DkeGKjyQPt2FUtm4TWX9OYrd523iw6UUqnQ+Evfw88JgRnhyXadp+vnPKP7unorm
YQAfsM/CxzrfMoVdtwSiGtIJB4pfyRXjA+KL8nIa2hdQy5nLfgPVGZN4WidfUY/Q
pkddCVXnZ4bAUaQjXQIDAQAB
-----END PUBLIC KEY-----
接入与验证
开发者生成私钥、公钥之后,将公钥提交给服务窗平台,同时下载支付宝的公钥,使用OpenSSL的方式验证签名之后便可完成接入。
开发者使用接口之前需要激活开发者模式,请打开,点击下方的“激活开发者模式”按钮。
建议开发者使用支付宝提供的SDK进行服务窗开发,使用SDK进行开发有以下优点:
SDK会随着新接口的发布而同步更新
SDK会随着老接口的更新而同步更新
SDK让底层逻辑变得透明和简单,开发者只需关注于自身的业务逻辑
SDK集成了编码、签名等常用方法,开发者无需额外耗费时间
提供了基于SDK开发的Demo,开发者上手更容易
Demo下载:
填写开发者网关及开发者公钥
开发者将网关地址填入开发者网关一栏。
开发者将公钥文件去除头尾、换行和空格后的字符串填入开发者公钥一栏。
转换前pem文件格式:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQWiDVZ7XYxa4CQsZoB3n7bfxL
DkeGKjyQPt2FUtm4TWX9OYrd523iw6UUqnQ+Evfw88JgRnhyXadp+vnPKP7unorm
YQAfsM/CxzrfMoVdtwSiGtIJB4pfyRXjA+KL8nIa2hdQy5nLfgPVGZN4WidfUY/Q
pkddCVXnZ4bAUaQjXQIDAQAB
-----END PUBLIC KEY-----
转换后的字符串:
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQWiDVZ7XYxa4CQsZoB3n7bfxLDkeGKjyQPt2FUtm4TWX9OYrd523iw6UUqnQ+Evfw88JgRnhyXadp+vnPKP7unormYQAfsM/CxzrfMoVdtwSiGtIJB4pfyRXjA+KL8nIa2hdQy5nLfgPVGZN4WidfUY/QpkddCVXnZ4bAUaQjXQIDAQAB
如下图所示:
下载支付宝公钥
点击“复制公钥”按钮,可以获取支付宝公钥,支付宝公钥是经过格式化之后的字符串,如果开发者需要使用pem文件进行验签,请pem公钥文件。
支付宝公钥:
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDI6d306Q8fIfCOaTXyiUeJHkrIvYISRcc73s3vF1ZT7XN8RNPwJxo8pWaJMmvyTn9N4HQ632qJBVHf8sxHi/fEsraprwCtzvzQETrNRwVxLO5jVmRGi60j8Ue1efIlzPXV9je9mkjzOmdssymZkh2QhUrCmZYI/FCEa3/cNMW0QIDAQAB
PEM格式化后的支付宝公钥:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDI6d306Q8fIfCOaTXyiUeJHkr
IvYISRcc73s3vF1ZT7XN8RNPwJxo8pWaJMmvyTn9N4HQ632qJBVHf8sxHi/fEsra
prwCtzvzQETrNRwVxLO5jVmRGi60j8Ue1efIlzPXV9je9mkjzOmdssymZkh2QhUr
CmZYI/FCEa3/cNMW0QIDAQAB
-----END PUBLIC KEY-----
使用支付宝公钥进行验签
当开发者完成网关代码的部署之后,便可以点击“提交”按钮,激活开发者模式,接入服务窗平台。
此时,支付宝网关会向开发者网关发送一条验证消息,以POST方式请求,以下为一个请求示例:
REQUEST URL: https://example.com/gateway.do
REQUEST METHOD: POST
service=alipay.service.check
sign=ntjOmXFGJMdfdMnrTL5rEp9QG8d0lDEoGg3ZHvqemHeI8BlQoEsFbhEn0IfQT+pvfJz5RCuE+3Qh1X7I4z5iTIiGjDBstc0xeuiAmtP9TrJZuw2jUAODFB9qOwBJLNcWlKHUGTU/db/qRsJQCj8EjoJvSi9MRM/xKv/XmduS/C4=
sign_type=RSA
charset=GBK
biz_content=&?xml version=&1.0& encoding=&gbk&?&&XML&&AppId&&![CDATA[7148]]&&/AppId&&FromUserId&&/FromUserId&&CreateTime&&![CDATA[7]]&&/CreateTime&&MsgType&&![CDATA[event]]&&/MsgType&&EventType&&![CDATA[verifygw]]&&/EventType&&ActionParam&&/ActionParam&&AgreementId&&/AgreementId&&AccountNo&&/AccountNo&&/XML&
开发者接收到该消息之后,需要使用支付宝的公钥对签名作验证,以确保该消息来源可靠。
将支付宝返回的POST参数(不包含sign参数)做字母排序,组成query类型的字符串,比如上文的POST请求组成的query类型字符串为:
biz_content=&?xml version=&1.0& encoding=&gbk&?&&XML&&AppId&&![CDATA[7148]]&&/AppId&&FromUserId&&/FromUserId&&CreateTime&&![CDATA[7]]&&/CreateTime&&MsgType&&![CDATA[event]]&&/MsgType&&EventType&&![CDATA[verifygw]]&&/EventType&&ActionParam&&/ActionParam&&AgreementId&&/AgreementId&&AccountNo&&/AccountNo&&/XML&&charset=GBK&service=alipay.service.check&sign_type=RSA
将签名参数使用base64解码为字节码串
使用OpenSSL的验签方法及支付宝公钥验证签名,以下为php代码的一个片段,其中$data为经过1排序处理后的query字符串,$rsaPublicKeyFilePath指支付宝公钥PEM文件的文件地址
/* 使用支付宝的公钥对支付宝来的消息进行验签 */
public function verify($data, $sign, $rsaPublicKeyFilePath) {
/* 读取公钥文件,PEM格式 */
$pubKey = file_get_contents($rsaPublicKeyFilePath);
/* 转换为openssl格式密钥 */
$res = openssl_get_publickey($pubKey);
/* 调用openssl内置方法验签 */
$result = (bool) openssl_verify($data, base64_decode($sign), $res);
/* 释放资源 */
openssl_free_key($res);
/* 返回验签结果 */
返回验签成功消息
开发者验签成功之后,需要向支付宝网关回复一条消息,表示验签成功。支付宝收到符合规则的消息之后,开发者模式就激活了。以下为回复消息的格式(其中biz_content为开发者公钥):
&?xml version=&1.0& encoding=&GBK&?&
&response&
&biz_content&MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQWiDVZ7XYxa4CQsZoB3n7bfxLDkeGKjyQPt2FUtm4TWX9OYrd523iw6UUqnQ+Evfw88JgRnhyXadp+vnPKP7unormYQAfsM/CxzrfMoVdtwSiGtIJB4pfyRXjA+KL8nIa2hdQy5nLfgPVGZN4WidfUY/QpkddCVXnZ4bAUaQjXQIDAQAB&/biz_content&
&success&true&/success&
&/response&
&sign&DXr8LVfHytoZ3RR0K95pzGtA3d9LdpjIjLEis2BDIPQisPwS+FMFxZt9NCMt531EeDj/nbzoIAz8Or7PuqxNfSzNI8qnhirm/Hvr8uedXX9JiQxHu8q3Rw2lJWD8cqQzgf3xwV/+wbN8yuI7s8xjo6odq6NCqrAIu7E0DDfZyKo=&/sign&
&sign_type&RSA&/sign_type&
开发者可以参考相关Demo(Demo包请)。
消息交互体系
支付宝网关与开发者的通信消息主要分为两类:
开发者网关接收支付宝网关发送的消息(下文简称接收消息)
开发者网关主动调用支付宝网关接口(下文简称OpenAPI)
在支付宝网关与开发者网关消息交互中传输的用户ID都是经过加密处理的OpenId,以保障用户隐私安全。
当用户与服务窗发生交互时,支付宝网关会向开发者网关发送POST请求。比如,用户关注服务窗时,支付宝网关会向开发者网关发送一条关注事件消息。下文为一个示例:
REQUEST URL: https://example.com/gateway.do
REQUEST METHOD: POST
sign=SSK/h9WV8H+ObDwOGEItQOGPocc4IgpRPHgwUZiSU2DSGNC2o+EsYm8ajJZ6EkEWcvKcVyPiUNU1p7vzjrhv/T+KJ1Z5+BFTJ3ibrCZaZppoMk47se5LjjTDUwaKDDAb2zmK85ZOTt+8LkB3MEiPG/kiYomud7r7kvnoRCEixbY=
biz_content=&XML&&AppId&&![CDATA[7148]]&&/AppId&&FromUserId&&![CDATA[CogmJcgdBQvCr1jdSWXmMul3JwoaXmLBrbkSty7ivP0SaOemwnUkRdOm5AITm38701]]&&/FromUserId&&CreateTime&![CDATA[2]]&/CreateTime&&MsgType&&![CDATA[event]]&&/MsgType&&EventType&&![CDATA[follow]]&&/EventType&&ActionParam&&![CDATA[]]&&/ActionParam&&AgreementId&&![CDATA[]]&&/AgreementId&&AccountNo&&![CDATA[]]&&/AccountNo&&UserInfo&&![CDATA[{&logon_id&:&135**1009&,&user_name&:&*iuxu527&}]]&&/UserInfo&&/XML&
sign_type=RSA
service=alipay.mobile.public.message.notify
charset=GBK
注:所有请求参数需经过编码处理,本示例给出的是未经编码处理时的请求参数
RSA加密算法签名
biz_content
业务消息体内容,xml格式,不含换行、空格
签名方式,目前只支持RSA
发起消息的支付宝接口名称
消息编码,默认为GBK,开发者网关需要以该编码进行解码
POST消息体的格式固定,后续将只介绍各类消息的service参数及biz_content参数,对整个消息体不再赘述。
当开发者网关接收到支付宝网关发送的推送消息时,需要向支付宝网关回复一条接收成功消息,告知支付宝网关消息接收成功(注意:请务必对支付宝推送的每条消息都作回复,否则支付宝网关会尝试做重试请求处理)。回复消息格式如下:
&?xml version=&1.0& encoding=&GBK&?&
&response&
&ToUserId&&![CDATA[aYMvrMC8+qdi3Mj1lqxRZJPUsrychFTewHXFVXq5ySDxWgIluiZN3K2r70Eebm4r01]]&&/ToUserId&
&AppId&&![CDATA[5397]]&&/AppId&
&CreateTime&![CDATA[2]]&/CreateTime&
&MsgType&&![CDATA[ack]]&&/MsgType&
&/response&
&sign&djRg8yFRYRJfieP69uFIbJRXivOEwCBZFmfkwiPcoDGgLClm2+loZhRt61OsRICSKHrWFWmb3T5BYguwg0zWuahihEs7Zig270gkCTYVHMj5H0heo0WwQAUxtkBcguyGQSy23bh7Swzrho3l6xysKD3ZxHF1TrULrPTS19KHGvg=&/sign&
&sign_type&RSA&/sign_type&
sign_type固定为RSA,sign是对该消息体的签名,除此之外,response中的各项参数分别表示:
发送消息用户的OpenId
服务窗账号ID
CreateTime
消息发送时间
服务窗平台开放了众多的OpenAPI供开发者主动调用,开发者可以在中申请接口权限。
POST消息体
开发者网关可以向支付宝网关发送POST消息,主动调用支付宝OpenAPI,以下为开发者调用创建菜单API时发送的POST消息:
REQUEST URL: https://openapi.alipay.com/gateway.do
REQUEST METHOD: POST
app_id=7148
method=alipay.mobile.public.menu.add
charset=GBK
sign_type=RSA
timestamp= 03:07:50
biz_content={&button&:[{&actionParam&:&ZFB_HFCZ&,&actionType&:&out&,&name&:&话费充值&},{&name&:&查询&,&subButton&:[{&actionParam&:&ZFB_YECX&,&actionType&:&out&,&name&:&余额查询&},{&actionParam&:&ZFB_LLCX&,&actionType&:&out&,&name&:&流量查询&},{&actionParam&:&ZFB_HFCX&,&actionType&:&out&,&name&:&话费查询&}]},{&actionParam&:&https://m.alipay.com&,&actionType&:&link&,&name&:&最新优惠&}]}
sign=e9zEAe4TTQ4LPLQvETPoLGXTiURcxiAKfMVQ6Hrrsx2hmyIEGvSfAQzbLxHrhyZ48wOJXTsD4FPnt+YGdK57+fP1BCbf9rIVycfjhYCqlFhbTu9pFnZgT55W+xbAFb9y7vL0MyAxwXUXvZtQVqEwW7pURtKilbcBTEW7TAxzgro=
version=1.0
auth_token=publicpB9ea460ff5b5c468c9ccf5e967dc34963 /* 注:只有在使用OAuth 2.0授权的接口上有此参数 */
注:所有请求参数需经过编码处理,本示例给出的是未经编码时的请求参数
开发者服务窗的AppId
支付宝OpenAPI接口名称
消息编码,默认为GBK,开发者网关需要以该编码进行解码
签名方式,目前只支持RSA
发送消息的时间,格式如 03:07:50
biz_content
消息体内容,JSON格式,不含换行、空格
RSA加密算法签名
接口版本号,默认为1.0
auth_token
只有在使用OAuth 2.0授权的接口上有此参数,比如
POST消息体的格式固定,后续将只介绍各类OpenAPI调用的method参数及biz_content参数,对整个消息体不再赘述。
在POST消息体中的sign参数是由开发者使用自己的私钥对参数进行签名产生的,签名的方法:
将所有POST参数(sign除外)进行字典排序,组成字符串,如:
app_id=7148&biz_content={&button&:[{&actionParam&:&ZFB_HFCZ&,&actionType&:&out&,&name&:&话费充值&},{&name&:&查询&,&subButton&:[{&actionParam&:&ZFB_YECX&,&actionType&:&out&,&name&:&余额查询&},{&actionParam&:&ZFB_LLCX&,&actionType&:&out&,&name&:&流量查询&},{&actionParam&:&ZFB_HFCX&,&actionType&:&out&,&name&:&话费查询&}]},{&actionParam&:&https://m.alipay.com&,&actionType&:&link&,&name&:&最新优惠&}]}&charset=GBK&method=alipay.mobile.public.menu.add&sign_type=RSA&timestamp= 03:07:50&version=1.0
使用OpenSSL的加密算法对以上字符串进行签名并进行Base64编码,以下为php代码的签名函数代码片段,供参考:
/* 签名 */
private function sign($data, $rsaPrivateKey) {
/* 获取私钥PEM文件内容,$rsaPrivateKey是指向私钥PEM文件的路径 */
$priKey = file_get_contents($rsaPrivateKey);
/* 从PEM文件中提取私钥 */
$res = openssl_get_privatekey($priKey);
/* 对数据进行签名 */
openssl_sign($data, $sign, $res);
/* 释放资源 */
openssl_free_key($res);
/* 对签名进行Base64编码,变为可读的字符串 */
$sign = base64_encode($sign);
支付宝网关接收到开发者网关消息后,无论成功还是失败,都会回复一条JSON消息。JSON消息有两个属性,第一个属性标明是哪个接口的回复消息。比如调用&alipay.mobile.public.menu.add&,回复的JSON消息的第一个属性名为&alipay_mobile_public_menu_add_response&。
以下为创建菜单成功的一条回复消息:
&alipay_mobile_public_menu_add_response&: {
&code&: 200,
&msg&: &成功&
&sign&: &oi7sKzfEu6Jh/UwlPXc4+/AIugIGPiXZJfVWvvSbLU/Jj2ET5TPQEj2/41z8VQ/0pQppJp4yEITadsOKX5rf92kqO6vVnD1y+k9Eq5qQU2iy2YM1lXfBJRekPlsUy2aaDElbrHXYY8CQwQgOeQgv3WL+MukrFs2+syqnnX7ugjI=&
以下为创建菜单失败的一条回复消息:
&alipay_mobile_public_menu_add_response&: {
&code&: 11013,
&msg&: &菜单已经创建过&
&sign&: &d9ob0/1Fz0mmrG7fSSp61O3OZurTXOv9uljPU84GlgEZ0oZicIbRQNPJElUo6eLU5rJyh8CdYz14Fvn3ouzzh9FZ/ao6TvUpilmBTOi8hRO026ziV2L6HhUkvyIjnXjBFQqsX0yKlrQuv4fLwNt1lwUQwcOzEEr2Smo7/l9mCn8=&
事件订阅与重试机制
开发者可以根据业务需要选择性订阅支付宝网关推送的事件消息,从而简化业务模型,降低服务器负载。我们提供的所有事件消息详见。
日凌晨00:00之前入驻的商户的“进入事件”默认订阅,之后入驻的商户的“进入事件”默认不订阅。
进入,找到“事件订阅与重试机制”;
点击“设置”按钮,在弹出的浮层上选择需要订阅的事件消息,去除不需要订阅的事件消息,点击“确定”即可完成订阅;
订阅完成之后立即生效,支付宝网关不再向开发者网关发送取消订阅的事件消息,比如取消订阅了图片消息,用户在服务窗中发送图片消息时,支付宝网关不再通知开发者网关;
菜单点击事件及接入验证消息为特殊事件,不能取消订阅。
重试机制可以防止因网络抖动等原因造成的事件消息丢失,开启后支付宝将对发送失败的消息重试2次,每次间隔5秒。
日凌晨00:00之前入驻的商户的重试机制默认打开,之后入驻的商户的重试机制默认不打开。
注:对于开启重试机制的开发者,支付宝投递事件消息的XML中会增加MsgId字段,如&![CDATA[20a3ea88b853dee4ea5a]]&,用于标识该消息的Id,重试的消息的MsgId不变,用于商户做消息重排,避免发生因为网络抖动及重试机制而造成的同一逻辑执行多次的问题。未开启重试机制的商户的消息中不含该字段。
进入,找到“事件订阅与重试机制”;
如果尚未开启重试机制,点击“点击开启”按钮会弹出“确定开启重试机制”对话框,点击确定即可开启重试机制;
如果已经开启重试机制,想要关闭,点击“点击关闭”按钮会弹出“确定关闭重试机制”对话框,点击确定即可关闭重试机制;
重试机制设置完毕后立即生效。
菜单点击事件及接入验证消息不作重试。
数据接口与OAuth 2.0授权机制
服务窗涉及用户信息的数据类接口采用标准的OAuth 2.0授权流程:
开发者申请接口权限,比如在商户后台申请的权限
按照规则拼接授权页面的链接
用户访问授权页面,并且授权成功
开发者调用接口,获取用户信息,完成业务流程
获取授权码:引导用户进入授权页面并同意授权,在回跳页面上开发者可获取到auth_code;
换取授权访问令牌:通过auth_code换取网页授权access_token及用户的OpenId;
获取用户信息:使用access_token调用相应接口,获取用户信息。
注1:用户授权成功后180天内无需再次授权,除非用户主动取消关注开发者的服务窗
注2:如果开发者只需要获取用户OpenId,可以参考方案,该方案无需经过用户授权
第一步:URL拼接方案与组合授权
url拼接规则:
使用场景举例:开发者通过URL拼接方案,构造授权页面。支持用户单次对多个接口进行组合授权。
url参数说明:
开发者服务窗的AppId
接口权限值,以英文逗号分隔,支持单次对多个接口进行组合授权的方案,下文有详细说明
redirect_uri
回跳页面,是经过转义的url链接(url必须以http或者https开头),比如:https%3A%2F%2Fexample.com
bool值,true表示在授权页面&确定&按钮下方带上&跳过&按钮,点击后进入回跳页面,但是不带有auth_code,需开发者容错,效果见下图;false表示不显示&确定&按钮下方的&跳过&按钮。auth_skip默认为false
当用户在授权页面点击&确定&按钮后,会跳转至开发者定义的回跳页面,支付宝会在回跳页面请求中加入参数,包括auth_code,app_id,scope等,需要注意的是支付宝仅保证auth_code,app_id以及scope参数的有效性。支付宝请求开发者Web页面示例如下:
https://example.com/doc/toAuthPage.html?app_id=3658&source=alipay_wallet&scope=auth_userinfo&auth_code=ca34ea491efca24c4cD11
scope字段详解
scope字段支持单接口授权及多接口组合授权。目前已经开放的接口及权限值包括:
账户信息共享接口
auth_userinfo
获取用户城市、地址、姓名、手机号、身份证等信息,详见
通讯录信息接口
auth_contact
获取用户的手机通讯录信息,详见
示例一:获取账户信息共享接口权限
https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=7108&auth_skip=false&scope=auth_userinfo&redirect_uri=https%3A%2F%2Fexample.com
示例二:获取通讯录信息接口权限
https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=7108&auth_skip=false&scope=auth_contact&redirect_uri=https%3A%2F%2Fexample.com
示例三:获取账户信息共享接口、通讯录信息接口权限
https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=7108&auth_skip=false&scope=auth_userinfo,auth_contact&redirect_uri=https%3A%2F%2Fexample.com
第二步:使用auth_code换取接口访问令牌及用户OpenId
接口名称:alipay.system.oauth.token
换取授权访问令牌,开发者可通过获取到的auth_code换取access_token和用户OpenId。auth_code作为换取access_token的票据,每次用户授权带上的auth_code将不一样,auth_code只能使用一次,一天未被使用自动过期。access_token的过期时间为5分钟。
业务消息内容
获取授权访问令牌的请求格式与中有所差别,grant_type、code以及refresh_token直接作为POST消息的参数,而不存在于biz_content参数之中,以下为一个请求的示例
REQUEST URL: https://openapi.alipay.com/gateway.do
REQUEST METHOD: POST
app_id=1525
method=alipay.system.oauth.token
charset=GBK
sign_type=RSA
timestamp= 08:08:08
sign=rXaTEfJ7WTDsP1DWRPHARW3uOr19+fzlngMCJBvbhP1XPEa9qZwGGng9oMDloABpJMT2SGeOj46+BUkqCGRO9fH90Vci3hOH01BfYnbhJz3ADK2h7gpjlponx4/sxELN6f2GXi51XKiHKnxMA9XpLLo68q+roY0M/ZFQ1UdnqeM=
version=1.0
grant_type=authorization_code
code=4b203fe6c11548bcabd8da5bb087a83b
refresh_token=3fe6c11548bcabd8da5bb087a83b
grant_type
授权类型,固定为authorization_code
授权码,用户对应用授权后得到,即第一步中开发者获取到auth_code值
refresh_token
可为空,刷新令牌时使用,失效时间300秒,上次换取得到的访问令牌
同步响应结果
&alipay_system_oauth_token_response&: {
&access_token&: &publicpBa869cada57ecf7c&,
&alipay_user_id&: &CogmJcgdBQvCr1jdSWXmMul3JwoaXmLBrbkSty7ivP0SaOemwnUkRdOm5AITm38701&,
&expires_in&: 300,
&re_expires_in&: 300,
&refresh_token&: &publicpB0ff17e364fb0d7f55e20bfc&
&sign&: &xDffQVBBelDiY/FdJi4/a2iQV1I7TgKDFf/9BUCe6+l1UB55YDOdlCAir8CGlTfa0zLYdX0UaYAa43zY2jLhCTDG+d6EjhCBWsNY74yTdiM95kTNsREgAt4PkOkpsbyZVXdLIShxLFAqI49GIv82J3YtzBcVDDdDeqFcUhfasII=&
alipay_system_oauth_token_response
换取授权访问令牌内容
RSA加密算法签名
access_token
交换令牌,用于获取用户信息
alipay_user_id
当前用户的OpenId
expires_in
令牌有效期,交换令牌的有效期,单位秒
re_expires_in
刷新令牌有效期,单位秒
refresh_token
刷新令牌时使用,失效时间300秒,上次换取得到的访问令牌
第三步:调用接口获取信息
成功获取access_token之后,开发者可以调用相应的接口,获取用户的信息。接口调用方法详见及。
特例:网页获取用户OpenId
url拼接规则:
开发者在很多业务场景之下,只需获取用户的OpenId即可完成账号绑定、免登等业务逻辑。开发者使用此方案获取用户OpenId时,无需经过用户授权,也无需申请任何其他的接口权限。
url参数说明:
开发者服务窗的AppId
固定为auth_base
redirect_uri
回跳页面,是经过转义的url链接(url必须以http或者https开头),比如:https%3A%2F%2Fexample.com
固定为false
页面跳转至商户指定的redirect_uri时,商户直接使用auth_code通过方法即可获得用户的OpenId。
开发者接入验证消息
接口名称:alipay.service.check
使用场景举例:开发者开通开发者模式时支付宝网关向开发者网关发送验证消息。
开发者如何回复该消息详见
业务消息内容
支付宝网关发送的POST消息中biz_content的内容示例如下:
&?xml version=&1.0& encoding=&gbk&?&
&AppId&&![CDATA[7148]]&&/AppId&
&FromUserId&&/FromUserId&
&CreateTime&&![CDATA[7]]&&/CreateTime&
&MsgType&&![CDATA[event]]&&/MsgType&
&EventType&&![CDATA[verifygw]]&&/EventType&
&ActionParam&&/ActionParam&
&AgreementId&&/AgreementId&
&AccountNo&&/AccountNo&
服务窗账号ID
FromUserId
CreateTime
消息创建时间
消息类型,事件类消息固定为event
事件类型,固定为verifygw
ActionParam
AgreementId
接口名称:alipay.mobile.public.message.notify
使用场景举例:接收用户操作事件通知,例如关注服务窗、菜单点击等,开发者可以使用功能向用户回复消息,实现诸如查询余额,推送最新优惠消息等业务逻辑
注:如果开发者开启了“重试机制”(日凌晨00:00入驻的商家默认开启),支付宝投递事件消息的XML中会增加MsgId字段,如&![CDATA[20a3ea88b853dee4ea5a]]&,用于标识该消息的Id,重试的消息的MsgId不变,用于商户做消息重排,避免发生因为网络抖动及重试机制而造成的同一逻辑执行多次的问题。未开启重试机制的商户的消息中不含该字段。详见
用户在与服务窗账号交互过程中会产生以下4种事件:
- 用户关注服务窗
取消关注事件 - 用户取消关注服务窗
- 用户进入服务窗页面,包括用户点击和扫码二维码等方式进入服务窗
菜单点击事件
- 用户点击某个菜单项
当开发者网关接收消息成功之后,请回复一条接收成功消息,详见
业务消息内容
关注与取消关注事件
支付宝网关向开发者网关发送的POST消息中biz_content的内容示例如下:
&AppId&&![CDATA[1523]]&&/AppId&
&FromUserId&&![CDATA[R8qtKrh1dS49uWaLZUbPr0re8hjWnYClscK-vjUi4qOHCIhO5aJXi4frP7yHEJoJ01]]&&/FromUserId&
&CreateTime&&![CDATA[7]]&&/CreateTime&
&MsgType&&![CDATA[event]]&&/MsgType&
&EventType&&![CDATA[follow]]&&/EventType&
&ActionParam&&![CDATA[{&scene&:{&sceneId&: &1234&}}]]&&/ActionParam&
&AgreementId&&![CDATA[]]&&/AgreementId&
&AccountNo&&![CDATA[]]&&/AccountNo&
&UserInfo&&![CDATA[{&logon_id&:&135****1009&,&user_name&:&*iuxu527&}]]&&/UserInfo&
服务窗账号ID
FromUserId
用户OpenId
CreateTime
消息创建时间
消息类型,事件类消息固定为event
事件类型。follow:关注事件;unfollow:取消关注事件
ActionParam
用户从特定场景(比如扫描开发者自定义的二维码,或者点击带参短链接)关注服务窗时,值为开发者自定义参数,详见以及
AgreementId
消息Id,用于消息去重,开启了才会有这个字段
支付宝的用户信息,JSON格式,包含加星的用户账号及加星的用户名
UserInfo的一个示例:
&logon_id&: &135**1009&,
&user_name&: &*iuxu527&
开发者可以参考相关Demo(Demo包请)。
注:日凌晨00:00及之后入驻的商家进入事件默认不订阅,开发者可以通过功能订阅该事件。
支付宝网关向开发者网关发送的POST消息中biz_content的内容示例如下:
&AppId&&![CDATA[1523]]&&/AppId&
&FromUserId&&![CDATA[R8qtKrh1dS49uWaLZUbPr0re8hjWnYClscK-vjUi4qOHCIhO5aJXi4frP7yHEJoJ01]]&&/FromUserId&
&CreateTime&&![CDATA[7]]&&/CreateTime&
&MsgType&&![CDATA[event]]&&/MsgType&
&EventType&&![CDATA[enter]]&&/EventType&
&ActionParam&&![CDATA[{&scene&:{&sceneId&: &1234&}}]]&&/ActionParam&
&AgreementId&&![CDATA[]]&&/AgreementId&
&AccountNo&&![CDATA[]]&&/AccountNo&
&UserInfo&&![CDATA[{&logon_id&:&135****1009&,&user_name&:&*iuxu527&}]]&&/UserInfo&
服务窗账号ID
FromUserId
用户OpenId
CreateTime
消息创建时间
消息类型,事件类消息固定为event
事件类型,固定为enter
ActionParam
用户从特定场景(比如扫描开发者自定义的二维码,或者点击带参短链接)进入服务窗时,值为开发者自定义参数,详见以及
AgreementId
消息Id,用于消息去重,开启了才会有这个字段
支付宝的用户信息,JSON格式,包含加星的用户账号及加星的用户名
以下为二维码扫码进入场景enter事件中ActionParam示例,二维码生成方法详见,开发者可以通过匹配sceneId的方法,使用接口发送服务内容:
&scene&: {
&sceneId&: &1234&
开发者可以参考相关Demo(Demo包请)。
菜单点击事件
菜单分为事件型菜单和链接型菜单,详见,用户点击事件型菜单时,支付宝网关向开发者网关发送的POST消息中biz_content的内容示例如下:
&AppId&&![CDATA[1523]]&&/AppId&
&FromUserId&&![CDATA[R8qtKrh1dS49uWaLZUbPr0re8hjWnYClscK-vjUi4qOHCIhO5aJXi4frP7yHEJoJ01]]&&/FromUserId&
&CreateTime&&![CDATA[7]]&&/CreateTime&
&MsgType&&![CDATA[event]]&&/MsgType&
&EventType&&![CDATA[click]]&&/EventType&
&ActionParam&&![CDATA[test_menu_key]]&&/ActionParam&
&AgreementId&&![CDATA[]]&&/AgreementId&
&AccountNo&&![CDATA[]]&&/AccountNo&
&UserInfo&&![CDATA[{&logon_id&:&135****1009&,&user_name&:&*iuxu527&}]]&&/UserInfo&
服务窗账号ID
FromUserId
用户OpenId
CreateTime
消息创建时间
消息类型,事件类消息固定为event
事件类型,固定为click
ActionParam
行为参数,菜单中设置的actionParam值,详见
AgreementId
消息Id,用于消息去重,开启了才会有这个字段
支付宝的用户信息,JSON格式,包含加星的用户账号及加星的用户名
开发者可以参考相关Demo(Demo包请)。
接口名称:alipay.mobile.public.message.notify
使用场景举例:接收用户主动发送的文字消息,开发者可以使用功能向用户回复消息,实现诸如查询余额、推送最新优惠消息、客服等业务逻辑
当开发者网关接收消息成功之后,请回复一条接收成功消息,详见
业务消息内容
支付宝网关发送的POST消息中biz_content的内容示例如下:
&Content&&![CDATA[Hello]]&&/Content&
&AppId&&![CDATA[1523]]&&/AppId&
&MsgType&&![CDATA[text]]&&/MsgType&
&CreateTime&&![CDATA[4]]&&/CreateTime&
&FromUserId&&![CDATA[R8qtKrh1dS49uWaLZUbPr0re8hjWnYClscK-vjUi4qOHCIhO5aJXi4frP7yHEJoJ01]]&&/FromUserId&
&MsgId&&![CDATA[000004]]&&/MsgId&
&UserInfo&&![CDATA[{&logon_id&:&135****1009&,&user_name&:&*iuxu527&}]]&&/UserInfo&
文本消息内容
服务窗账号ID
消息类型,固定为text
CreateTime
消息创建时间
FromUserId
用户OpenId
支付宝的用户信息,JSON格式,包含加星的用户账号及加星的用户名
UserInfo的一个示例:
&logon_id&: &135**1009&,
&user_name&: &*iuxu527&
开发者可以参考相关Demo(Demo包请)。
接口名称:alipay.mobile.public.message.notify
使用场景举例:接收用户主动发送的图片消息,开发者可以使用功能向用户回复消息,实现诸如查询余额、推送最新优惠消息、客服等业务逻辑
当开发者网关接收消息成功之后,请回复一条接收成功消息,详见
业务消息内容
支付宝网关发送的POST消息中biz_content的内容示例如下:
&MediaId&&![CDATA[L21pZnMvVDF4ZlFBWGpGWFhYYUNucHJYP3Q9YW13ZiZ4c2lnPTFiNTNkODhjZmQ5MDkxNWRjOWJlMmZlMjc1NTBjYzk1452]]&&/MediaId&
&Format&&![CDATA[jpg]]&&/Format&
&AppId&&![CDATA[1523]]&&/AppId&
&MsgType&&![CDATA[image]]&&/MsgType&
&CreateTime&&![CDATA[4]]&&/CreateTime&
&FromUserId&&![CDATA[R8qtKrh1dS49uWaLZUbPr0re8hjWnYClscK-vjUi4qOHCIhO5aJXi4frP7yHEJoJ01]]&&/FromUserId&
&MsgId&&![CDATA[000004]]&&/MsgId&
&UserInfo&&![CDATA[{&logon_id&:&135****1009&,&user_name&:&*iuxu527&}]]&&/UserInfo&
图片消息内容
图片媒体ID,如jpg
图片文件格式
服务窗账号ID
消息类型,固定为image
CreateTime
消息创建时间
FromUserId
用户OpenId
支付宝的用户信息,JSON格式,包含加星的用户账号及加星的用户名
UserInfo的一个示例:
&logon_id&: &135**1009&,
&user_name&: &*iuxu527&
使用mediaId下载图片
接口网关地址:
接口名称:alipay.mobile.public.multimedia.download
使用场景举例:开发者可通过本接口来下载用户聊天发送的图片。
注:本接口与中的网关地址不同,消息体及调用方式相同。
业务消息内容
&mediaId&: &L21pZnMvVDFucFVGWGZKYlhYYUNucHJYP3Q9YW13ZiZ4c2lnPTEzYWYwZjE1MmU2OTVhZTRlYjRkNGVhYjhlZGU2MzIw052&
用户聊天发送的图片文件
同步响应结果
如果调用成功,将返回一个Content-Type为图片格式HTTP请求,包含了图片的数据流
开发者可以使用异步单发消息接口、群发消息接口及单发模板消息接口向用户推送消息,点击查看
异步单发消息(客服接口)
接口名称:alipay.mobile.public.message.custom.send
使用场景举例:开发者可以使用该接口实现对用户消息的回复功能,也可以使用该接口实现客服等扩展功能。
注:用户主动与服务窗交互的48小时之内,服务窗可以使用该接口向该用户进行消息推送
该接口可以发送以下3种消息:
图文消息(图片宽高比为2:1,建议尺寸540*270,不符合比例的图片显示时将会被部分切割)
高级商品展示消息[内测中](图片宽高比为1:1.3,建议尺寸430*559,不符合比例的图片显示时将会被部分切割)
业务消息内容
&toUserId&: &m7DZN0VfcHYP6IRA1sP1gBuSX3JjLZtwilbxOzPGDUrbq9FV8CBamV+6ZPDwOg7401&,
&msgType&: &text&,
&createTime&: 1,
&content&: &你好&
消息接收用户的OpenId
消息类型,text
createTime
消息创建时间
文本消息内容
开发者可以参考相关Demo(Demo包请)。
单条图文消息示例:
&toUserId&: &R8qtKrh1dS49uWaLZUbPr0re8hjWnYClscK-vjUi4qOHCIhO5aJXi4frP7yHEJoJ01&,
&msgType&: &image-text&,
&createTime&: 1,
&articles&: [
&actionName&: &立即查看&,
&desc&: &图文内容&,
&imageUrl&: &https: //example.com/abc.jpg&,
&title&: &标题&,
&url&: &https://www.example.com/a.php&
多条图文消息示例:
&toUserId&: &R8qtKrh1dS49uWaLZUbPr0re8hjWnYClscK-vjUi4qOHCIhO5aJXi4frP7yHEJoJ01&,
&msgType&: &image-text&,
&createTime&: 1,
&articles&: [
&actionName&: &立即查看&,
&desc&: &图文内容&,
&imageUrl&: &https: //example.com/abc.jpg&,
&title&: &标题&,
&url&: &https://www.example.com/a.php&
&actionName&: &查看余额&,
&desc&: &图文内容&,
&imageUrl&: &https: //example.com/efg.jpg&,
&title&: &标题2&,
&url&: &https://www.example.com/b.php&
消息接收用户的OpenId
消息类型,image-text
createTime
消息创建时间
图文消息子消息项集合,单条消息最多6个子项,否则会发送失败
其中articles中的子项参数:
图文消息标题
图文消息内容
图片链接,对于多条图文消息的第一条消息,该字段不能为空
点击图文消息跳转的链接
actionName
注:其中title、desc、imageUrl不可同时为空
开发者可以参考相关Demo(Demo包请)。
高级商品展示消息[内测中]
为了满足更多商户在消息展示上的需求,我们将会陆续开放高级商品的展示形式,以下为第一批开放的展示消息。注:当前只支持4个商品作为一组展示数据,将来会作扩展。
&toUserId&: &N-TFftXz+RzJJPZvXx7jZY97w0QKRHRl-OmymTOxsGHnKDWiwQekMHiEi06tEbjg01&,
&msgType&: &image-htable&,
&tableRows&: [
&rowItems&: [
&actionParam&: &https://example.com&,
&actionType&: &link&,
&image&: &https://i.alipayobjects.com/i/ecmng/jpg/IhdlXyYTt.jpg&,
&title&: &图片描述图片描述图片片描述图片&
&actionParam&: &https://example.com&,
&actionType&: &link&,
&image&: &https://i.alipayobjects.com/i/ecmng/jpg/IhdlXyYTt.jpg&,
&title&: &图片描述图片描述图片&
&rowItems&: [
&actionParam&: &https://example.com&,
&actionType&: &link&,
&image&: &https://i.alipayobjects.com/i/ecmng/jpg/IhdlXyYTt.jpg&,
&title&: &图片描述图片描述图片&
&actionParam&: &https://example.com&,
&actionType&: &link&,
&image&: &https://i.alipayobjects.com/i/ecmng/jpg/IhdlXyYTt.jpg&,
&title&: &图片描述图片描述图片&
消息接收用户的OpenId
消息类型,image-htable
消息体的坑位信息,目前只支持2行2列4个坑位的展示,未来会作扩展,单行坑位信息在rowItems中
其中tableRows中的子项参数:
坑位消息标题,最多15个字符,超出会报12039错误
actionType
固定为link
actionParam
以下为示例效果:
同步响应结果
&alipay_mobile_public_message_custom_send_response&: {
&code&: 200,
&msg&: &成功&
&sign&: &N4xgzU4EfPguSbVF64129bFocaAS0UULmGmiYElFnB/qX+CZKCOhZbldrppRJgCtAku44ElEPoQTJR9VVf3HwnQmLb/QPzYP+4T5bb9ComI1kcRtfmmWxM1oEY1lfDI5G6tOAV6Tv5CXKi7c/pPjY5R/U2qLy5b+W8gW1X5g0gk=&
返回码。处理成功:200;处理失败:请参考
支付宝返回的处理结果说明,请参考
接口名称:alipay.mobile.public.message.total.send
使用场景举例:开发者可以通过本接口向所有关注该服务窗用户发送消息。
该接口可以发送以下3种消息:
图文消息(图片宽高比为2:1,建议尺寸540*270,不符合比例的图片显示时将会被部分切割)
高级商品展示消息[内测中](图片宽高比为1:1.3,建议尺寸430*559,不符合比例的图片显示时将会被部分切割)
业务消息内容
&msgType&: &text&,
&content&: &你好&
消息类型,text
文本消息内容
开发者可以参考相关Demo(Demo包请)。
单条图文消息示例:
&msgType&: &image-text&,
&createTime&: 1,
&articles&: [
&actionName&: &立即查看&,
&desc&: &图文内容&,
&imageUrl&: &https: //example.com/abc.jpg&,
&title&: &标题&,
&url&: &https://www.example.com/a.php&
多条图文消息示例:
&msgType&: &image-text&,
&createTime&: 1,
&articles&: [
&actionName&: &立即查看&,
&desc&: &图文内容&,
&imageUrl&: &https: //example.com/abc.jpg&,
&title&: &标题&,
&url&: &https://www.example.com/a.php&
&actionName&: &查看余额&,
&desc&: &图文内容&,
&imageUrl&: &https: //example.com/efg.jpg&,
&title&: &标题2&,
&url&: &https://www.example.com/b.php&
消息类型,image-text
createTime
消息创建时间
图文消息子消息项集合,单条消息最多6个子项,否则会发送失败
其中articles中的子项参数:
图文消息标题
图文消息内容
图片链接,对于多条图文消息的第一条消息,该字段不能为空
点击图文消息跳转的链接
actionName
注:其中title、desc、imageUrl不可同时为空
开发者可以参考相关Demo(Demo包请)。
高级商品展示消息[内测中]
为了满足更多商户在消息展示上的需求,我们将会陆续开放高级商品的展示形式,以下为第一批开放的展示消息。注:当前只支持4个商品作为一组展示数据,将来会作扩展。
&toUserId&: &N-TFftXz+RzJJPZvXx7jZY97w0QKRHRl-OmymTOxsGHnKDWiwQekMHiEi06tEbjg01&,
&msgType&: &image-htable&,
&tableRows&: [
&rowItems&: [
&actionParam&: &https://example.com&,
&actionType&: &link&,
&image&: &https://i.alipayobjects.com/i/ecmng/jpg/IhdlXyYTt.jpg&,
&title&: &图片描述图片描述图片片描述图片&
&actionParam&: &https://example.com&,
&actionType&: &link&,
&image&: &https://i.alipayobjects.com/i/ecmng/jpg/IhdlXyYTt.jpg&,
&title&: &图片描述图片描述图片&
&rowItems&: [
&actionParam&: &https://example.com&,
&actionType&: &link&,
&image&: &https://i.alipayobjects.com/i/ecmng/jpg/IhdlXyYTt.jpg&,
&title&: &图片描述图片描述图片&
&actionParam&: &https://example.com&,
&actionType&: &link&,
&image&: &https://i.alipayobjects.com/i/ecmng/jpg/IhdlXyYTt.jpg&,
&title&: &图片描述图片描述图片&
消息接收用户的OpenId
消息类型,image-htable
消息体的坑位信息,目前只支持2行2列4个坑位的展示,未来会作扩展,单行坑位信息在rowItems中
其中tableRows中的子项参数:
坑位消息标题,最多15个字符,超出会报12039错误
actionType
固定为link
actionParam
以下为示例效果:
同步响应结果
&alipay_mobile_public_message_total_send_response&: {
&code&: 200,
&msg&: &成功&,
&data&: &55540edce750-b2d5-4d29-8cd1-0b423bf8df75&
&sign&: &Qour4B3uTa7XjFpzWxMtU0nzOF7UGBnXfVa5NcgN2eVAlkIJsKdgUpEtshGXVQ+CXE0JH4gZX/COLzlYEI5RdmPG3ez4K7cOGTr8zYt7YhvpBX5A+jWPJbjd/6LMdRL55oMDaealZQF/Rb8CpFlPHwyvyRGAoSm1M9UWzlsKTmA=&
返回码。处理成功:200;处理失败:请参考
支付宝返回的处理结果说明,请参考
单发模板消息
接口名称:alipay.mobile.public.message.single.send
使用场景举例:模板消息是指如银行动帐提醒、航空公司值机提醒等对消费者非常有价值的消息类型,模板消息符合特定的格式,无需用户发生交互就可以主动向用户推送。我们的模板消息申请后台正在开发中,如果开发者现在就有此类需求,请找对应的商务合作经理申请。
申请邮件格式
以下为一个申请示例,效果详见
服务窗名称:航旅纵横
模板标题:值机提醒
模板内容(支持换行):
{{first.value}}
航班日期:{{keyword1.value}}
起降时间:{{keyword2.value}}
航班行程:{{keyword3.value}}
航班号:{{keyword4.value}}
{{remark.value}}
内容示例:
尊敬的熊先生:
航班日期:
起降时间:21:45起飞/00:15降落
航班行程:成都双流T2到北京首都T1
航班号:HU7142
现在可以通过航旅纵横服务窗值机功能提前选座,还可以为好友办理值机哦~预祝您旅途愉快!
业务消息内容
&toUserId&:&m7DZN0VfcHYP6IRA1sP1gBuSX3JjLZtwilbxOzPGDUrbq9FV8CBamV+6ZPDwOg7401&,
&template&:{
&templateId&:&cbb9fdded2b74fe4bb082de3ed1e1eb2&,
&context&:{
&headColor&:&#85be53&,
&url&:&https://m.baidu.com&,
&actionName&:&查看详情&,
&keyword1&:{
&color&:&#000000&,
&value&:&&
&keyword2&:{
&color&:&#85be53&,
&value&:&HU7142&
消息接收用户的openId
消息模板相关参数,其中包括templateId模板ID和context模板上下文
其中template中的各项参数分别为:
templateId
消息模板ID
消息模板上下文,即模板中定义的参数及参数值
其中context中的各项参数分别为:
顶部色条的色值
点击消息后承接页的地址
actionName
底部链接描述文字,如“查看详情”
模板中占位符的值及文字颜色,value和color都为必填项,color为当前文字颜色
模板中占位符的值及文字颜色,value和color都为必填项,color为当前文字颜色
同步响应消息业务内容
&alipay_mobile_public_message_single_send_response&:{
&code&:200,
&msg&:&成功&
&sign&:&N4xgzU4EfPguSbVF64129bFocaAS0UULmGmiYElFnB/qX+CZKCOhZbldrppRJgCtAku44ElEPoQTJR9VVf3HwnQmLb/QPzYP+4T5bb9ComI1kcRtfmmWxM1oEY1lfDI5G6tOAV6Tv5CXKi7c/pPjY5R/U2qLy5b+W8gW1X5g0gk=&
同步响应参数说明:
返回码。处理成功:200;处理失败:请参考。
支付宝返回的处理结果说明,请参考。
上图的模板消息商户占位符格式如下:
{{first.value}}
航班日期:{{keyword1.value}}
起降时间:{{keyword2.value}}
航班行程:{{keyword3.value}}
航班号:{{keyword4.value}}
{{remark.value}}
商户调用时候入参JSON如下:
&template&:{
&context&:{
&keyword1&:{
&color&:&#000000&,
&value&:&&
&keyword4&:{
&color&:&#85be53&,
&value&:&HU7142&
&keyword3&:{
&color&:&#000000&,
&value&:&成都双流T2到北京首都T1&
&keyword2&:{
&color&:&#000000&,
&value&:&21:45起飞/00:15降落&
&remark&:{
&color&:&#85be53&,
&value&:&现在可以通过航旅纵横服务窗值机功能提前选座,还可以为好友办理值机哦~预祝您旅途愉快!&
&headColor&:&#85be53&,
&url&:&https://m.baidu.com&,
&actionName&:&查看详情&,
&color&:&#000000&,
&value&:&尊敬的熊先生:&
&templateId&:&cbb9fdded2b74fe4bb082de3ed1e1eb2&
&toUserId&:&m7DZN0VfcHYP6IRA1sP1gBuSX3JjLZtwilbxOzPGDUrbq9FV8CBamV+6ZPDwOg7401&
用户标签及标签组发消息接口组
该接口组由标签的增删改查接口、用户标签的增删改查接口、标签组发接口一起组成。标签组发接口支持商户自定义的标签,同时还支持部分进行人群筛选。
使用场景举例:开发者可以使用此类接口完成对用户的分组及分组发送消息等功能,实现精准营销。比如,商户可以在线下各个门店投放二维码(使用接口生成),当用户扫描a门店二维码关注服务窗时,商户将用户贴上a门店标签(通过中的ActionParam参数进行匹配),后续a门店有营销活动,开发者可以通过标签组发接口向拥有a标签的这群用户推送营销消息。
注:目前该接口组处于内部测试阶段,开发者需要发邮件给 fuwudev@list.alibaba-inc.com 申请接口权限,邮件格式:
邮件标题:【接口权限申请】用户标签及标签组发消息接口组
公司名称:请填写公司名称
公司规模:请填写公司总共有多少工作人员
服务窗名称:请填写服务窗的名称
服务窗AppId:请填写服务窗的AppId
使用场景:请详细填写接口的使用场景
申请者姓名:请填写申请人的姓名
申请者手机:请填写申请人的手机联系方式
标签增删改查
创建标签接口
接口名称:alipay.mobile.public.label.add
使用场景举例:开发者可以使用该接口创建一个标签,一个服务窗最多同时拥有500个标签,标签名不能重复。
业务消息内容
&name& : &测试标签01&
同步响应消息业务内容
&alipay_mobile_public_label_add_response&: {
&code&: 200,
&id&: 100513,
&msg&: &添加标签成功&,
&name&: &测试标签01&
&sign&: &FlbiiEs8vEm7daiR7Jzm6UfECYQ/5SLjdjTBurcP5h8Y6RPjcKHkIsgwh8YaHHS8FXv52Cxn4RA4Q+2plHjoUTtle8MGSfnzDwhD9xWhTMMR+T5ldH39BnOr9iBQPKjIFq9O4Wi0nXa6tQXchEwb6dEB5/UYdidkA8b5fAUvHtc=&
同步响应参数说明:
返回码。处理成功:200;处理失败:请参考。
支付宝返回的处理结果说明,请参考。
支付宝返回的标签ID,开发者后续通过该ID进行标签的查询、修改、删除等操作
开发者入参name的值
RSA加密算法签名
查询标签接口
接口名称:alipay.mobile.public.label.query
使用场景举例:开发者可以查询该服务窗所有标签值及拥有该标签的用户个数
业务消息内容
// 业务参数为空
同步响应消息业务内容
&alipay_mobile_public_label_query_response&: {
&code&: 200,
&labels&: &[{\&count\&:3,\&id\&:100509,\&name\&:\&bqtest2\&},{\&count\&:3,\&id\&:100510,\&name\&:\&bqtest3\&},{\&count\&:3,\&id\&:100511,\&name\&:\&bqtest4\&},{\&count\&:3,\&id\&:100512,\&name\&:\&bqtest5\&},{\&count\&:0,\&id\&:100513,\&name\&:\&测试标签01\&}]&,
&msg&: &成功&
&sign&: &eNarwqhe8tOl2jIO99cLEiV4WQVJL5n8xUntkh6SOjo9i0LKo0TraJDMP15R2BVeaEuxBq5bKMYH0CfrG65XnGAGF2eMApdqB9rgF9BdLBohr3Xmhl3//PqRQmyBfv/Fig7WGGclw+i7AmcupJLp1/4kwAhbKIQZ4tMGMZGH+a4=&
同步响应参数说明:
返回码。处理成功:200;处理失败:请参考。
支付宝返回的处理结果说明,请参考。
标签信息,数据类型为JSON类型字符串,需要再次解析
RSA加密算法签名
labels解析为JSON后的格式如下:
&count&: 3,
&id&: 100509,
&name&: &bqtest2&
&count&: 3,
&id&: 100510,
&name&: &bqtest3&
&count&: 3,
&id&: 100511,
&name&: &bqtest4&
&count&: 3,
&id&: 100512,
&name&: &bqtest5&
&count&: 0,
&id&: 100513,
&name&: &测试标签01&
拥有该标签的用户数
接口名称:alipay.mobile.public.label.update
使用场景举例:开发者可以使用该接口修改某个标签的名字
&id& : &100513&,
&name& : &修改后的标签01&
修改后的标签名
&alipay_mobile_public_label_update_response&: {
&code&: 200,
&id&: 100513,
&msg&: &修改标签名成功&
&sign&: &TPCtYhoZzyK1NYG7gbX9rLsAYBjLOJDJbGvhjE8TBskxd6kCbiOscz4cZ2l3EZ84n0h7U8M3Biw7q4lNzADBx7U1U/knsYFpBg4T8U8dHkUAX4LqChdFYTzVpVnCnvd4mpkpzdk7sq872yxJdaBZvINHYEH10jGuno0io9v+n9U=&
同步响应参数说明:
返回码。处理成功:200;处理失败:请参考。
支付宝返回的处理结果说明,请参考。
RSA加密算法签名
删除标签接口
接口名称:alipay.mobile.public.label.delete
使用场景举例:开发者可以通过该接口删除某个标签,删除标签时,会将所有拥有该标签的用户的对应标签Id一并删除,请谨慎使用该接口
业务消息内容
&id& : &100513&
同步响应消息业务内容
&alipay_mobile_public_label_delete_response&: {
&code&: 200,
&id&: 100513,
&msg&: &删除标签成功&
&sign&: &USGQ2DsraeyiLpEBYQaKW+EAC21Iw1kPaUGfJdJS8qWbCyx8bk3g2+WIdErwBMlZiFjNGtDK3/ItRICIZLaxlH51Qk6MNz2ooUnNewNJP5FD2/JrBh+7i6z4v12AjnQ1QfXZ0XuqFEszj+h0AtrvviJQAFSuPZPEueV7RzM1Bj8=&
同步响应参数说明:
返回码。处理成功:200;处理失败:请参考。
支付宝返回的处理结果说明,请参考。
RSA加密算法签名
用户标签增删查接口
用户增加标签接口
接口名称:alipay.mobile.public.label.user.add
使用场景举例:创建标签完毕后,开发者可以给使用该接口给用户贴标签
业务消息内容
&userId& : &N-TFftXz+RzJJPZvXx7jZY97w0QKRHRl-OmymTOxsGHnKDWiwQekMHiEi06tEbjg01&,
&labelId& : &100511&
用户的OpenId
同步响应消息业务内容
&alipay_mobile_public_label_user_add_response&: {
&code&: 200,
&msg&: &成功&
&sign&: &Mbt/a/K5iUja2aUSrpyeApESwtoEMGa58vxEVXuv/XRhNRm7+Mq/Ql9fMHooaEm1p/ux4LEBFzSRjlqd8f300kNPPIb6rGvz6rbran0yS9744aPHqfV4VJXbTtzqqRp6B8SBc8jG+HfOUurDGOwVpzeBZND61YXl831YUofkBMA=&
同步响应参数说明:
返回码。处理成功:200;处理失败:请参考。
支付宝返回的处理结果说明,请参考。
RSA加密算法签名
查询用户标签接口
接口名称:alipay.mobile.public.label.user.query
使用场景举例:开发者可以使用该接口查询某个用户的所有标签
业务消息内容
&userId& : &N-TFftXz+RzJJPZvXx7jZY97w0QKRHRl-OmymTOxsGHnKDWiwQekMHiEi06tEbjg01&
用户的OpenId
同步响应消息业务内容
&alipay_mobile_public_label_user_query_response&: {
&code&: 200,
&label_ids&: &510,512&,
&msg&: &成功&
&sign&: &LahI3JNYyak8jqnSyWOWznl9qtOTGD9/t4q2n+Tu8Fo4IKzwcQw/j/4KWqVG4ilZn3FeX5oAt7mA930erONOiKgEMbe+99VuLTV108bVHpO72vSdK5S8dUb1ggpVRE/gGFXeEN1aOWqyADbd1mjrPGgEL/8oW8oNorjGLSh3SXc=&
同步响应参数说明:
返回码。处理成功:200;处理失败:请参考。
支付宝返回的处理结果说明,请参考。
用户标签id列表,以英文逗号分隔
RSA加密算法签名
删除用户标签接口
接口名称:alipay.mobile.public.label.user.delete
使用场景举例:开发者可以使用该接口删除用户的某个标签
业务消息内容
&userId& : &N-TFftXz+RzJJPZvXx7jZY97w0QKRHRl-OmymTOxsGHnKDWiwQekMHiEi06tEbjg01&,
&labelId& : &100511&
用户的OpenId
同步响应消息业务内容
&alipay_mobile_public_label_user_delete_response&: {
&code&: 200,
&msg&: &成功&
&sign&: &Mbt/a/K5iUja2aUSrpyeApESwtoEMGa58vxEVXuv/XRhNRm7+Mq/Ql9fMHooaEm1p/ux4LEBFzSRjlqd8f300kNPPIb6rGvz6rbran0yS9744aPHqfV4VJXbTtzqqRp6B8SBc8jG+HfOUurDGOwVpzeBZND61YXl831YUofkBMA=&
同步响应参数说明:
返回码。处理成功:200;处理失败:请参考。
支付宝返回的处理结果说明,请参考。
RSA加密算法签名
根据标签组发接口
接口名称:alipay.mobile.public.message.label.send
使用场景举例:开发者可以通过标签运算圈定一批用户,并且向这批用户推送消息。关于标签组发有以下注意点:
除了商户自定义标签,还支持支付宝用户标签,我们将陆续开放用户画像标签,目前支持的支付宝标签及说明请查看,使用方法参考
用户及标签数据有1天的缓存时间,即昨天开发者给M用户打了a标签,今天给有a标签的用户组发消息,M能够收到消息;但是如果开发者今天给M用户打了a标签,然后向有a标签的用户组发消息,M不能收到消息;
与群发消息接口类似,该接口调用之后,消息发送系统会处理一段时间,调用接口到发送成功存在一定的时延,几分钟到半个小时不等
对于同一个用户而言,一周只能收到一条或者标签组发的消息
消息组发接口一周最多调用50次
业务消息内容
&material&: {
&msgType&: &image-text&,
&creatTime&: &&,
&articles&: [
&title&: &欢迎光临&,
&actionName&: &点击查看详情&,
&imageUrl&: &https://i.alipayobjects.com/i/ecmng/jpg/ts2vA3Z1T.jpg&,
&desc&: &小二在此恭候多时:)这里有您想要的各种美味,请您慢慢享用~~&,
&url&: &https://example.com&
&filter&: {
&template&: &${a}&,
&context&: {
&columnName&: &label_id_list&,
&op&: &=&,
&values&: [
发送消息内容,可以参考,支持文本消息和图文消息,此处不作赘述
根据标签圈人的过滤器
filter对象中的参数详解:
过滤器模板,${a}是一个变量,会被context参数中的a参数替换,从而展开为最终的表达式,template最多支持两个参数,支持and及or连接符——and:同时满足条件;or:只需满足其中一个条件
用于替换模板中变量的上下文
columnName
标签组名,商户自定义的标签固定为label_id_list,支付宝开放的标签详见
操作符,支持=,!=以及in三个操作符;其中in表示是某几个标签中的一个
标签数组,用于组装最后的表达式
本接口较为复杂,我们提供了详细的,开发者可以依据示例进行实际开发工作
同步响应消息业务内容
&alipay_mobile_public_message_label_send_response&: {
&code&: 200,
&msg&: &成功&,
&msg_id&: &f6-5fb5-4daa-af4b-202e517fb5f0&
&sign&: &MxBIIejVr/gucViJvuGJpWtr/FcniMS+uAJBNqXRFmHY+hZFFX3ZZgNS/OQDUMew3cPk/vromnMDyFIb5iBPFfxRFL2fCIfYFykFfQcruvV1tKkNGcY7h6ZHaySnkHd94B9XtFkh132Yj1vMcU/BozhT18+RqcbpIcR0OaoEk+s=&
同步响应参数说明:
返回码。处理成功:200;处理失败:请参考。
支付宝返回的处理结果说明,请参考。
RSA加密算法签名
用户管理与数据开放
获取关注者列表
接口名称:alipay.mobile.public.follow.list
使用场景举例:开发者可通过本接口来获取帐号的关注者列表。
关注者列表由一串用户OpenId组成。一次最多获取10000个关注者的OpenId,可以通过多次获取的方式来满足需求。
业务消息内容
&nextUserId&: &aYMvrMC8+qdi3Mj1lqxRZJPUsrychFTewHXFVXq5ySDxWgIluiZN3K2r70Eebm4r01&
nextUserId
当关注者数量超过10000时使用,本次拉取数据中第一个用户的OpenId,从上次接口调用返回值中获取,第一次调用置空
同步响应结果
&alipay_mobile_public_follow_list_response&: {
&code&: 200,
&count&: &2&,
&user_id_list&: {
&string&: [
&ccQyL+73MAMTDkj2mRxLNkre8hjWnYClscK-vjUi4qOHCIhO5aJXi4frP7yHEJoJ01&,
&R8qtKrh1dS49uWaLZUbPr0re8hjWnYClscK-vjUi4qOHCIhO5aJXi4frP7yHEJoJ01&
&sign&: &b6AJP+rJLO0qExHKgYgHMsTwyRI5GhAUKmhuVAl+EmYW8Lic8kB9rgRpek0LeT3goHvEkimXv/BkUOYaVhIA7rrD8vQcNJDL7Vbgj3W3LToyB/biYWK8r1iHfYJNnOdstvq6FcU7xOOTSZHqFg45IHSc0vqXK9cqBeSgh2eJnoI=&
RSA加密签名
返回码。处理成功:200;处理失败:请参考
本次调用获取的OpenId个数,最大值为10000
用户数据,包含OpenId列表
获取用户地理位置
接口名称:alipay.mobile.public.gis.get
使用场景举例:查询该用户当前的位置信息,可以根据用户位置完成不同的业务逻辑。
业务消息内容
&userId&:&m7DZN0VfcHYP6IRA1sP1gBuSX3JjLZtwilbxOzPGDUrbq9FV8CBamV+6ZPDwOg7401&
该用户的OpenId
同步响应结果
&alipay_mobile_public_gis_get_response&: {
&accuracy&: &68.0&,
&city&: &杭州市&,
&code&: 200,
&latitude&: &30.27283&,
&longitude&: &120.12555&,
&msg&: &成功&,
&province&: &浙江省&
&sign&: &jfAz0Yi0OUvAPqYTzA0DLysx0ri++yf7o/lkHOHaG1Zy2fHBf3j4WM+sJWHZUuyInt6V+wn+6IP9AmwRTKi+GGdWjPrsfBjXqR7H5aBnLhMsAltV7v4cYjhuguAqh4WkaJO6v6CfdybDpzHlxE6Thoucnad+OsjdCXkNd1g3UuU=&
返回码。处理成功:200;处理失败:请参考
支付宝返回的处理结果说明,请参考
省份,经纬度转换城市信息失败的情况会为空
城市,经纬度转换城市信息失败的情况会为空
账户信息共享接口
接口名称:alipay.user.userinfo.share
使用场景举例:开发者可以使用该方案获取用户的OpenId、姓名、身份证、手机号等个人信息,开发者需要需要申请账户信息共享接口权限,详见。
注1:账户信息共享接口采用标准的OAuth 2.0授权流程,请务必先阅读。
注2:如果开发者获取了用户的手机号、身份证等敏感信息,在网页呈渲染时必须经过脱敏处理,一旦发现未经脱敏直接展示在页面上的,我们将直接关闭该接口所有权限,脱敏方案请遵循
注3:如果开发者只需要获取用户的OpenId,无需获取其他信息,请参考方案,该方案无需经过用户授权
获取用户信息接口的POST消息格式与其他API参数略有不同,不含biz_content参数,多出了auth_token参数,格式如下:
REQUEST URL: https://openapi.alipay.com/gateway.do
REQUEST METHOD: POST
method=alipay.user.userinfo.share
timestamp= 20:30:30
app_id=1523
auth_token=publicpB9ea460ff5b5c468c9ccf5e967dc34963
charset=GBK
version=1.0
sign_type=RSA
sign=R48FPxFxDSzred4JQ+sLsjzzNen5eZVjVcOgepxBgNFwhIxn0XrqDR53Di6fv1nLMIGEDm0VyGq516J8sVj4rlUSLehHy+oN7s7m07dYk+6xHpoIz4A1+N2tlCmtiHslWGxF6KMEYVjZLHo/y7tEwHQJ6r4H1svT3CJJ2HJpK1o=
服务窗账号 ID,服务窗账号唯一标识
接口名称:alipay.user.userinfo.share
发送请求的时间戳
签名方式,目前只支持RSA
RSA加密算法签名
auth_token
交换令牌,即通过换取授权访问令牌接口获取到的access_token参数值
开发者可以参考相关Demo(Demo包请)。
当开发者发送获取用户基本信息请求后,支付宝会同步响应,参见如下示例:
注:响应结果中的字段与开发者开通该接口时申请的权限有关,申请地址详见
&alipay_user_userinfo_share_response&: {
&user_type_value&: &2&,
&is_licence_auth&: &F&,
&is_certified&: &T&,
&is_bank_auth&: &T&,
&is_mobile_auth&: &F&,
&user_id&: &ccQyL+73MAMTDkj2mRxLNkre8hjWnYClscK-vjUi4qOHCIhO5aJXi4frP7yHEJoJ01&,
&user_status&: &T&,
&is_id_auth&: &T&
&sign&: &P4iuFMEGKhQ6L+3Ako0Dpqc4QBksPiz/wbjGPaUIP0VTH8VEIViBbHWBT1VWxCqbvjugwbhoWrzfVcZXQC7McQKqCOC5b5O2yblpVuyLq2dIiqcMEZGammVHXeP1v4+kL4BX3/CTAPBTeSk+/zepipw0FeGMqpUPdoSPFl6ohUI=&
用户的userId
user_type_value
用户类型(1/2) 1代表公司账户; 2代表个人账户
user_status
用户状态(Q/T/B/W)。 Q代表快速注册用户;T代表已认证用户;B代表被冻结账户;W代表已注册,未激活的账户
公司名称(用户类型是公司类型时公司名称才有此字段)。
用户的真实姓名。
性别(F:女性;M:男性)
电话号码。
手机号码。
is_certified
是否通过实名认证。T是通过 F是没有实名认证
is_student_certified
是否是学生。T表示是学生,F表示不是学生
is_bank_auth
T为是银行卡认证,F为非银行卡认证。
is_id_auth
T为是身份证认证,F为非身份证认证。
is_mobile_auth
T为是手机认证,F为非手机认证。
is_licence_auth
T为通过营业执照认证,F为没有通过
cert_type_value
0:身份证;1:护照;2:军官证;3:士兵证;4:回乡证;5:临时身份证;6:户口簿;7:警官证;8:台胞证;9:营业执照;10其它证件
省份名称。
区县名称。
详细地址。
邮政编码。
address_code
区域编码,暂时不返回值
通讯录信息接口
接口名称:alipay.mobile.public.contact.follow.list
使用场景举例:开发者可以通过该接口获取用户手机通讯录中同时关注开发者服务窗的好友的信息。
注1:通讯录信息接口采用标准的OAuth 2.0授权流程,请务必先阅读。
注2:目前通讯录信息接口处于内部测试阶段,开发者需要发邮件给 fuwudev@list.alibaba-inc.com 申请接口权限,邮件格式:
邮件标题:【接口权限申请】通讯录信息接口
公司名称:请填写公司名称
公司规模:请填写公司总共有多少工作人员
服务窗名称:请填写服务窗的名称
服务窗AppId:请填写服务窗的AppId
使用场景:请详细填写接口的使用场景
申请者姓名:请填写申请人的姓名
申请者手机:请填写申请人的手机联系方式
发送获取用户通讯录信息请求
获取用户信息接口的POST消息格式与其他API参数略有不同,不含biz_content参数,多出了auth_token参数,格式如下:
REQUEST URL: https://openapi.alipay.com/gateway.do
REQUEST METHOD: POST
method=alipay.mobile.public.contact.follow.list
timestamp= 20:30:30
app_id=1523
auth_token=publicpB9ea460ff5b5c468c9ccf5e967dc34963
charset=GBK
version=1.0
sign_type=RSA
sign=R48FPxFxDSzred4JQ+sLsjzzNen5eZVjVcOgepxBgNFwhIxn0XrqDR53Di6fv1nLMIGEDm0VyGq516J8sVj4rlUSLehHy+oN7s7m07dYk+6xHpoIz4A1+N2tlCmtiHslWGxF6KMEYVjZLHo/y7tEwHQJ6r4H1svT3CJJ2HJpK1o=
服务窗账号ID,服务窗账号唯一标识
接口名称:alipay.mobile.public.contact.follow.list
发送请求的时间戳
签名方式,目前只支持RSA
RSA加密算法签名
auth_token
交换令牌,即通过换取授权访问令牌接口获取到的access_token参数值
同步响应结果
&alipay_mobile_public_contact_follow_list_response&: {
&code&: 200,
&msg&: &成功&,
&contact_follow_list&: &[{\&avatar\&:\&https://tfsimg.alipay.com/images/partner/T1yf8dXcllXXXXXXXX\&,\&contactName\&:\&手机联系人姓名\&,\&defaultAvatar\&:false,\&eachRecordFlag\&:true,\&userId\&:\&-RwBr5IW9zBWzE7X+fRrUY97w0QKRHRl-OmymTOxsGHnKDWiwQekMHiEi06tEbjg01\&},{\&avatar\&:\&https://tfsimg.alipay.com/images/partner/T1MC0aXlRrXXXXXXXX\&,\&contactName\&:\&手机联系人姓名\&,\&defaultAvatar\&:false,\&eachRecordFlag\&:true,\&userId\&:\&qLxjqikSQ0Wy+mdAeQOpM497w0QKRHRl-OmymTOxsGHnKDWiwQekMHiEi06tEbjg01\&}]&
&sign&: &N4xgzU4EfPguSbVF64129bFocaAS0UULmGmiYElFnB/qX+CZKCOhZbldrppRJgCtAku44ElEPoQTJR9VVf3HwnQmLb/QPzYP+4T5bb9ComI1kcRtfmmWxM1oEY1lfDI5G6tOAV6Tv5CXKi7c/pPjY5R/U2qLy5b+W8gW1X5g0gk=&
同步响应参数说明:
返回码。处理成功:200;处理失败:请参考。
支付宝返回的处理结果说明,请参考。
contact_follow_list
同时也关注该服务窗的通讯录好友列表,数据类型为JSON类型字符串,需要再次解析
contact_follow_list解析为JSON后的格式如下:
&avatar&: &https://tfsimg.alipay.com/images/partner/T1yf8dXcllXXXXXXXX&,
&contactName&: &联系人A&,
&defaultAvatar&: false,
&eachRecordFlag&: true,
&userId&: &-RwBr5IW9zBWzE7X+fRrUY97w0QKRHRl-OmymTOxsGHnKDWiwQekMHiEi06tEbjg01&
&avatar&: &https://tfsimg.alipay.com/images/partner/T1MC0aXlRrXXXXXXXX&,
&contactName&: &联系人B&,
&defaultAvatar&: false,
&eachRecordFlag&: true,
&userId&: &qLxjqikSQ0Wy+mdAeQOpM497w0QKRHRl-OmymTOxsGHnKDWiwQekMHiEi06tEbjg01&
手机联系人用户头像,非标准化尺寸,与用户上传的实际图片有关
contactName
手机联系人姓名,与在用户手机上存储的名字一致
defaultAvatar
是否为默认头像,true表示该用户未上传过头像,我们返回的是默认头像
eachRecordFlag
与当前用户是否为双向好友关系,true表示确定为双向好友关系,即双方都上传了通讯录,并且在支付宝服务器上能够匹配,false表示不确定是否为双向好友关系
手机联系人的OpenId
获取用户收货地址(JSAPI)
接口名称:selectAddress(JSAPI),仅支持支付宝钱包8.3及以上版本
使用场景举例:商户在网页上调用该接口,将弹出支付宝钱包收货地址组件,用户选择后页面将收到回调。Demo详见。
&!--必须首先引入该js库--&
&script src=&https://publicexprod.alipay.com/deliveraddress/selectAddress.js&&&/script&
&button id=&selectAddress& type='button' class=&am-button am-button-blue&&
点击选择用户收货地址
document.getElementById('selectAddress').addEventListener('click', function () {
// 调用am.selectAddress接口并传入回调函数
am.selectAddress(function (data) {
alert(JSON.stringify(data));
}, false);
其中返回值data的JSON格式如下:
&address&: &古荡街道万塘路18号黄龙时代广场B座&,
&addressCode&: &330106&,
&addressId&: &&,
&area&: &西湖区&,
&city&: &杭州市&,
&fullname&: &张三&,
&mobilePhone&: &&,
&post&: &310012&,
&prov&: &浙江省&
自定义菜单
菜单创建后,在支付宝钱包客户端是实时生效的
删除原有菜单后,建议开发者至少保留该删除菜单的服务七天以上
最多设置4个一级菜单,每个一级菜单最多设置5个二级菜单,当设置4个一级菜单时,左侧的发送消息按钮将被隐藏
一级菜单最多显示4个汉字,二级菜单最多显示12个汉字
菜单总共分为以下两种类型:
事件型菜单 - 用户点击之后支付宝网关向开发者网关发送,开发者可以通过自定义参数匹配的方式实现业务逻辑
链接型菜单 - 用户点击之后跳转到一个Web页面或者唤起一个本地服务(例如拨通电话),不向开发者网关发送消息
服务窗平台提供三个接口,分别用于:
接口名称:alipay.mobile.public.menu.add
使用场景举例:开发者通过调用该接口创建菜单。
菜单只能被创建一次,后续的修改全部由更新菜单接口完成
业务消息内容
&button&: [
&actionParam&: &ZFB_HFCZ&,
&actionType&: &out&,
&name&: &话费充值&
&name&: &查询&,
&subButton&: [
&actionParam&: &ZFB_YECX&,
&actionType&: &out&,
&name&: &余额查询&
&actionParam&: &95188&,
&actionType&: &tel&,
&name&: &联系我们&
&actionParam&: &https://example.com/a.php&,
&actionType&: &link&,
&name&: &话费查询&
&actionParam&: &https://example.com/b.php&,
&actionType&: &link&,
&name&: &帐号绑定&
一级菜单数组,个数应为1~4个
二级菜单数组,个数应为1~5个
菜单标题,一级菜单不超过4个汉字,子菜单不超过12个汉字
actionType
菜单类型,out:事件型菜单;link:链接型菜单;tel:点击拨打电话
actionParam
当actionType为link时,该参数为详细链接;当actionType为out时,该参数为用户自定义参数;当actionType为tel时,该参数为电话号码。该参数最长255个字符,不允许冒号等特殊字符
同步响应结果
操作成功时的响应结果
&alipay_mobile_public_menu_add_response&: {
&code&: 200,
&msg&: &成功&
&sign&: &gi771WtMTPpLY68/jCibUyHZ1S6wbVFzD+E2ggH2TkwrJAl6tP2a/TyJIgxWrwnoYQfT6MEY3FwzC5x1jAhvb4l31fDKXfhi9iqfs87y4WT27rXRvvszXt5ILOkFLZ7NbZ1lZcZzPvL4fUf5qZLfsGlhzfkMUlThiMD8T+6VqVw=&
返回码。处理成功:200;处理失败:请参考
支付宝返回的处理结果说明,请参考
RSA加密算法签名
操作失败时的响应结果示例
&alipay_mobile_public_menu_add_response&: {
&code&: 11013,
&msg&: &菜单已经创建过&
&sign&: &SFIJp0ZUTrjymCGTfLnfsGBh8objZgCEF1HsDvofpCjCZmTAnuuz/x8rRKiEEtnfipp0XHGpGRykMEzCvaJ6jt+FkAFiU0WCQAhXQFMX62tDCAqWu2RsKJVYeoJf1ApZESbIxAz0GE6WOwDFXQSHlCastLt30Lt4s9+vhiF7cHk=&
接口名称:alipay.mobile.public.menu.update
使用场景举例:开发者通过调用该接口更新菜单。
业务消息内容
&button&: [
&actionParam&: &ZFB_WDZH&,
&actionType&: &out&,
&name&: &我的账户&
&name&: &查询&,
&subButton&: [
&actionParam&: &ZFB_YECX&,
&actionType&: &out&,
&name&: &余额查询&
&actionParam&: &ZFB_LLCX&,
&actionType&: &out&,
&name&: &流量查询&
&actionParam&: &https://m.alipay.com&,
&actionType&: &link&,
&name&: &最新优惠&
一级菜单数组,个数应为1~4个
二级菜单数组,个数应

我要回帖

更多关于 支付宝代收货款 的文章

 

随机推荐