支付宝的签约功能,与单笔支付相比,稍有不同。
支付宝签约接口,需要先创建一个支付宝的客户端alipayClient,然后填充响应的参数之后,调支付宝的速度快,获取到响应的数据,然后发起真正的支付操作。
AlipayClient alipayClient = new DefaultAlipayClient(“https://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发起真正的支付