支付宝沙箱环境调用

不少同学在写商城想项目的时候,有遇到支付环节。今天我这里分享一下,JAVA项目,如何调用支付宝的沙箱环境。

首先第一步:百度搜索支付宝开放平台

在这里插入图片描述

第二步:登录进入首页,点击进入管理中心

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

特别注意:到这里下载生成这个码的一个软件,这是支付宝为我们提供的。这里也有详细的说明,我就不再说了。
https://docs.open.alipay.com/291/105971
此外,我们还需要下载支付宝给的一个 demo
https://docs.open.alipay.com/270/106291/
如何修改,具体如下:

1.复制

1.需要将这目录下\src\com\alipay\config 的AlipayConfig.java放到你的项目中。
2.\WebContent 下的所有jsp复制到项目中
3.\WebContent\WEB-INF\lib 所有.jar复制到项目中。
在这里插入图片描述

到此我们复制工作已经完成,接下来我们来修改这个demo

2.修改

在这里插入图片描述

修改完成我们的支付沙箱环境也已经算是搭建好了。但是,大家在做项目的时候一定会有这样的一个逻辑,就是让支付成功之后才可以生成订单,或者修改订单状态。目前我所使用的方法就是在return_url.jsp 这个里写一个js,自动提交form表单。虽然有个bug,但对于初学者,这是一个不错的解决方案。下面附上jsp代码。
这是支付宝,返回订单生成页的jsp,如果提前关掉该页面,则自动提交表单失效。

<%@ page language="java" contentType="text/html; charset=utf-8"	pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>电脑网站支付return_url</title>
</head>
<%@ page import="java.util.*"%>
<%@ page import="java.util.Map"%>
<%@ page import="com.movie.utils.*"%>
<%@ page import="com.alipay.api.*"%>
<%@ page import="com.alipay.api.internal.util.*"%>
<%
/* *
 * 功能:支付宝服务器同步通知页面
 * 日期:2017-03-30
 * 说明:
 * 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
 * 该代码仅供学习和研究支付宝接口使用,只是提供一个参考。


 *************************页面功能说明*************************
 * 该页面仅做页面展示,业务逻辑处理请勿在该页面执行
 */
 
	//获取支付宝GET过来反馈信息
	Map<String,String> params = new HashMap<String,String>();
	Map<String,String[]> requestParams = request.getParameterMap();
	for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext();) {
		String name = (String) iter.next();
		String[] values = (String[]) requestParams.get(name);
		String valueStr = "";
		for (int i = 0; i < values.length; i++) {
			valueStr = (i == values.length - 1) ? valueStr + values[i]
					: valueStr + values[i] + ",";
		}
		//乱码解决,这段代码在出现乱码时使用
		valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");
		params.put(name, valueStr);
	}
	
	boolean signVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.alipay_public_key, AlipayConfig.charset, AlipayConfig.sign_type); //调用SDK验证签名

	//——请在这里编写您的程序(以下代码仅作参考)——
	if(signVerified) {
		//商户订单号
		String out_trade_no = new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"),"UTF-8");
	
		//支付宝交易号
		String trade_no = new String(request.getParameter("trade_no").getBytes("ISO-8859-1"),"UTF-8");
	
		//付款金额
		String total_amount = new String(request.getParameter("total_amount").getBytes("ISO-8859-1"),"UTF-8");
		
		out.println("trade_no:"+trade_no+"<br/>out_trade_no:"+out_trade_no+"<br/>total_amount:"+total_amount);
	}else {
		out.println("验签失败");
	}
	//——请在这里编写您的程序(以上代码仅作参考)——
%>
<body>
<script type="text/javascript">
  function dtime(){
  setInterval(sub(), 30000);
  }
  function sub(){
      document.getElementById("frm").submit();
  }
  </script>
  <body onload="dtime();">
  <form action="getOrder" method="post" id="frm">
  <input type="hidden" name="order_where" value="${order.order_where}">
  <input type="hidden" name="order_id" value="${order.order_id}">
  <input type="hidden" name="order_seq" value="${order.order_seq}">
  <input type="submit" >
  </form>
         
</body>
</html>
发布了14 篇原创文章 · 获赞 2 · 访问量 304

猜你喜欢

转载自blog.csdn.net/qq_43745587/article/details/102998141