支付宝-周期支付

支付中签约


一、支付后签约流程图

在这里插入图片描述

二、示例代码

			
			AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", "you are appid",
				"private key", "json", "utf-8", "public key", "RSA2");
				//验签请求request
			AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
			//封装参数
			Map<String, String> keyValues = new HashMap<String, String>();
			keyValues.put("app_id", "you are appid");
			JSONObject jsonObject = new JSONObject();
			//商品参数
			jsonObject.put("total_amount","100");//商品价格
			jsonObject.put("product_code","CYCLE_PAY_AUTH");//周期扣款产品码,固定值
			jsonObject.put("body","body");//商品body
			jsonObject.put("subject","subject");//商品subject
			jsonObject.put("out_trade_no","202201020102121");//商户订单号,保证唯一
			jsonObject.put("goods_type","0");//商品类型
			JSONObject agreementSignParams = new JSONObject();
			//周期扣款管控参数
			agreementSignParams.put("personal_product_code","CYCLE_PAY_AUTH_P");//固定值
			agreementSignParams.put("sign_scene","INDUSTRY|APPSTORE");//场景值
			agreementSignParams.put("external_agreement_no","221138193812831");//商户签约协议编号,保证唯一!
			agreementSignParams.put("sign_notify_url","sign_notify_url");//签约结果回调地址
			JSONObject accessParams = new JSONObject();
			accessParams.put("channel","ALIPAYAPP");//接入方式
			JSONObject periodRule = new JSONObject();
			//扣款周期参数
			periodRule.put("period","10");//扣款周期
			periodRule.put("period_type","DAY");//周期类型
			periodRule.put("single_amount","10.0");//扣款金额
			periodRule.put("execute_time","2022-03-29");//首次扣款时间
			agreementSignParams.put("period_rule_params",periodRule);
			agreementSignParams.put("access_params",accessParams);
			jsonObject.put("agreement_sign_params",agreementSignParams);
			keyValues.put("biz_content",jsonObject.toString());
			request.setBizContent(keyValues.get("biz_content"));
			request.setNotifyUrl("notify_url");//支付结果回调地址
			request.setApiVersion("1.0");//api版本
			//请求验签
			AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
			//获取唤起参数
			String body = response.getBody();
			

三、支付中签约常见问题

1.调用支付宝签名失败,报ISV 权限不足错误。
ISV 权限不足(isv.insufficient-isv-permissions)是指开发者在调用接口前,由于没有添加能力、签约或配置网关、密钥等关键信息,无相关接口的调用权限而导致的报错。
解决方案:详见:ISV权限不足解决方案

2.唤起支付宝界面失败,报系统繁忙。
一般情况下该问题原因为:支付宝验签失败
解决方案:
1.检查组装唤起支付宝页面参数是否正确
2.建议用支付宝生成签名的api,详见上方demo

3.支付成功但是签约失败
支付后签约场景分为支付业务参数和签约业务参数,该问题由于签约业务参数错误导致。
解决方案:
1.检查周期管控参数是否错误。
2.扣款周期类型period_type参数为DAY时,扣款周期period参数不得小于7。
3.具体可参考上方demo

总结

首次支付并签约所产生的问题大多都是请求参数有误,要注意周期相关参数的层级与格式。大家开发时可参考支付宝技术文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值