新用户首次授权登录,商户需要调用支付宝提供的用户信息授权接口,获取到用户基本信息,入库并建立支付宝user_id与商户账户的映射关系;老用户每次仅需静默授权获取到用户user_id匹配到账户信息实现免登。
1、用户扫码打开H5/小程序页面,调用alipay.user.info.auth接口发起静默授权“scope=auth_base”,在用户无感知情况下获取auth_code。
2、调用alipay.system.oauth.token接口由auth_code获取user_id。 了解更多静默授权
3、通过user_id匹配用户信息表,匹配成功直接免登,匹配失败则发起主动授权。
4、调用alipay.user.info.auth接口发起主动授权”scope=auth_user”,获取auth_code。
5、调用alipay.system.oauth.token接口由auth_code获取换取access_token。 了解更多换access_token
6、调用alipay.user.info.share接口由access_token获取用户基本信息(user_id)。获取用户信息接口详解
7、页面引导用户录入手机号码并通过手机短信验证,如果手机号码已注册则把获取的user_id与原有用户账号绑定,如果手机号码未注册则自动完成新用户注册流程
参考在线文档当面付扫码支付
先调用alipay.trade.create (统一收单交易创建接口) 创建订单获取支付宝交易号trade_no,在页面调用jsapi发起支付。
在调用交易创建接口时需要传入买家支付宝id号 buyer_id,即为用户信息授权时获取的user_id。
详情参考在线文档当面付创建订单+jsapi支付
注意:
参数 |
参数名称 |
类型字节长度 |
参数说明 |
是否可为空 |
样例 |
serialNo |
分账序列号 |
String |
分账序列号,表示分 |
不可空 |
1 |
outRelationId |
分账关联号 |
String |
商户分账的外部关联号,用于关联到每一笔分账信息,商户需保证其唯一性。 |
可空 |
20131124001 |
transOutType |
转出账号类型 |
String |
要分账的账户类型。 |
可空 |
userId |
transOut |
出账支付宝用户号 |
String |
如果转出账号类型为userId,本参数为要分账的支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字。 |
不可空 |
2088101126765720 |
transInType |
转入账号类型 |
String |
接受分账金额的账户类型: |
可空 |
userId |
transIn |
入账账号 |
String |
如果转入账号类型为userId,本参数为接受分账金额的支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字。 |
不可空 |
2088101126708400 |
batchNo |
分账批次号 |
String |
12位分账批次号。 |
可空 |
123 |
amount |
分账金额 |
String |
分账的金额。 |
不可空 |
0.1 |
desc |
分账描述 |
String |
分账描述信息。 |
可空 |
分账测试1 |
格式结构:
[
{分账序列号:分账序列号1, 分账关联号:分账关联号1, 转出账号类型:转出账号类型1, 出账支付宝用户号:出账支付宝用户号1, 转入账号类型:转入账号类型1, 入账账号:入账账号1, 分账批次号:分账批次号1, 分账金额:分账金额1, 分账描述:分账描述1}
,{分账序列号:分账序列号2, 分账关联号:分账关联号2, 转出账号类型:转出账号类型2, 出账支付宝用户号:出账支付宝用户号2, 转入账号类型:转入账号类型2, 入账账号:入账账号2, 分账批次号:分账批次号2, 分账金额:分账金额2, 分账描述:分账描述2}
,
…
]
示例:
业务需求:按顺序执行2笔分账
参数赋值: royalty_parameters=[{"serialNo":"1","transOut":"2088101126765726","transIn":"2088101126708402","amount":"0.10","desc":"分账测试1"},{"serialNo":"2","transOut":"2088101126765726","transIn":"2088101126707869","amount":"0.10","desc":"分账测试2"}]
弱光线下扫脸可能会失败,需要加入手机支付宝扫码支付作为兜底方案。
设备商有代运营角色时,需要基于订单纬度进行分账。以下支持两种模式。