这里展示java对接支付宝开放平台的APP支付。首先java要对接支付宝的app支付或者H5支付的话 则第一步是要注册支付宝开放平台账号以及绑定产品等一系列操作,这里不做过多解释,有不懂的可以私信我。下面主要讲代码层面如何解决。支付宝app支付是分为秘钥验签或者证书验证的,一般默认的都是秘钥验签的方式对接的,这里将展示两种方式的对接
1.证书验签的对接 和秘钥验签的对接
public AjaxResult buyAliCoinPay(HttpServletRequest request) throws AlipayApiException {
//支付宝需要的参数serverUrl、appId、private_key、format、charset、public_key、signType
//下面双斜线的则是秘钥验签的方式,
// AlipayClient alipayClient = new DefaultAlipayClient(
// serverUrl,
// aliAppId,
// privateKey,支付宝私钥
// format,
// charset,
// alipayPublicKey, 支付宝公钥
// signType);
//下面这几行代码则是证书验签的方式
CertAlipayRequest alipayConfig = new CertAlipayRequest();
alipayConfig.setPrivateKey(privateKey);//支付宝应用私钥
alipayConfig.setServerUrl(serverUrl);
alipayConfig.setAppId(aliAppId);
alipayConfig.setCharset("UTF8");
alipayConfig.setSignType("RSA2");
alipayConfig.setEncryptor("");
alipayConfig.setFormat("json");
alipayConfig.setCertPath(certPath);//支付宝应用公钥证书地址
alipayConfig.setAlipayPublicCertPath(alipayPublicCertPath);//支付宝公钥证书地址
alipayConfig.setRootCertPath(rootCertPath);//支付宝根证书路劲地址
AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig);
AlipayTradeAppPayRequest requests = new AlipayTradeAppPayRequest();
JSONObject bizContent = new JSONObject();
bizContent.put("out_trade_no", "12672186123");//订单号
bizContent.put("total_amount", "100");//金额 切记 是字符串格式 别信支付方文档的金额格式
bizContent.put("购买了xxx");
// 回调地址(充值订单)
requests.setNotifyUrl(aliPayNotifyUrl);// 回调地址
//这里和普通的接口调用不同,使用的是sdkExecute
requests.setBizContent(bizContent.toString());
AlipayTradeAppPayResponse response = alipayClient.sdkExecute(requests);
if(response.isSuccess()){
log.info("支付宝app支付接口调用成功");
return AjaxResult.success(response.getBody());
} else {
log.info("支付宝app支付接口调用失败");
return AjaxResult.error("后台支付异常关闭!请联系管理员或者稍后重试");
}
}
//两种支付的区别就是调用的几个参数不一样以及组参方式不一样