前言
支付宝技术支持
https://opensupport.alipay.com/support/intelligent-services
支付宝开放平台
SDK
https://opendocs.alipay.com/common/02n6z6?pathHash=f5e2a056
查看开通的服务
https://b.alipay.com/page/product-workspace/all-product
支付宝产品列表
可以查看产品支持的功能,是否开通
https://open.alipay.com/api?appId=2021004166617686#openapi
租赁商品场景开发接入
https://opendocs.alipay.com/mini/0calzt
商家券
https://opendocs.alipay.com/open/03rr8k?pathHash=c2ad7338
配置检测
https://open.alipay.com/api/diagnosticTool?examCode=E000001956&expand=BIZ_001&subCode=BIZ_002
交易组件
https://opendocs.alipay.com/mini/077it6?pathHash=48b64793
预授权支付
https://opendocs.alipay.com/open/repo-0243e2?ref=api
密钥工具下载
https://opendocs.alipay.com/common/02kipk
设置证书加签方式
https://opendocs.alipay.com/common/056zub?pathHash=91c49771
密钥和证书
支付宝的认证有两种方式,密钥和证书
一个应用(APPID)只能配置一种接口加签方式(密钥或证书)。
- 密钥方式不支持
红包
和转账到支付宝账户
- 证书方式支持所有的支付服务
密钥方式
需要
应用私钥:用来给应用消息进行签名,请务必要妥善保管,避免遗失或泄露。
应用公钥:需要提供给支付宝开放平台,平台会对应用发送的消息进行签名验证。
支付宝公钥:应用收到支付宝发送的同步、异步消息时,使用支付宝公钥验证签名信息。
示例
1 | AlipayConfig alipayConfig = new AlipayConfig(); |
证书方式
对接需要
应用私钥:用来给应用消息进行签名,请务必要妥善保管,避免遗失或泄露。
应用公钥证书:在开放平台上传 CSR 文件后可以获取 CA 机构颁发的应用证书文件(.crt),其中包含了组织/公司名称、应用公钥、证书有效期等内容,一般有效期为 5 年。
支付宝公钥证书:用来验证支付宝消息,包含了支付宝公钥、支付宝公司名称、证书有效期等内容,一般有效期为 5 年。
支付宝根证书:用来验证支付宝消息,包含了根 CA 名称、根 CA 的公钥、证书有效期等内容。
申请需要
CSR 文件:CSR 即证书签名请求(Certificate Signing Request),CSR 文件(.csr)是申请证书时所需要的一个数据文件。
示例
1 | AlipayConfig alipayConfig = new AlipayConfig(); |
常用属性
交易号
trade_no
商家订单号
out_trade_no
支付流程
租赁商品场景对接流程
租赁场景预授权支付和JSAPI支付都要对接
- 预授权支付是冻结押金
- JSAPI是支付每期租金
JSAPI支付流程
相关开通的服务
服务批量开通页面
https://b.alipay.com/page/product-workspace/batch-open?sceneCode=ALL
小程序手机号登录
获取用户信息
小程序中切换账号登录(要选手机号),所以支付宝登录时要保存用户手机号。
后台充值和提现
订单码支付
订单码支付是指商家按支付宝的支付协议生成订单二维码,用户使用支付宝“扫一扫”即可完成付款
https://open.alipay.com/api/detail?code=I1080300001000068149
主要用户账户充值
转账到支付宝账户
https://open.alipay.com/api/detail?code=I1080300001000046143
转账到支付宝账户是支付宝应用最广泛的接口类转账产品,针对具有开发能力的商户,提供API接口或网页免研版完成转账功能。
主要用于平台提供的商户可申请提现到自己的支付宝账户。
线上租赁
线上租赁必须要开通
芝麻免押
支付宝身份验证
预授权支付
JSAPI支付
芝麻免押
帮助商家通过免押金/免订金服务,降低用户的使用门槛,提升用户体验,从而提高用户的下单转化率,以此增加商家的交易量。
检测服务是否开通
https://open.alipay.com/api/detail?code=I1080300001000056967
查看SCI
https://mrchportalweb.alipay.com/operation/svr-mgnt/sci
MAU表示月活跃去重用户数
预授权支付
预授权支付 指用户产生实际消费前,商家可以提前冻结用户一定资金作为押金,后续按实际消费金额从用户冻结资金中扣除给商家,剩余金额解冻返还用户的一种支付产品。
https://opendocs.alipay.com/open/064jh8?pathHash=ddb28cea&ref=api
提前冻结用户资金/额度,交易完成后再支付。
也就是押金。
申请条件
小程序要上架后,我们可以指对接JSAPI上架后,但是关闭小程序的搜索,这样用户是搜索不到的,再申请预授权支付。
JSAPI支付
支持支付宝小程序收款场景,用户在商家小程序下单,输入支付密码完成支付,商家收款到账。
开通地址
https://b.alipay.com/page/ar-center/front-product-sign/form?productCode=I1080300001000060370
转账到支付宝账户
https://open.alipay.com/api/detail?code=I1080300001000046143
小程序交易组件
小程序交易组件 提供履约流程和账期管控的能力,可更好的支持售中和售后服务,提升用户对于商家的信任度。
交易组件的功能包括业务订单创建、履约、结算和售后整个过程,商家按照小程序交易组件 提供的订单前置校验指引,在公域场景下创建业务订单,并推进业务订单的状态来完成订单资金的结算。
也就是说
交易组件是可以不使用的,但是建议使用。
它是规范不同类型交易的整个流程,让接入者的系统的流程更合理。
对接文档
https://opendocs.alipay.com/mini/repo-02hwkm?pathHash=48b64793&ref=api
涉及的接口
https://opendocs.alipay.com/mini/0894tj?pathHash=6a1fa81b&ref=api
统一收单交易
主要作用是创建账单。
其中out_trade_no(商户订单号)
可以理解为业务系统中的账单号
返回值中的trade_no(支付宝交易号)
可以理解为支付宝账单号。
文档
https://opendocs.alipay.com/apis/009ziz
测试
交易组件和JSAPI的接口
https://opendocs.alipay.com/mini/0894tj?pathHash=6a1fa81b&ref=api
支付
支付的方式有两种
- 用户主动支付
- 服务端扣款
用户主动支付又分两种
- 主动支付押金(预授权支付)
- 支付账单
服务端扣款也分两种
- 预授权转支付
- 业务单代扣(需要开通商家扣款并且联系业务经理将签约的商家扣款产品设置为业务单代扣模式)
租赁对接全流程
小程序获取追踪ID
1 | getSourceId() { |
这个必须在真机或者模拟器登录账号的前提下测试。
租赁商品接入
https://opendocs.alipay.com/mini/0calzt
分期单支付支持:预授权转交易、业务单代扣、主动支付进行分期扣款。
创建订单
https://opendocs.alipay.com/mini/54f80876_alipay.open.mini.order.create
主动支付
主动支付是
- 服务端调用统一收单交易创建接口返回
trade_no
- 小程序调用
my.tradePay
进行支付 - 支付成功后,服务端调用订单分期接口进行绑定。
服务端调用统一收单交易创建接口
创建分期单
https://opendocs.alipay.com/mini/2cce2a35_alipay.open.mini.order.installment.create
小程序支付
https://opendocs.alipay.com/mini/api/openapi-pay
https://opendocs.alipay.com/mini/05xhsr?pathHash=d4709298
发起支付。
- JSAPI 支付:唤起收银台进行支付,目前支持花呗分期支付,不支持扫码、条码、声波付等方式支付。
- 预授权支付:冻结用户一定资金作为押金,后续按实际消费金额从用户冻结资金中扣除给商家,剩余金额解冻最终再返还给用户。
预授权支付
1 | let orderStr = 'alipay_sdk=alipay-sdk-java-3.0.118.DEV&app_id=2018112803019836&biz_content=%7B%22amount%22%3A%220.02%22%2C%22extra_param%22%3A%22%7B%5C%22category%5C%22%3A%5C%22CHARGE_PILE_CAR%5C%22%7D%22%2C%22order_title%22%3A%22%D6%A7%B8%B6%B1%A6%D4%A4%CA%DA%C8%A8%22%2C%22out_order_no%22%3A%22ZMOutOrderNoAppFreeze2018052915543415090975%22%2C%22out_request_no%22%3A%22ZMOutReqNoAppFreeze20180529155434581875858%22%2C%22pay_timeout%22%3A%222d%22%2C%22payee_user_id%22%3A%222088202224929664%22%2C%22product_code%22%3A%22PRE_AUTH_ONLINE%22%7D&charset=GBK&format=json&method=alipay.fund.auth.order.app.freeze&sign=L4wk%2FNKcbJOo3n6Q5qbPzn0jUsvZlK4jr7iXnghudR0zeWJMmeNC71qIBSQfIz45n%2B5iTd0NQ5IK581xI2xCShTCiKAywnQcDmA%2Bjf%2BrRdKCDQCMLfCz%2BZ37C%2B6zxAX3e81%2F8Hr29lw4VPFfHkp9FmMwKw%2FGkNfV5ZlWoh7UtN8%3D&sign_type=RSA×tamp=2018-05-29+15%3A54%3A35&version=1.0' |
JSAPI 支付
1 | my.tradePay ({ |
芝麻免押
https://opendocs.alipay.com/open/03w0a8?pathHash=d3c885ce
https://opendocs.alipay.com/open/03w0a6?pathHash=8fcf7eb1&ref=api
商户平台
https://b.alipay.com/page/zmgaia/pre-auth/index
守约连接
https://opendocs.alipay.com/b/03ag31
信用服务ID
https://b.alipay.com/page/zmgaia/pre-auth/index
预授权支付
芝麻免押就是预授权支付的一种形式,只是传的参数有些许变化
冻结文档
https://opendocs.alipay.com/open/e2e70da4_alipay.fund.auth.order.app.freeze
信用服务IDserviceId
,可以在这查看
https://b.alipay.com/page/zmgaia/pre-auth/index
1 | package com.java.sdk.demo; |
开通产品后,需要申请信用服务,申请完成后获取 3 个关键字段,用于调用芝麻免押产品使用。
说明:如您已完成申请信用服务,可通过 自助诊断工具 查询信用服务 ID。
https://open.alipay.com/api/diagnosticTool?expand=DI00001005&subCode=BIZ_004
免押并签约代扣
https://opendocs.alipay.com/b/0crqgx?pathHash=935e5b14
全流程
https://opendocs.alipay.com/open/03w0a8?pathHash=d3c885ce&ref=api
测试芝麻免押
https://b.alipay.com/page/zmgaia/pre-auth/index
对接后芝麻免押并不会立即生效
在验收前用户是不能正常免押的,可以先让开发人员扫码加入白名单就可以进行测试
验收流程
https://opendocs.alipay.com/b/08t4x8?pathHash=294fe925
自助验收
https://open.alipay.com/api/apiSolutionList?type=ability
验收要求
预授权转支付注意事项
https://opendocs.alipay.com/b/0a62u9?pathHash=343a2a3f
扣款成功
- 只有当用户账上资金足够,才能扣款成功,不存在“有多少扣多少”这样的部分扣款方式。
- 如果该笔预授权冻结了用户资金,则优先从中扣款,扣完后才会从其他渠道(余额、花呗、银行卡等)。
请注意:如果auth_confirm_mode未传入COMPLETE,之后订单完结时,务必解冻剩余金额,否则用户状态始终为待守约,引发客诉。
如果转支付扣款失败:
扣款失败后,同一笔款项(例如充电宝租金、长租的某月租金),请务必始终维持最初的out_trade_no继续扣款,不要更换!!!
若要更换金额扣款,需要关闭在途扣款交易,重新发起扣款。
扣款失败后,支付宝不会自动轮询重试,请商家每隔一段时间,自行重试扣款。
一定期限(不同场景期限不同,一般为5-10天)后,如果扣款仍未成功且该交易未关闭,芝麻将推送用户逾期。
订单结束
1、主动结束
- 当订单结束后,无论是订单取消、转支付扣款成功、其他方式收款成功、用户无需付款但已履约,均需调用预授权解冻接口,全额解冻剩余金额。
2、到期自动解冻
- 预授权订单生成之后一定期限(一般是365天),系统将自动解冻剩余金额。
- 如果此时没有未完结的交易单(扣款失败,但未同步已守约或已取消),商家无需做任何处理。
- 如果此时还有未完结的交易单,则无法发起转支付扣款,商家需要通过其他方式收回款项,并调用订单信息同步接口,将对应交易同步为已履约。
租押分离
在规定范围内赋予用户一定的可免金额(assessmentAmount),赋予用户可免的押金不超过订单最大扣款金额的80%;
注意:此能力可升级V2.0,可进行差异化评估等能力,但1.0足够;
能力开放条件:L2可接入2.0差异化押金评估,L3可以回归1.0取自主设定押金
1.0接入文档:https://opendocs.alipay.com/b/0d7fxr?pathHash=098ca1d1
2.0接入文档:https://opendocs.alipay.com/b/0emx3l
专业版风控
接入专业版异步风控,获得三个返参等级,用于判断订单风险;
能力开放条件:L2
https://opendocs.alipay.com/b/0d3p5l?pathHash=26975c46
返回值字典:
1 | //综合风险等级 |
租赁业务单代扣
https://www.yuque.com/yuhuai-aw5w5/kb/fb1cgb7g0pmnzo9b?singleDoc#
租物风控
https://www.yuque.com/u28154685/zv3alp/xxnh32536osuh07t?singleDoc#
小程序商品
https://opendocs.alipay.com/mini/0dqecn?pathHash=e89fd65e
小程序内页
商品详情-支付宝可访问
1 | let url = `alipays://platformapi/startapp?appId=2021004153612039&page=${encodeURIComponent("/pages_a/goods/goodsdetail?goodsId=10")}` |
商品详情-浏览器和支付宝可访问
1 | let goodsId = "10"; |
守护链接-动态链接(账单详情)
1 | let url = `alipays://platformapi/startapp?appId=2021004153612039&page=${encodeURIComponent("/pages_d/billdetail/billdetail?orderCode=")}`+'${out_order_no}'; |
小程序场景
https://opendocs.alipay.com/mini/framework/scene
消息
运营:https://opendocs.alipay.com/b/03al94?pathHash=120b4836
产品接入文档:https://opendocs.alipay.com/mini/repo-01emf6?ref=api
商家平台 => 工作台 => 私域 => 小程序 => 点击对应的小程序 => 消息
订阅消息对接
会员卡
https://opendocs.alipay.com/open/repo-01ag27
商家券
https://opendocs.alipay.com/open/03rr8k?pathHash=c2ad7338
领券插件
https://opendocs.alipay.com/open/08bcgx?pathHash=56ef335b
领券组件插件开通页面
https://open.alipay.com/plugin/order-page?serviceCode=MP2021090600100574
插件管理页面
https://open.alipay.com/dev/workspace/plugin-center/get-plugin
其它
产品能力 | 描述 | 文档地址 |
---|---|---|
租赁快捷下单 | 接入官方快捷下单插件,插件包含商品详情页、sku选择面板、确认订单页等用户租赁意向确认页,集合了 实名认证、人脸核身、芝麻风控、免押预授权、业务单代扣等关键产品能力。 | https://xfpzl.yuque.com/dgw58m/apg2ie/gyovgcdyzpsbgfpy?singleDoc# |
差异化商品定价 | 接入快捷下单后需验证差异化定价商品价格折扣展示及端内价格更改 | https://www.yuque.com/price-0zdzb/ck687t/wvlqoa22mpqmb7yz?singleDoc# |
租赁营销工具 | 此工具为快捷下单接入后需校验优惠的能力,需与快捷下单一并开发 | https://xfpzl.yuque.com/dgw58m/nustx9/cnhxfwm1gc2nrabx?singleDoc# |