java支付宝签约功能

673 阅读3分钟
  • 本文已参与「新人创作礼」活动,一起开启掘金创作之路。 支付宝的签约功能,与单笔支付相比,稍有不同。 支付宝签约接口,需要先创建一个支付宝的客户端alipayClient,然后填充响应的参数之后,调支付宝的速度快,获取到响应的数据,然后发起真正的支付操作。 AlipayClient alipayClient = new DefaultAlipayClient(“openapi.alipay.com/gateway.do”, “商户号”, 私钥, “json”, “UTF-8”, 公钥, “加密方式(RSA/RSA2)”);

AlipayTradeAppPayModel bizModel = new AlipayTradeAppPayModel(); bizModel.setTotalAmount(totalAmount); bizModel.setOutTradeNo(orderId);

SignParams signParams = new SignParams(); signParams.setPersonalProductCode(“GENERAL_WITHHOLDING_P”); signParams.setSignScene(“INDUSTRY|MULTIMEDIA”);//应用场景 signParams.setExternalAgreementNo( orderId);//商户签约号,最长32位 signParams.setExternalLogonId(userId);//用户在商户网站的登录账号 AccessParams accessParams = new AccessParams(); accessParams.setChannel(“ALIPAYAPP”); signParams.setAccessParams(accessParams); signParams.setSignNotifyUrl(callbackAliAutoUrl);//回调地址

bizModel.setAgreementSignParams(signParams); AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); request.setBizModel(bizModel); request.setNotifyUrl(callbackAliAutoUrl);//支付通知地址

AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request); 获取到支付宝返回的响应之后,调支付宝支付sdk发起真正的支付

下面说一下签约涉及到的扣款方式,一般来说,签约扣款有周期扣款和商家代扣两种方式。

周期扣款是什么?

支付宝周期扣款功能,商家可以通过使用这个功能,按照约定的业务规则进行异步扣款。目前周期扣款的额度限制为:对每个用户的单笔扣款不超过 100 元,当日扣款不超过 1000 元,当月扣款不超过 30000 元;扣款周期最短为 7 天,最长无限制。目前周期扣款功能暂不对系统服务商(ISV)开放。

周期扣款的特点:

1、业务特征:固定周期、固定金额范围、被动扣款、不可补偿支付。

2、典型场景:会员包月、租赁费、定期还款、充值缴费。

应用场景:

周期扣款主要有:先签约后代扣和支付后签约两种应用场景。

1、先签约后代扣场景。用户首先在签约页面进行签约,待签约生效后,按照协议中的时间进行扣款。 2、支付后签约场景。用户首先支付第一笔扣款,在支付后签约代扣协议。

支付宝通用代扣

用户授权将商户账号和支付宝账户进行绑定,在游戏、微博、社交网站等场景进行消费时,借助支付宝账户余额、卡通、快捷支付的资金渠道通过回复手机短信;页面输入短信验证码;或直接扣款方式完成交易的一种支付方式。支持商户以商户页面为准。

商户代扣是为企业或商户提供分批收款功能的一种服务。通过它,可以提高企业资金管理效率,为企业收款提供便捷的资金交易功能。适用于物业费、学费、水费、电费、煤费等场景。扣款一般是商户与客户第一次签订扣款协议,之后商户要扣款只需提醒客户就行了,主动权在商户。