身份验证
parent
403b4c34c8
commit
399e9bb1c6
|
@ -1,60 +0,0 @@
|
||||||
package com.group.order.config;
|
|
||||||
|
|
||||||
import cn.hutool.json.JSONObject;
|
|
||||||
import com.alipay.api.AlipayApiException;
|
|
||||||
import com.alipay.api.AlipayClient;
|
|
||||||
import com.alipay.api.request.AlipayTradePagePayRequest;
|
|
||||||
import com.song.order.entity.PayEntity;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 支付宝封装工具
|
|
||||||
*/
|
|
||||||
@Component
|
|
||||||
public class AliPay {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private AlipayClient alipayClient;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private AliPayConfig aliPayConfig;
|
|
||||||
|
|
||||||
public void pay(PayEntity payEntity, HttpServletResponse response) {
|
|
||||||
AlipayTradePagePayRequest request = getAlipayTradePagePayRequest(payEntity);
|
|
||||||
// 执行请求,拿到响应的结果,返回给浏览器
|
|
||||||
String form = "";
|
|
||||||
try {
|
|
||||||
form = alipayClient.pageExecute(request).getBody(); // 调用SDK生成表单
|
|
||||||
} catch (AlipayApiException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
response.setContentType("text/html;charset=" + aliPayConfig.getCharset());
|
|
||||||
try {
|
|
||||||
response.getWriter().write(form);// 直接将完整的表单html输出到页面
|
|
||||||
response.getWriter().flush();
|
|
||||||
response.getWriter().close();
|
|
||||||
} catch (IOException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private AlipayTradePagePayRequest getAlipayTradePagePayRequest(PayEntity payEntity) {
|
|
||||||
AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
|
|
||||||
request.setNotifyUrl(aliPayConfig.getNotifyUrl());
|
|
||||||
JSONObject bizContent = new JSONObject();
|
|
||||||
bizContent.set("out_trade_no", payEntity.getPayId()); // 我们自己生成的订单编号
|
|
||||||
bizContent.set("total_amount", payEntity.getPrice()); // 订单的总金额
|
|
||||||
bizContent.set("subject", payEntity.getOrderTitle()); // 支付的名称
|
|
||||||
bizContent.set("product_code", aliPayConfig.getProductCode());
|
|
||||||
request.setBizContent(bizContent.toString());
|
|
||||||
request.setReturnUrl(aliPayConfig.getReturnUrl());// 支付完成后自动跳转到本地页面的路径
|
|
||||||
return request;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,40 +0,0 @@
|
||||||
package com.group.order.config;
|
|
||||||
|
|
||||||
import com.alipay.api.AlipayClient;
|
|
||||||
import com.alipay.api.DefaultAlipayClient;
|
|
||||||
import lombok.Data;
|
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
@Component
|
|
||||||
@Data
|
|
||||||
@ConfigurationProperties(prefix = "alipay")
|
|
||||||
public class AliPayConfig {
|
|
||||||
|
|
||||||
// 支付宝的AppId
|
|
||||||
private String appId;
|
|
||||||
// 应用私钥
|
|
||||||
private String appPrivateKey;
|
|
||||||
// 支付宝公钥
|
|
||||||
private String alipayPublicKey;
|
|
||||||
// 支付宝通知本地的接口完整地址
|
|
||||||
private String notifyUrl;
|
|
||||||
//支付宝跳转的地址
|
|
||||||
private String gatewayUrl ;
|
|
||||||
private String format;
|
|
||||||
private String charset;
|
|
||||||
//签名方式
|
|
||||||
private String signType;
|
|
||||||
//回调本地地址
|
|
||||||
private String returnUrl;
|
|
||||||
|
|
||||||
private String productCode;
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public AlipayClient alipayClient(){
|
|
||||||
return new DefaultAlipayClient(gatewayUrl,appId,appPrivateKey,format,charset,alipayPublicKey,signType);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
package com.group.order.config;
|
|
||||||
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.web.cors.CorsConfiguration;
|
|
||||||
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
|
|
||||||
import org.springframework.web.filter.CorsFilter;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 跨域配置
|
|
||||||
*/
|
|
||||||
@Configuration
|
|
||||||
public class CorsConfig {
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public CorsFilter corsFilter() {
|
|
||||||
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
|
|
||||||
CorsConfiguration corsConfiguration = new CorsConfiguration();
|
|
||||||
corsConfiguration.addAllowedOrigin("*"); // 1 设置访问源地址
|
|
||||||
corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头
|
|
||||||
corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法
|
|
||||||
source.registerCorsConfiguration("/**", corsConfiguration); // 4 对接口配置跨域设置
|
|
||||||
return new CorsFilter(source);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue