#支付宝 当面付如何实现分账?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

#支付宝 当面付如何实现分账?

2020-05-05 23:20:05 831 1

当面付如何实现分账?

取消 提交回答
全部回答(1)
  • 保持可爱mmm
    2020-05-06 09:24:44

    一、业务场景

    想实现每笔当面付收款的订单的资金,实时划转到一个或多个分账收入方的支付宝账户。(只有通过当面付接口支付收款的订单才能分账,固定收钱码收款订单不支持分账)。

    二、如何实现 1、集成当面付

    (1)如果之前对接过支付宝产品,那么可以直接使用之前对接支付宝接口的APPID,在APPID下添加当面付功能包并签约。签约成功后该APPID就有调用当面付接口的权限,再进行代码集成,接入流程可参考【当面付接入流程】

    (2)如果之前没有对接过支付宝产品,则需要先入驻支付宝开放平台,步骤可参考【如何入驻开放平台】,如何获取APPID可参考【创建应用】,在APPID下添加当面付功能包,【签约】成功后进行接口对接,接入流程可参考【当面付接入流程】。

    2、集成商家分账

    商家分账接入流程可参考【如何接入】

    三、接口调用 1、支付流程

    1、用户在线下商店进行付款;

    (1)扫码枪扫用户付款码支付,则扫码枪获取到付款码,商家服务端调用【alipay.trade.pay】条码支付接口进行支付;

    (2)商家服务端调用【alipay.trade.precreate】生成付款二维码,展示给用户,用户扫商家收银机展示的付款码进行支付。

    2、获取到支付成功的支付宝交易号(trade_no),可以调用【alipay.trade.query】查询接口获取;

    3、调用【alipay.trade.order.settle】分账接口传入需要分账的支付宝订单号(trade_no)和分账收入方账号(trans_in)、分账金额(amount),进行分账。

    注意:如果第一次分账,或者是新的分账收款方账号,需要先调用【alipay.trade.royalty.relation.bind】分账关系绑定接口绑定分账关系后才可分账。

    2、退款流程

    分账成功后,如果用户退款,商家服务端调用【alipay.trade.refund】退款接口,此时退款是按照分账比例退款的,当面付交易不支持自定义退款金额和退款方.

    四、代码示例 1、支付

    【alipay.trade.app.pay】APP支付接口

    AlipayClient alipayClient = new DefaultAlipayClient(ALIPAY_GATEWAY, APP_ID, PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, SIGN_TYPE); AlipayTradePayRequest request = new AlipayTradePayRequest(); //request.putOtherTextParam("app_auth_token","商家授权的app_auth_token"); //第三方应用APPID调用接口时传入 request.setBizContent("{" + ""out_trade_no":"20150320010101001"," + //商家订单号 ""scene":"bar_code"," + //支付场景 ""auth_code":"28763443825664394"," + //付款码值 ""subject":"测试订单"," + //订单标题
    ""total_amount":"0.1"" + //金额 "}"); AlipayTradePayResponse response = alipayClient.execute(request); //输出响应结果 System.out.println(response.getBody());

    2、分账

    【alipay.trade.order.settle】分账接口

    (注意:如果第一次分账,或者是新的分账收款方账号,需要先调用【alipay.trade.royalty.relation.bind】分账关系绑定接口绑定分账关系后才可分账。)

    AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", AlipayConfig.APPID, AlipayConfig.RSA_PRIVATE_KEY, AlipayConfig.FORMAT, AlipayConfig.CHARSET, AlipayConfig.ALIPAY_PUBLIC_KEY, AlipayConfig.SIGNTYPE); //获得初始化的AlipayClient AlipayTradeOrderSettleRequest request = new AlipayTradeOrderSettleRequest(); request.setBizContent("{" + ""out_request_no":"26665934326"," + //请求号,每次请求不重复 ""trade_no":"2020010222001446280540872500"," + //支付成功的支付宝交易号 ""royalty_parameters":[{"+ //分账明细 ""royalty_type":"transfer"," + //分账类型 ""trans_out":"2088********"," + //支出方账户(填商家) ""trans_out_type":"userId"," + //支出方账户类型。userId表示是支付宝账号对应的支付宝唯一用户号;loginName表示是支付宝登录号; ""trans_in_type":"userId"," + //收入方账户类型 ""trans_in":"2088********"," + //收入方账户(填分账收入方) ""amount":0.01," + //分账金额 ""desc":"分账给测试账号"" + //分账描述
    "}]" + "}"); AlipayTradeOrderSettleResponse response = alipayClient.execute(request); if(response.isSuccess()){ System.out.println("调用成功"); } else { System.out.println("调用失败"); } System.out.println(response.getBody()); }

    3、退分账

    【alipay.trade.refund】交易退款接口

    注意:当面付退分账是按照分账比例退款的,所以不需要传入退分账参数refund_royalty_parameters。

    AlipayClient alipayClient = new DefaultAlipayClient(Config.gatewayUrl, Config.app_id, Config.merchant_private_key, "json", Config.charset, Config.alipay_public_key, Config.sign_type); //锟斤拷贸锟绞硷拷锟斤拷锟紸lipayClient AlipayTradeRefundRequest request = new AlipayTradeRefundRequest(); request.setBizContent("{" + //""out_trade_no":"20150320010101001"," + //商家订单号 ""trade_no":"2020010222001446280540872500"," + //支付宝交易号 ""refund_amount":0.1" + //退款金额 "}"); AlipayTradeRefundResponse response = alipayClient.execute(request); if(response.isSuccess()){ System.out.println("调用成功"); } else { System.out.println("调用失败"); } System.out.print(response.getBody()); }

    0 0
相关问答

1

回答

#支付宝 商家分账如何实现给多人分账?

2020-05-07 09:03:47 1111浏览量 回答数 1

1

回答

#支付宝 如何处理周期扣款失败?

2020-05-07 09:21:31 417浏览量 回答数 1

1

回答

#支付宝 网站支付宝登录如何获取权限?

2020-05-07 11:31:29 244浏览量 回答数 1

1

回答

#支付宝 如何取消周期扣款协议?

2020-05-07 09:15:36 568浏览量 回答数 1

1

回答

#支付宝 如何修改周期扣款签约页面文案?

2020-05-07 09:19:02 585浏览量 回答数 1

1

回答

#支付宝 如何签约?

2020-05-05 16:12:23 292浏览量 回答数 1

1

回答

#支付宝 如何避免单边账?

2020-05-05 23:21:15 1337浏览量 回答数 1

2

回答

支付宝里的集分宝这么提现???

2017-07-26 23:23:38 1823浏览量 回答数 2

2

回答

支付宝

2017-03-03 19:24:17 1195浏览量 回答数 2

1

回答

支付宝

2017-03-03 19:24:16 1508浏览量 回答数 1
66
文章
12595
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载