1.登录自己的支付宝支付宝开发者中心在控制台中找到研发服务
2.在沙箱应用中如图点击生成方法
3.Windows系统点击WINDOWS下载支付宝开放平台开发助手
4.下载完成后打开软件,点击生成密钥,这里的应用私钥后面还有用,暂时不要关闭软件
5.生成好然后回到支付宝开发者中心将刚刚生成好的密钥设置好
6.将支付宝支付的依赖导入项目中
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>3.3.49.ALL</version>
</dependency>
7.接下来就是写Java代码配置支付宝接口
public class AlipayConfig {
// 应用ID
public static String app_id = "";
// 商户私钥
public static String merchant_private_key = "";
// 支付宝公钥
public static String alipay_public_key = "";
// 服务器异步通知页面路径
public static String notify_url = "";
// 页面跳转同步通知页面路径
public static String return_url = "";
// 签名方式
public static String sign_type = "RSA2";
// 字符编码格式
public static String charset = "utf-8";
// 支付宝网关
public static String gatewayUrl = "https://openapi.alipaydev.com/gateway.do";
}
在支付宝沙箱应用中查看自己的APPID填入应用ID中
返回支付宝开放平台复制应用私钥粘贴到商户私钥中
在支付宝沙箱中复制支付宝公钥粘贴到支付宝公钥中
服务器异步通知页面路径简单的来说就是支付失败之后需要跳转的页面,页面跳转同步通知页面路径就是支付成功之后需要跳转的页面
8.然后再来编写控制层
@Controller
public class PayController {
long l = System.currentTimeMillis();
@RequestMapping("/Alipay")
public void payController(HttpServletRequest request, HttpServletResponse response,) throws IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//获得初始化的AlipayClient
AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, "json", AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);
//设置请求参数
AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
alipayRequest.setReturnUrl(AlipayConfig.return_url);
alipayRequest.setNotifyUrl(AlipayConfig.notify_url);
// 商户订单号
String out_trade_no = req.getParameter("order_number");
// 付款金额
String total_amount = req.getParameter("money");
// 订单名称
String subject = req.getParameter("order_name");
// 商品描述
String body = req.getParameter("describe");
alipayRequest.setBizContent("{\"out_trade_no\":\"" + out_trade_no + "\"," + "\"total_amount\":\"" + total_amount
+ "\"," + "\"subject\":\"" + subject + "\"," + "\"body\":\"" + body + "\","
+ "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");
System.out.println("{\"out_trade_no\":\"" + out_trade_no + "\"," + "\"total_amount\":\"" + total_amount + "\","
+ "\"subject\":\"" + subject + "\"," + "\"body\":\"" + body + "\","
+ "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");
//请求
String form = "";
try {
form = alipayClient.pageExecute(alipayRequest).getBody(); //调用SDK生成表单
} catch (AlipayApiException e) {
e.printStackTrace();
}
response.setContentType("text/html;charset=" + AlipayConfig.charset);
response.getWriter().write(form);//直接将完整的表单html输出到页面
response.getWriter().flush();
response.getWriter().close();
}
}
商户订单号、付款金额、订单名称都是必填的,且不能为null或空字符串,否则会无法识别订单信息
测试需要下载支付宝沙箱钱包,目前只支持安卓,苹果的下载不了
下载完成登录的账号和密码在沙箱账号中有
最后启动项目,就可以测试啦
付款成功后,浏览器会跳转到我们自己定义的同步回调页面,来验证是否付款成功等操作
学会了就拿去装13吧
第一次写,写得不好还请多担待,不懂得也可以在评论去提问