业务流程¶
分账功能¶
实时分账功能¶
功能概述¶
当您想对单笔订单交易进行分账时,需要先在您商户的 APP 下创建分账对象,并为分账对象绑定结算银行卡。当发起支付请求时,将分账信息(分账对象的 member_id 以及分账金额)传入,创建支付请求,发起支付。
接入准备¶
您的商户需提前入驻并成功申请支付通道
成功接入 SDK ,并能成功支付
流程说明¶
其中分账对象不需要每次调用分账的时候重复创建和重复绑定结算银行卡。
1,创建分账对象 Member对象 (针对个人分账)或 CorpMember对象 (针对企业用户分账)
调用 Member.create 接口或 CorpMember.create
企业用户需审核
2,为分账对象绑定结算银行卡,创建 结算账户对象
调用 SettleAccount.create 接口
参数 member_id 传入第1步的 member_id
参数 member_id 传入第1步返回的 member_id
如商户不需要分账,发起支付时无需传入分账信息
如商户所需分账对象包含本商户自己,对应的分账信息 member_id 为 0
分账对象手续费承担方有且只能有一个
所有分账金额总和为交易订单金额
4,支付关单或者退款
应用场景示例¶
场景描述
A 公司主营无人售货机业务,甲、乙、丙公司为供应商,甲公司提供食品商品,乙公司提供代理售卖,丙公司提供场地服务。用户在无人售货机购买商品发起一笔订单直付交易,交易需要同时与甲、乙、丙三家公司进行分账。
例如,用户购买一瓶 10元 的饮料,订单收款总金额 10元,其中,甲公司要收取 5元 商品成本费用,乙公司收取 1元 代理费用,丙公司要收取 2元 场地费,A 公司收款 2元。手续费为 A 公司承担。
注: 该场景业务使用 Adapay 分账功能,构建分账对象信息时,A 公司 member_id 参数传0,其它为分账用户 Member对象 的id。
实现步骤
分账 Step1. 创建用户
在做一笔支持分账的交易的之前,先要创建一个用户,这个用户可以是个人用户(Member对象)也可以是企业用户 (CorpMember对象)。
分账 Step2. 创建用户的结算账户
在创建完用户之后,需要给该用户添加一个结算账户。
什么是结算账户,当完成一笔交易后,交易金额会转入用户结算账户; Adapay 会根据结算配置按T+1,或D+1日 打款到您的银行卡中
分账 Step3. 创建支付交易完成分账
延时分账功能¶
功能概述¶
当您想对单笔订单交易进行分账时,需要先在您商户的 APP 下创建分账对象,并为分账对象绑定结算银行卡。当发起支付请求创建支付对象时,设置支付模式pay_mode为延时分账delay,再创建支付确认请求发起分账。
接入准备¶
您的商户需提前入驻并成功申请支付通道
成功接入 SDK ,并能成功支付
流程说明¶
其中分账对象不需要每次调用分账的时候重复创建和重复绑定结算银行卡。
1,创建分账对象 Member对象 (针对个人分账)或 CorpMember对象 (针对企业用户分账)
调用 Member.create 接口或 CorpMember.create
创建企业用户对象需要审核,若在创建企业用户对象时传入了结算卡信息,则无需调用第2步
2,为分账对象绑定结算银行卡,创建 结算账户对象
调用 SettleAccount.create 接口
参数 member_id 传入第1步的 member_id
3,创建支付请求 发起支付
传入支付模式pay_mode为延时分账delay
参数 member_id 传入第1步的 member_id
如商户不需要分账,发起支付时无需传入分账信息
如商户所需分账对象包含本商户自己,对应的分账信息 member_id 为 0
分账对象手续费承担方有且只能有一个
分账信息串中的金额总和必须等于交易订单金额
5,支付关单,支付撤销或者退款
第3步未支付完成的订单,可以调用 创建支付关单 ,其中payment_id 传入第3步返回的支付对象id
第3步支付完成的订单,在未执行第4步之前,若需要撤销支付,则需要 创建支付撤销对象,其中payment_id是第3步返回的支付对象id,
支持多次部分撤销,总次数不超过10次,且总撤销金额必须小于等于原支付对象的支付金额。
第4步支付确认完成后,若需要撤销,则需要 创建退款对象,其中参数中的id需要传入第4步支付确认对象id,支持一次全额或多次部分退款。
应用场景示例¶
场景描述
A 公司主营无人售货机业务,甲、乙、丙公司为供应商,甲公司提供食品商品,乙公司提供代理售卖,丙公司提供场地服务。用户在无人售货机购买商品发起一笔订单直付交易,交易需要同时与甲、乙、丙三家公司进行分账。
例如,用户购买一瓶 10元 的饮料,订单收款总金额 10元,其中,甲公司要收取 5元 商品成本费用,乙公司收取 1元 代理费用,丙公司要收取 2元 场地费,A 公司收款 2元。手续费为 A 公司承担。
注: 该场景业务使用 Adapay 分账功能,构建分账对象信息时,A 公司 member_id 参数传0,其它为分账用户 Member对象 的id。
实现步骤
分账 Step1. 创建用户对象
在做一笔支持分账交易之前,先要创建一个用户,这个用户可以是个人用户(Member对象)也可以是企业用户 (CorpMember对象)。
分账 Step2. 创建结算账户对象
在创建用户对象成功后,给该用户添加一个结算账户。
什么是结算账户,当完成一笔交易后,交易金额会转入用户结算账户; Adapay 会根据结算配置按T+1,或D+1日 打款到您的银行卡中
分账 Step3. 创建支付对象
在创建支付对象时,支付模式pay_mode必须传入delay,支付对象创建成功后获得Adapay生成的支付对象id。
分账 Step4. 创建支付确认对象,完成延时分账
参数payment_id传入第3步获取的支付对象id
钱包功能¶
钱包支付功能¶
商户通过 创建钱包支付对象 获取到钱包支付下单链接后,商户在前端页面中跳转至该链接,Adapay 会自动弹出钱包支付页面, 该页面需要使用商户 控制台 对应的登录手机号和密码登录,目前只支持商户登录,如下图所示的:
商户登录成功后,进入钱包支付确认页面,如下图所示:
商户点击立即支付,弹出支付密码输入框,进行支付密码验证,其中商户的支付密码设置请参考 钱包登录功能 ,如下图所示:
商户正确输入密码后,Adapay 后端会对登录商户的余额进行扣减,扣减成功后,弹出支付成功页面,同时 Adapay 会将支付结果发送 异步消息通知 告知,如下图所示:
当 创建钱包支付对象 请求参数callback_url设置了商户地址时,点击完成按钮,会跳转至商户地址;若未设置值时,则完成按钮不展示。
钱包登录功能¶
商户下的个人用户或企业用户若要使用钱包功能,需要先在 Adapay 创建用户,再首次为用户绑定提现银行卡,具体步骤如下:
1,创建个人用户对象 Member对象 或 创建企业用户对象 CorpMember对象
调用 Member.create 接口或 CorpMember.create
创建企业用户对象需要人工审核,若在创建企业用户对象时传入了结算卡信息,则无需调用第2步
2,为用户对象绑定提现银行卡,创建 结算账户对象
调用 SettleAccount.create 接口
请求参数 member_id 传入第1步的 member_id
注:商户自身使用钱包功能时,无需如上步骤。
商户下的个人用户或企业用户创建用户,并绑定提现银行卡成功后,就可以使用钱包功能了。商户可以通过 创建钱包登录对象 获取到钱包登录链接后,商户在前端页面中跳转至该链接,Adapay 会自动弹出钱包页面, 该页面内含有提现、密码管理、银行卡等功能,如下图所示的:
收银台功能¶
快捷支付功能¶
商户通过 创建收银台对象 (其中请求参数 pay_channel 值为fast_pay)获取到收银台支付下单链接后,商户在前端页面中跳转至该链接, Adapay 会自动弹出收银台快捷支付页面。支持借记卡和信用卡,首次绑卡后即可支付,后续仅需短信验证即可直接支付,无需再次输入银行卡号等要素信息,支持绑多张银行卡。
快捷支付页面如下图所示,该页面支持选择已绑定的银行卡进行支付,或者点击新增银行卡按钮,绑定新银行卡:
用户首次绑卡,或新增银行卡,如下图所示:
用户银行卡信息验证成功后,进入短信验证码页面,如下图所示:
用户支付成功后,弹出支付成功页面,点击返回商户页面按钮,可跳转至商户指定页面地址(请求参数callback_url对应的地址),同时 Adapay 会将支付结果发送 异步消息通知 告知,如下图所示: