一、应用开发前准备工作
1、去蚂蚁金服开放平台 https://open.alipay.com/platform/manageHome.htm,登录。
2、开发者中心-->网站&移动应用 点击
3、点击支付接入
4、创建应用,输入名称(注意:名称中不要含有支付宝,阿里巴巴等字样,亲测aliPay也不行)
5、修改应用图标(不要使用其他网站图标,到时候会审核不通过),选择应用功能(我的只剩了手机网站支付)
6、下载签名工具,https://docs.open.alipay.com/291/105971/,下载windows版,解压,打开.bat文件,点击生成秘钥,会生成商户私钥和应用秘钥,并且会以文本的方式保存起来。
7、回到开放平台 的应用完善页面,点击设置应用公钥,接收验证码,输入上一步生成的商户应用公钥,点击确定。然后会生成对应的支付宝公钥,商户应用公钥和支付宝公钥要明确区分开,。
8、提交审核,一天之后,审核完成,显示应用上线。此后,可以开始后台代码开发。(正式项目需要商户签约)
二、支付宝支付代码开发
1、引入java SDK 依赖,
2、写一个参数类,方便修改
3、申请个虚拟域名,保证支付回调正常。(可以参考https://natapp.cn/article/natapp_newbie,内网穿透)
4、调起支付宝支付页面,新建servlet,写方法,out_trade_no 自定义订单号,并且保证唯一,total_amount 支付金额,单位元,product_code 固定值,其他 是关于商品相关的属性。
public void doPost(HttpServletRequest httpRequest, HttpServletResponse httpResponse)
throws ServletException, IOException {
try {
AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig2.URL, AlipayConfig2.APPID,
AlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest();
JSONObject order = new JSONObject();
order.put("out_trade_no", "23242345rfg34534fertgedf");
order.put("subject", "songSir支付");
order.put("product_code", "QUICK_WAP_WAY");
order.put("body", "儿童泳装|泳具");
order.put("total_amount", "2000.00");
order.put("subject", "竞浪男童平角泳裤");
alipayRequest.setBizContent(order.toString());
/**
* 在公共参数中设置回跳和通知地址
*/
alipayRequest.setNotifyUrl(AlipayConfig2.NOTIFY_URL);
alipayRequest.setReturnUrl(AlipayConfig2.RETURN_URL);
httpResponse.setContentType("text/html;charset=utf-8");
httpResponse.getWriter().write(form);
httpResponse.getWriter().flush();
httpResponse.getWriter().close();
} catch (AlipayApiException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
5、在电脑打开谷歌浏览器,设置为手机浏览器模式,打开链接 http://j5d2bz.natappfree.cc/aliPay/AliPay (其中,域名对应的我的localhost:8080,aliPay是项目名,最后面Alipay是servlet方法名)
此时,即可打开支付宝登录页面。在手机端访问可以打开支付宝客户端。
6、回调方法和支付完成的返回方法。
回调方法,做一系列 订单操作。支付完成返回页可以是订单详情页。