一、前言
之前的众酬网项目,涉及到资金流动
,近来 ITAEM 团队一个省立大学生创新创业项目,电子病历,挂号等功能,也涉及到资金流动。
下面笔者分享一下项目中使用涉及这方面的核心代码。抽取核心代码,写成一个 demo。
由于使用 支付宝支付
,可以使用沙箱,而使用 微信支付
,得先交 300 块,这对学生不是很友好。
于是打算先使用 支付宝支付,后面再加上微信支付,毕竟现在网站基本都支持支付宝支付、微信支付,如下图:
二、简单演示
简单说明:
①在输入框中输入金额 15(随便,沙箱可以任性充值~)
②点击按钮,进入支付页面
③根据①中的金额,使用手机的支付宝沙箱APP,扫码支付对应的金额 15 块
④提示支付成功页面
⑤跳转到自定义的页面(没写)
三、代码结构
四、核心代码内容
4.1.支付宝配置 Config
package com.cun.config;
/**
* 支付宝配置信息
* @author linhongcun
*
*/
public class AlipayConfig {
//开发者中心 / 研发服务 / 沙箱环境 / 沙箱应用/ 信息配置/ 必看部分/ APPID(填自己的,下面都是改过的~)
public static String app_id = "0123456789";
//开发者中心 / 研发服务 / 沙箱环境 / 沙箱应用/ 信息配置/ 必看部分/ 生成公钥时对应的私钥(填自己的,下面都是改过的~)
public static String private_key = "abcdefghijklmnopqrstuvwxyz0123456789";
//Controller Mapping:得放到服务器上,且使用域名解析 IP
public static String notify_url = "http://www.linhongcun.com/SpringBootPay-0.0.1-SNAPSHOT/pay/notifyUrl";
//Controller Mapping:得放到服务器上,且使用域名解析 IP
public static String return_url = "http://www.linhongcun.com/SpringBootPay-0.0.1-SNAPSHOT/pay/returnUrl";
//开发者中心 / 研发服务 / 沙箱环境 / 沙箱应用/ 信息配置/ 必看部分/ 支付宝网关(注意沙箱alipaydev,正式则为 alipay)
public static String url = "https://openapi.alipaydev.com/gateway.do";
public static String charset = "UTF-8";
public static String format = "json";
//开发者中心 / 研发服务 / 沙箱环境 / 沙箱应用/ 信息配置/ 必看部分/ 公钥(填自己的,下面都是改过的~)
public static String public_key = "abcdefghijklmnopqrstuvwxyz0123456789";
public static String signtype = "RSA2";
}
4.2.支付宝接口 Controller
package com.cun.controller;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.domain.AlipayTradePayModel;
import com.alipay.api.internal.util.AlipaySignature;
import com.alipay.api.request.AlipayTradePagePayRequest;
import com.cun.config.AlipayConfig;
import com.cun.util.DateUtil;
/**
* 支付宝支付Controller
* @author linhongcun
*
*/
@Controller
@RequestMapping("/alipay")
public class AlipayController {
// 获取配置文件的信息
String app_id = AlipayConfig.app_id;
String private_key = AlipayConfig