JavaWeb - 仿小米商城网(8): 订单支付[沙箱支付]
1.功能描述
JavaWeb - 仿小米商城网(7): 提交订单之后
沙箱支付配置可通过博客https://blog.csdn.net/hhb442/article/details/123304287 配置
支付成功可以通过点击我的订单查看订单列表
2.沙箱支付功能分析
2.1在pom文件中加入依赖
<!-- 支付宝支付的依赖 -->
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.16.2.ALL</version>
</dependency>
3 代码实现
3.1 前端
3.1.1 修改链接地址 orderSuccess.html文件中
通过id来设置标签中的文本内容// $(“#id”).text(“文本内容”)
通过id来设置标签中的属性// $(“#id”).attr(“属性”,属性值)
$(document).ready(function (){
var oid = getParams("oid");
var money = getParams("money");
$("#oidh4").text("订单号: " +oid);
$("#moneyh4").text("订单总金额: " +money);
$("#paylink").attr("href","pay.do?action=alipay&oid="+oid+"&omoney="+money);
$("#wxlink").attr("href","payWeixin.do?action=alipay&oid="+oid+"&omoney"+money);
})
3.2 后端
3.1.1 PayServlet
在 PayServlet类中首先设置如下私有属性 APP_ID (appId,从沙箱管理页面获得)
APP_PRIVATE_KEY (应用私钥,最开始在密钥工具生成而 来)
ALIPAY_PUBLIC_KEY (支付宝公钥,上一步骤获得)
GATEWAY_URL (支付宝网关地址,在开发 平台沙箱管理页面中获得)
SIGN_TYPE (签名类型)
NOTIFY_URL (异步回调地址,须是公网IP,后 面再解释)
RETURN_URL (同步回调地址,可以是私网IP)
/**
* 支付方法
* @param request
* @param response
* @return
*/
public String alipay(HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession();
String dona_id = request.getParameter("oid");
String money = request.getParameter("omoney");
Float dona_money = Float.parseFloat(money);
//把dona_id项目id 放在session中
session.setAttribute("dona_id", dona_id);
//生成订单号(支付宝的要求?)
String time = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
String user = UUID.randomUUID().toString().replace("-", "").