public static void main(String[] args)  {/** 初始化 **/CertAlipayRequest certAlipayRequest = new CertAlipayRequest();/** 支付宝网关 **/certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do");/** 应用id,如何获取请参考:https://opensupport.alipay.com/support/helpcenter/190/201602493024 **/certAlipayRequest.setAppId("");/** 应用私钥, 如何获取请参考:https://opensupport.alipay.com/support/helpcenter/207/201602471154?ant_source=antsupport  **/certAlipayRequest.setPrivateKey("");/** 应用公钥证书路径,下载后保存位置的绝对路径  **/certAlipayRequest.setCertPath("");/** 支付宝公钥证书路径,下载后保存位置的绝对路径 **/certAlipayRequest.setAlipayPublicCertPath("");/** 支付宝根证书路径,下载后保存位置的绝对路径 **/certAlipayRequest.setRootCertPath("");/** 设置签名类型 **/certAlipayRequest.setSignType("RSA2");/** 设置请求格式,固定值json **/certAlipayRequest.setFormat("json");/** 设置编码格式 **/certAlipayRequest.setCharset("UTF-8");AlipayClient alipayClient = null;try {alipayClient = new DefaultAlipayClient(certAlipayRequest);} catch (AlipayApiException e1) {e1.printStackTrace();}/** 实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.user.agreement.page.sign(支付宝个人协议页面签约接口)**/AlipayUserAgreementPageSignRequest request = new AlipayUserAgreementPageSignRequest();/** 设置业务参数 **/AlipayUserAgreementPageSignModel model = new AlipayUserAgreementPageSignModel();/** 个人签约产品码,周期扣款固定值:CYCLE_PAY_AUTH_P **/model.setPersonalProductCode("CYCLE_PAY_AUTH_P");/** 销售产品码,周期扣款固定值:CYCLE_PAY_AUTH **/model.setProductCode("CYCLE_PAY_AUTH");/** 代扣协议中标示用户的唯一签约号,确保在商户系统中唯一 **/model.setExternalAgreementNo("20150320010101001");/** 协议签约场景,根据商户签约场景自行选择相同或者相近的行业,参考:https://opendocs.alipay.com/open/20190319114403226822/signscene\ **/model.setSignScene("INDUSTRY|CARRENTAL");AccessParams accessParams = new AccessParams();/** 签约方式,建议入参 ALIPAYAPP(钱包h5页面签约) **/accessParams.setChannel("ALIPAYAPP");model.setAccessParams(accessParams);/** 当前用户签约请求的协议有效周期,支持单位:1、d(天);2、m(月) **/                       model.setSignValidityPeriod("2m");/** 周期管控参数 **/                       PeriodRuleParams periodRuleParams = new PeriodRuleParams();/** 周期数 ,与period_type组合使用确定扣款周期,例如period_type为DAY,period=90,则扣款周期为90天。按天扣款下,扣款周期必须大于7天 **/                         periodRuleParams.setPeriod((long) 15);/** 首次执行时间,格式为yyyy-MM-dd;按月周期扣款下,不能入参每月28号之后的日期,不包含28号 **/                        periodRuleParams.setExecuteTime("2020-06-15");/** 周期类型,支持单位:1、DAY(扣款周期按天计);2、MONTH(扣款周期按自然月) **/                       periodRuleParams.setPeriodType("DAY");/** 单次扣款最大金额,商户每次发起扣款都不允许大于此金额 **/                      periodRuleParams.setSingleAmount("10.99");/** 总金额限制,商户多次扣款的累计金额不允许超过此金额。 **/                        periodRuleParams.setTotalAmount("600");/** 总扣款次数,商户成功扣款的次数不能超过此次数限制(扣款失败不计入) **/                        periodRuleParams.setTotalPayments((long) 12);model.setPeriodRuleParams(periodRuleParams);request.setBizModel(model);/** 异步通知地址,以http或者https开头的,商户外网可以post访问的异步地址,用于接收支付宝返回的支付结果,如果未收到该通知可参考该文档进行确认:https://opensupport.alipay.com/support/helpcenter/193/201602475759 **/request.setNotifyUrl("");/** 签约完成的跳转地址,用于用户视觉感知支付已成功,传值外网可以访问的地址,如果同步未跳转可参考该文档进行确认:https://opensupport.alipay.com/support/helpcenter/193/201602474937**/                   request.setReturnUrl("");AlipayUserAgreementPageSignResponse response = null;try {/** 生成签约请求字符串,需拼接之后去唤起签约界面,详见:https://opendocs.alipay.com/open/20190319114403226822/apidetail#%E9%80%9A%E8%BF%87app%E5%94%A4%E8%B5%B7%E6%94%AF%E4%BB%98%E5%AE%9D%E9%92%B1%E5%8C%85%E7%9A%84%E7%AD%BE%E7%BA%A6%E9%A1%B5%E9%9D%A2  **/ response = alipayClient.sdkExecute(request);} catch (AlipayApiException e) {e.printStackTrace();}//获取接口调用结果,如果调用失败,可根据返回错误信息到该文档寻找排查方案:https://opensupport.alipay.com/support/helpcenter/109System.out.println(response.getBody());
}

