SpringBoot下如何实现支付宝接口的使用
这篇文章主要介绍了SpringBoot下如何实现支付宝接口的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
前期准备:
参考之前写过的支付宝接口引入servlet版本
Jar包引入:
net.guerlab sdk-alipay-starter ${alipay.version}
参考版本:1.0.3
关于application的配置:
sdk: alipay: dev:true//true沙箱//false正式 sign-type:RSA2//验签方式 app-id://APPID private-key://私钥 alipay-public-key://支付宝公钥
Controller的处理
支付请求的处理
@RequestMapping(value="/alipay/{orderId}/{money}/{subject}",method=RequestMethod.GET)
publicvoidpay(@PathVariableStringorderId,@PathVariableStringmoney,@PathVariableintsubject,HttpServletResponseresponse)throwsAlipayApiException,IOException{
JSONObjectdata=newJSONObject();
//订单号,必填
data.put("out_trade_no",orderId);
//PC支付FAST_INSTANT_TRADE_PAY,APP支付QUICK_MSECURITY_PAY,移动H5支付QUICK_WAP_PAY
data.put("product_code","FAST_INSTANT_TRADE_PAY");
//付款金额,必填
data.put("total_amount",money);
//订单描述,必填
if(subject==0)
data.put("subject","充值业务");
//该笔订单允许的最晚付款时间,逾期将关闭交易
//data.put("timeout_express","");
//公共校验参数
//data.put("passback_params","");
//PC支付
AlipayTradePagePayRequestrequest=newAlipayTradePagePayRequest();
//APP支付
//AlipayTradeAppPayRequestrequest=newAlipayTradeAppPayRequest();
//移动H5支付
//AlipayTradeWapPayRequestrequest=newAlipayTradeWapPayRequest();
//异步通知地址
request.setNotifyUrl("http://localhost:8765/pay/alipay/notify");
//同步通知地址
request.setReturnUrl("http://localhost:8765/pay/alipay/returnHandler");
//业务参数
request.setBizContent(data.toJSONString());
AlipayTradePagePayResponsealipayResponse=client.pageExecute(request);
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write(alipayResponse.getBody());
}
这里我传了三个参数作为示范,可以视情况自行修改,切记,如果支付方式有所变换,client.?Execute要@RequestMapping(value="alipay/notify",method=RequestMethod.POST)
@ResponseBody
publicJSONObjectnotify(HttpServletRequestrequest)throwsAlipayApiException,UnsupportedEncodingException{
//获取支付宝POST过来反馈信息
Mapmaps=newHashMap();
MaprequestParams=request.getParameterMap();
for(Iteratoriter=requestParams.keySet().iterator();iter.hasNext();){
Stringname=(String)iter.next();
String[]values=(String[])requestParams.get(name);
StringvalueStr="";
for(inti=0;imaps=request.getParameterMap();
//for(Entrymap:maps.entrySet()){
//System.out.println(map.getKey()+"下的值------------");
//String[]value=map.getValue();
//for(Stringstring:value){
//System.out.println(string);
//}
//}
StringorderId=maps.get("out_trade_no")[0];//获取订单号
//进行相应的业务处理returnActionHelper.responseOk();
}
异步回调为post,同步回调为get,这里因为异步回调地址必须是公网可以访问的,所以使用同步接口先行进行判断处理,正常业务下以异步回调为准来判断。
取消同步回调中的注解可以清楚的在控制台看到所有的参数!
支付账号和密码自行在沙箱账号中查询即可。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短