1.你应该知道的前提知识
1.1沙箱环境
沙箱环境 (Beta) 是支付宝开放平台为您提供的与线上环境完全隔离的联调测试环境,在沙箱环境中完成的调用不会对线上数据造成任何影响,尤其适合涉及资金链路的能力的调试。
1.2 配置沙箱应用环境
开放平台-沙箱环境 (alipay.com)
使用支付宝,扫描后,进行简单用户注册
使用开发者账号登录 开放平台控制台 > 开发服务,(用支付宝扫码,授权登录,然后根据页面输入注册信息)
输入注册后,即可点击 研发服务 即可进入 沙箱环境。
1.3 三个重要的信息
商户UID,公钥 ,私钥,程序中需要使用:
点击3 可以看公私匙
 throws AlipayApiException {
Map map = new HashMap<>();
map.put("out_trade_no",orderID);
map.put("trade_no",orderID);
map.put("total_amount",total_amount);
map.put("subject",subject);
// 该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m。
String timeout_express = "1c";
map.put("timeout_express",timeout_express);
map.put("product_code","FAST_INSTANT_TRADE_PAY");
AlipayClient alipayClient = getAlipayClient();
//设置请求参数
AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
alipayRequest.setReturnUrl(AlipayConfig.return_url);
alipayRequest.setNotifyUrl(AlipayConfig.notify_url);
alipayRequest.setBizContent(JSON.toJSONString(map));
String result = alipayClient.pageExecute(alipayRequest).getBody();
return result;
}
private static AlipayClient getAlipayClient() {
return new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, "json", AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);
}
/**
* 支付后,用来查询订单状态信息
* @param map
* @return
* @throws AlipayApiException
*/
public AlipayTradeQueryResponse queryOrder(Map map) throws AlipayApiException {
AlipayClient alipayClient = getAlipayClient();
//构造API请求
AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
request.setBizContent(JSON.toJSONString(map));//订单允许的最晚付款时间
//发送请求
AlipayTradeQueryResponse response = alipayClient.certificateExecute(request);
System.out.println("请求支付宝查询接口返回的结果为:"+response.getBody());
return response;
}
}
5.项目中使用工具类
去支付
@ResponseBody
@RequestMapping(value = "goPay", produces = "text/html; charset=UTF-8")
public String goPay(Orders orders) throws AlipayApiException {
String s = AlibabapayGateWayUtils.createOrder(orders.getId(), orders.getTotalMoney()+"", "测试数据", "描述");
return s;
}
6.效果
6.1 商品列表
6.2 购买
6.3 跳转到订单页面
6.4 点击支付宝支付
6.4.1跳转到支付页面
如果使用点下一步,则进入下图
6.4.2 支付页面
输入密码:111111
6.4.3 交易成功
6.4.4 自动跳转到 回调页面
即AilipayConfig的配置的回调地址