支付宝周期扣款Java逻辑代码相关推荐

  1. 支付宝周期扣款(支付后签约)业务功能总结(php+golang)

    文档 周期扣款支付后签约场景文档:https://opendocs.alipay.com/open/041bxs 业务流程 1.处理签约成功回调,添加到订阅表 2.定时任务自行请求订阅表,把达到扣款日 ...

  2. 后端做app连续会员包月功能 -- IOS连续订阅 支付宝周期扣款

    IOS连续订阅总结 如何判断后续用户是续费 1. 服务端轮询续费表,会员到期的前一天,根据用户id.去苹果服务器检验用户是否续费成功a. 查询的状态应有:等待扣费.扣费失败b. 扣费失败 , 对于扣费 ...

  3. java逻辑代码_Java逻辑代码判断字数

    package cn.com.f_young.erp.util; public class WorldTrueCount { /** * 判断中文和标点符号的逻辑代码 * @param value * ...

  4. 支付宝支付(五):周期扣款-支付后签约场景

    目录 一.调用APP支付接口,拉起支付宝,支付并签约页面 二.业务流程图 三.心声 一.调用APP支付接口,拉起支付宝,支付并签约页面 1.业务代码如下: public AlipayTradeAppP ...

  5. 连续支付(周期扣款)功能开发及注意事项

    最近有一个版本需求,需要接入周期扣款做连续会员的功能,没想到这一做就是小半个月,趟了很多坑,所以觉得有必要记录一下 1.周期扣款总体设计 在支付宝和微信中(非苹果支付),周期扣款的流程主要有以下两种, ...

  6. 支付宝支付(四):周期扣款-先签约后代扣场景

    目录 一.调用支付宝主动签约接口 二.参数说明 三.查询签约结果接口 四.签约成功,根据签约协议号,发起主动扣款 五.查询扣款结果接口 六.变更签约用户,下次扣款日期 七.取消签约协议接口 一.调用支 ...

  7. 支付宝小程序唤起签约并支付(周期扣款)

    目录 获取支付参数拼接成的字符串 支付宝小程序内唤起签约并支付页面 获取支付参数拼接成的字符串 调用alipay.trade.app.pay接口,获取orderStr,具体参数如下: 公共请求参数 参 ...

  8. Java for循环中设置停顿 逻辑代码中同样适用

    for (Object object : jsonArray) {Thread.currentThread().sleep(1000);list.add(((JSONObject)object).ge ...

  9. 支付宝APP支付Java服务端

    支付宝APP支付Java服务端: 公司项目要求对接支付宝进行支付功能,这边做出整理方便以后使用(支付宝的支付对接还是很简单的). 1):去支付宝开放平台,-1.注册账号,2.创建应用 3.配置应用 4 ...

最新文章

  1. 回馈读者【赠技术书通知】
  2. 成功解决Exception “unhandled AttributeError“ module ‘cv2.cv2‘ has no attribute ‘estimateRigidTransform‘
  3. finallshell堡垒机_用lshell+脚本实现堡垒机(跳转机)功能
  4. 请求转发与重定向的区别和执行流程
  5. Android安装两次才成功,Android应用从市场安装完成打开与桌面打开,被启动两次的问题...
  6. python列表推导式中使用if和if-else
  7. Maven 编译打包时如何忽略测试用例
  8. Ubuntu之安装摄像头软件GTK_UVC_Viewer
  9. EditPlus批量转码
  10. jsZip上传,jsZip压缩文件并上传到服务器
  11. mysql 创建数据库 utf8 命令_mysql创建数据库 utf8
  12. 密码要包含大小写字母+数字+符号,提这个建议的人刚刚承认他错了
  13. JQuery选择器超级详细
  14. ctfshow 日志包含Web80-81
  15. 刷排名优优软件_朋友问:手机app刷榜排名是什么?
  16. Adobe 系列软件中英文版本的切换
  17. fseek函数的用法(用于设定指针位置)
  18. 散点图 计算 java_怎么在excel中计算散点图的公式
  19. 一起来学C++:C++中的代码重用
  20. 非线性系统辨识:非线性 ARX 和 Hammerstein-Wiener

热门文章

  1. 解决方案:ppt打不开,显示发现文件中的内容有问题。可尝试修复此演示文稿
  2. 用python制作3d动画_-用 Python 做科学计算--Visual-制作3D演示动画
  3. 2018-2-13-win10-uwp-smms图床
  4. c语言道歉程序代码,C语言编程,请帮我填完整
  5. [转]有关FMS(FCS)设置
  6. oracle数据库怎么分组查询,oracle数据库之分组查询
  7. 还在为美容护肤问题焦虑吗?不妨试试红光光浴#大健康#红光光浴#红光#种光光学
  8. Abp Core 添加短信验证码登录(动态密码登录)
  9. 从faces_glintasia的.rec数据集转换为jpg图片
  10. java0.632数据类型_Object-c提供基本数据类型