alipay
This commit is contained in:
parent
9c829617a3
commit
89c5bb9f57
|
|
@ -0,0 +1,73 @@
|
|||
package com.bonus.canteen.core.pay.controller;
|
||||
|
||||
import com.alipay.api.AlipayApiException;
|
||||
import com.alipay.api.internal.util.AlipaySignature;
|
||||
import com.bonus.canteen.core.pay.util.AlipayConfig;
|
||||
import io.swagger.annotations.Api;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@Api(tags = "支付异步通知")
|
||||
@RestController
|
||||
@RequestMapping("/alipay")
|
||||
public class NotifyCotroller {
|
||||
@RequestMapping("notify_url")
|
||||
public void getNotify(HttpServletRequest request, HttpServletResponse response) throws AlipayApiException, IOException {
|
||||
Map<String, String> params = new HashMap<String, String>();
|
||||
Map<String, String[]> requestParams = request.getParameterMap();
|
||||
Iterator<String> iter = requestParams.keySet().iterator();
|
||||
while(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 singVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.ALIPAY_PUBLIC_KEY, AlipayConfig.CHARSET, AlipayConfig.SIGNTYPE);
|
||||
response.setContentType("text/html;charset=UTF-8");
|
||||
PrintWriter out = response.getWriter();
|
||||
if (singVerified) {
|
||||
//商户订单号
|
||||
String out_trade_no = request.getParameter("out_trade_no");
|
||||
//商户订单号
|
||||
String total_amount = request.getParameter("total_amount");
|
||||
//支付宝交易号
|
||||
String trade_no = request.getParameter("trade_no");
|
||||
//交易状态
|
||||
String trade_status = request.getParameter("trade_status");
|
||||
if ("TRADE_FINISHED".equals(trade_status)) {
|
||||
//判断该笔订单是否已经做过处理
|
||||
//如果没做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详情,判断金额是否等于 total_amount,并执行商户的业务程序
|
||||
//如果做过处理,不执行商户的业务程序
|
||||
//注意: 退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态 TRADE_FINISHED
|
||||
} else if ("TRADE_SUCCESS".equals(trade_status)) {
|
||||
//判断该笔订单是否已经做过处理
|
||||
//如果没做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详情,判断金额是否等于 total_amount,并执行商户的业务程序
|
||||
//如果做过处理,不执行商户的业务程序
|
||||
//注意: 付款完成后,支付宝系统发送该交易状态 TRADE_SUCCESS
|
||||
}
|
||||
|
||||
out.println("success");
|
||||
} else {
|
||||
out.println("fail");
|
||||
//调试用,写文本函数记录程序运行情况是否正常
|
||||
//String reason = AlipaySignature.getSignCheckContentV1(params);
|
||||
//log.info(reason);
|
||||
}
|
||||
response.getWriter().flush();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
package com.bonus.canteen.core.pay.controller;
|
||||
|
||||
import com.alipay.api.AlipayApiException;
|
||||
import com.alipay.api.AlipayClient;
|
||||
import com.alipay.api.request.AlipayTradePagePayRequest;
|
||||
import com.alipay.api.response.AlipayTradePagePayResponse;
|
||||
import com.bonus.canteen.core.pay.util.AlipayConfig;
|
||||
import com.bonus.canteen.core.pay.dto.UpOrder;
|
||||
import io.swagger.annotations.Api;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
|
||||
@Slf4j
|
||||
@Api(tags = "支付接口")
|
||||
@RestController
|
||||
@RequestMapping("/alipay")
|
||||
public class PayCotroller {
|
||||
@Resource
|
||||
AlipayClient alipayClient;
|
||||
@Resource
|
||||
AlipayTradePagePayRequest alipayRequest;
|
||||
|
||||
@RequestMapping("pay")
|
||||
public void pay(UpOrder order, HttpServletResponse response) throws AlipayApiException, IOException {
|
||||
alipayRequest.setReturnUrl(AlipayConfig.return_url);
|
||||
alipayRequest.setNotifyUrl(AlipayConfig.notify_url);
|
||||
alipayRequest.setBizContent(
|
||||
"{\"out_trade_no\":\""+ order.getCode() +"\","
|
||||
+ "\"total_amount\":\""+ order.getPaymentAmount().toString() +"\","
|
||||
+ "\"subject\":\""+ order.getOrderName() +"\","
|
||||
+ "\"body\":\""+ order.getProductDesc() +"\","
|
||||
//+ "\"timeout_express\":\"10m\","
|
||||
+ "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");
|
||||
AlipayTradePagePayResponse alipayResponse = alipayClient.pageExecute(alipayRequest);
|
||||
log.info("alipay body = " + alipayResponse.getBody());
|
||||
log.info("alipay msg = " + alipayResponse.getMsg());
|
||||
response.setContentType("text/html;charset=UTF-8");
|
||||
response.getWriter().println(alipayResponse.getBody()); //write(alipayResponse.getBody());
|
||||
response.getWriter().flush();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
package com.bonus.canteen.core.pay.controller;
|
||||
|
||||
import com.alipay.api.AlipayApiException;
|
||||
import com.alipay.api.internal.util.AlipaySignature;
|
||||
import com.bonus.canteen.core.pay.util.AlipayConfig;
|
||||
import io.swagger.annotations.Api;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@Api(tags = "支付同步通知")
|
||||
@RestController
|
||||
@RequestMapping("/alipay")
|
||||
public class ReturnCotroller {
|
||||
@RequestMapping("return_url")
|
||||
public void getNotify(HttpServletRequest request, HttpServletResponse response) throws AlipayApiException, IOException {
|
||||
Map<String, String> params = new HashMap<String, String>();
|
||||
Map<String, String[]> requestParams = request.getParameterMap();
|
||||
Iterator<String> iter = requestParams.keySet().iterator();
|
||||
while(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 singVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.ALIPAY_PUBLIC_KEY, AlipayConfig.CHARSET, AlipayConfig.SIGNTYPE);
|
||||
response.setContentType("text/html;charset=UTF-8");
|
||||
PrintWriter out = response.getWriter();
|
||||
if (singVerified) {
|
||||
//商户订单号
|
||||
String out_trade_no = request.getParameter("out_trade_no");
|
||||
//商户订单号
|
||||
String total_amount = request.getParameter("total_amount");
|
||||
//支付宝交易号
|
||||
String trade_no = request.getParameter("trade_no");
|
||||
//交易状态
|
||||
String trade_status = request.getParameter("trade_status");
|
||||
out.println("trade_no:" + trade_no + "<br>out_trade_no:" + out_trade_no +
|
||||
"<br>total_amount:" + total_amount + "<br>trade_status" + trade_status);
|
||||
} else {
|
||||
out.println("fail");
|
||||
//调试用,写文本函数记录程序运行情况是否正常
|
||||
//String reason = AlipaySignature.getSignCheckContentV1(params);
|
||||
//log.info(reason);
|
||||
}
|
||||
response.getWriter().flush();
|
||||
}
|
||||
}
|
||||
|
|
@ -1,226 +0,0 @@
|
|||
package com.bonus.canteen.core.pay.controller;
|
||||
|
||||
import com.alipay.api.AlipayApiException;
|
||||
import com.alipay.api.AlipayClient;
|
||||
import com.alipay.api.DefaultAlipayClient;
|
||||
import com.alipay.api.request.AlipayTradePagePayRequest;
|
||||
import com.alipay.api.request.AlipayTradeRefundRequest;
|
||||
import com.alipay.api.response.AlipayTradePagePayResponse;
|
||||
import com.bonus.canteen.core.pay.config.AlipayConfig;
|
||||
import com.bonus.canteen.core.pay.dto.AliOrderDTO;
|
||||
import com.bonus.canteen.core.pay.dto.UPOrder;
|
||||
import io.swagger.annotations.Api;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Map;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
import javax.servlet.http.HttpServlet;
|
||||
|
||||
@Slf4j
|
||||
@Api(tags = "支付接口")
|
||||
@RestController
|
||||
@RequestMapping("/alipay")
|
||||
public class payCotroller {
|
||||
/**
|
||||
*@description: 生成充值余额订单(支付宝充值)
|
||||
* https://www.cnblogs.com/chenyuanbo/p/10523835.html
|
||||
* https://www.cnblogs.com/chenyuanbo/p/10524268.html
|
||||
*@author:cyb
|
||||
*@date: 2019-03-11 10:12
|
||||
*@param:
|
||||
*@return: net.sf.json.JSONArray
|
||||
*/
|
||||
@RequestMapping("topUpBalance")
|
||||
public void topUpBalance(UPOrder order, HttpServletResponse response) {
|
||||
//获得初始化的AlipayClient
|
||||
AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.URL, AlipayConfig.APPID,
|
||||
AlipayConfig.RSA_PRIVATE_KEY, "json", AlipayConfig.CHARSET,
|
||||
AlipayConfig.ALIPAY_PUBLIC_KEY, AlipayConfig.SIGNTYPE);
|
||||
//设置请求参数
|
||||
AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
|
||||
alipayRequest.setReturnUrl(AlipayConfig.return_url);
|
||||
alipayRequest.setNotifyUrl(AlipayConfig.notify_url);
|
||||
|
||||
//商户订单号,商户网站订单系统中唯一订单号,必填
|
||||
String out_trade_no = new String(order.getCode());
|
||||
//付款金额,必填
|
||||
String total_amount = new String(order.getPaymentAmount().toString());
|
||||
//订单名称,必填
|
||||
String subject = new String(order.getOrderName());
|
||||
//商品描述,可空
|
||||
String body = new String(order.getProductDesc());
|
||||
alipayRequest.setBizContent("{\"out_trade_no\":\""+ out_trade_no +"\","
|
||||
+ "\"total_amount\":\""+ total_amount +"\","
|
||||
+ "\"subject\":\""+ subject +"\","
|
||||
+ "\"body\":\""+ body +"\","
|
||||
+ "\"timeout_express\":\"10m\","
|
||||
+ "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");
|
||||
|
||||
try {
|
||||
AlipayTradePagePayResponse alipayResponse = alipayClient.pageExecute(alipayRequest);
|
||||
log.info("alipay body = " + alipayResponse.getBody());
|
||||
log.info("alipay msg = " + alipayResponse.getMsg());
|
||||
response.setContentType("text/html;charset=UTF-8");
|
||||
response.getWriter().write(alipayResponse.getBody());
|
||||
response.getWriter().flush();
|
||||
} catch (Exception e) {
|
||||
log.error("充值异常, ", e.getMessage());
|
||||
response.setContentType("text/html;charset=utf-8");
|
||||
try {
|
||||
response.getWriter().write("1");// 直接将完整的表单html输出到页面
|
||||
response.getWriter().flush();
|
||||
} catch (IOException e1) {
|
||||
log.error("输出异常, ", e1.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@WebServlet("/order/confirm")
|
||||
public class OrderServlet extends HttpServlet{
|
||||
@Override
|
||||
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
System.out.println("开始处理OrderServlet的服务");
|
||||
String title = "杨先生";
|
||||
String total = "6";
|
||||
String message = "如有什么建议欢迎留言评论";
|
||||
//生成订单号
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||
String orderSn = simpleDateFormat.format(Calendar.getInstance().getTime());
|
||||
//向支付宝发送请求
|
||||
//获得初始化的AlipayClient
|
||||
AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.APPID,
|
||||
AlipayConfig.RSA_PRIVATE_KEY, AlipayConfig.FORMAT_JSON, AlipayConfig.CHARSET, AlipayConfig.ALIPAY_PUBLIC_KEY,
|
||||
AlipayConfig.SIGNTYPE);
|
||||
//设置请求参数
|
||||
AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
|
||||
alipayRequest.setReturnUrl(AlipayConfig.return_url);
|
||||
alipayRequest.setNotifyUrl(AlipayConfig.notify_url);
|
||||
//商户订单号,商户网站订单系统中唯一订单号,必填
|
||||
String out_trade_no = orderSn;
|
||||
//付款金额,必填
|
||||
String total_amount = total;
|
||||
//订单名称,必填
|
||||
String subject = title;
|
||||
//商品描述,可空
|
||||
String body = message;
|
||||
alipayRequest.setBizContent("{\"out_trade_no\":\"" + out_trade_no
|
||||
+ "\"," + "\"total_amount\":\"" + total_amount
|
||||
+ "\"," + "\"subject\":\"" + subject
|
||||
+ "\"," + "\"body\":\"" + body + "\","
|
||||
// + "\"timeout_express\":\"10m\","
|
||||
+ "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");
|
||||
AlipayTradePagePayResponse alipayResponse = null;
|
||||
try {
|
||||
alipayResponse=alipayClient.pageExecute(alipayRequest);
|
||||
System.out.println(alipayResponse.getBody());
|
||||
System.out.println(alipayResponse.getMsg());
|
||||
} catch (AlipayApiException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
response.setContentType("text/html;charset=UTF-8");
|
||||
response.getWriter().write(alipayResponse.getBody());
|
||||
}
|
||||
}
|
||||
|
||||
@WebServlet("/notify_url")
|
||||
public class NotifyServlet extends HttpServlet{
|
||||
@Override
|
||||
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
System.out.println("接收到支付宝的异步通知请求——");
|
||||
Map<String,String[]> parameterMap = request.getParameterMap();
|
||||
System.out.println(parameterMap);
|
||||
//成功处理后返回success
|
||||
response.getWriter().write("success");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*@description:支付宝退款
|
||||
*@author:cyb
|
||||
*@date: 2019-03-13 10:48
|
||||
*@param: response
|
||||
*@param: aliOrderDTO
|
||||
*@return: void
|
||||
*/
|
||||
@RequestMapping("aliRefund")
|
||||
public void aliRefund(HttpServletResponse response, AliOrderDTO aliOrderDTO){
|
||||
try {
|
||||
//获得初始化的AlipayClient
|
||||
AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.URL, AlipayConfig.APPID,
|
||||
AlipayConfig.RSA_PRIVATE_KEY, AlipayConfig.FORMAT_JSON, AlipayConfig.CHARSET,
|
||||
AlipayConfig.ALIPAY_PUBLIC_KEY, AlipayConfig.SIGNTYPE);
|
||||
//设置请求参数
|
||||
AlipayTradeRefundRequest alipayRequest = new AlipayTradeRefundRequest();
|
||||
//商户订单号,商户网站订单系统中唯一订单号
|
||||
String out_trade_no = aliOrderDTO.getCode();
|
||||
//支付宝交易号
|
||||
String trade_no =aliOrderDTO.getAliTransactionNum();
|
||||
//请二选一设置
|
||||
//需要退款的金额,该金额不能大于订单金额,必填
|
||||
String refund_amount = aliOrderDTO.getPaymentAmount().toString();
|
||||
//退款的原因说明
|
||||
String refund_reason = aliOrderDTO.getRefundCause();
|
||||
//标识一次退款请求,同一笔交易多次退款需要保证唯一,如需部分退款,则此参数必传
|
||||
String out_request_no = aliOrderDTO.getRefundNum();
|
||||
alipayRequest.setBizContent("{\"out_trade_no\":\""+ out_trade_no +"\","
|
||||
+ "\"trade_no\":\""+ trade_no +"\","
|
||||
+ "\"refund_amount\":\""+ refund_amount +"\","
|
||||
+ "\"refund_reason\":\""+ refund_reason +"\","
|
||||
+ "\"out_request_no\":\""+ out_request_no +"\"}");
|
||||
|
||||
//请求
|
||||
String result = alipayClient.execute(alipayRequest).getBody();
|
||||
response.setContentType("text/html;charset=utf-8");
|
||||
response.getWriter().write(result); //直接将完整的表单html输出到页面
|
||||
response.getWriter().flush();
|
||||
} catch (Exception e){
|
||||
e.printStackTrace();
|
||||
String result="1";
|
||||
response.setContentType("text/html;charset=utf-8");
|
||||
try {
|
||||
response.getWriter().write(result);// 直接将完整的表单html输出到页面
|
||||
response.getWriter().flush();
|
||||
} catch (IOException e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*@description: 异步支付的回调
|
||||
*@author:cyb
|
||||
*@date: 2019-03-12 14:24
|
||||
*@param: request
|
||||
*@return: void
|
||||
*/
|
||||
// @RequestMapping("notify_url")
|
||||
// @ResponseBody
|
||||
// public JSONArray notify_url(HttpServletRequest request){
|
||||
// System.out.println("异步回调");
|
||||
// return msg200();
|
||||
// }
|
||||
|
||||
/**
|
||||
*@description:同步的回调方法
|
||||
*@author:cyb
|
||||
*@date: 2019-03-12 14:23
|
||||
*@param: request
|
||||
*@return: void
|
||||
*/
|
||||
// @RequestMapping("return_url")
|
||||
// @ResponseBody
|
||||
// public JSONArray return_url(HttpServletRequest request){
|
||||
// System.out.println("同步回调");
|
||||
// return msg200();
|
||||
// }
|
||||
|
||||
}
|
||||
|
|
@ -4,18 +4,14 @@ import lombok.Data;
|
|||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
public class UPOrder {
|
||||
//get/set自己操作
|
||||
private String code;//商户订单号
|
||||
private String orderName;//订单名称
|
||||
private BigDecimal paymentAmount;//付款金额
|
||||
public class UpOrder {
|
||||
private String code;//商户订单号, 商户网站订单系统中唯一订单号,必填
|
||||
private String orderName;//订单名称, 必填
|
||||
private BigDecimal paymentAmount;//付款金额, 必填
|
||||
private String productDesc;//商品描述
|
||||
private String createBy;//创建人Code
|
||||
private Long createTime;//创建时间(时间戳)
|
||||
private Integer createByType;//创建人类型 1-专家 2-企业用户
|
||||
private Boolean status;//是否付款 true - 已付 false-未付
|
||||
private Long payTime;//订单支付时间-支付后才存在 (时间戳)
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +1,5 @@
|
|||
package com.bonus.canteen.core.pay.config;
|
||||
package com.bonus.canteen.core.pay.util;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class AlipayConfig {
|
||||
// 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
|
||||
public static String APPID = "2016092700611035";
|
||||
|
|
@ -11,7 +8,7 @@ public class AlipayConfig {
|
|||
// 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
|
||||
public static String ALIPAY_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz9YczyBgwO1x5j6UiML2VQRlNcLFWCmnLbpeb+GyUldy3tMxoVfNhiD9Acl/bTc1Pv/5GsRYEbHWcj70dvIg23/SGlWfp/nGRwNq73r5p7c6It8DEhIX4vIB5mN/hblAC5iAnCvGvKzVeao6c0QMjm9CES4dTsbQm+uHGikIryLejkxJi78ifQRXWGzksR1qWjnelDKF8xvYFM6EZDEIr/Wxj5Gzo8Ul72GVyFzBfTh/mh0NKAfeDnf2P7nNcWr9t4TxKux32hDHTXN2XkcQtiURmZtBxJ9+tIUOX3bhOUB5wtIWr6XnLzzZpib9fCpmDyArytFhDjV0M2ZHe4nlmQIDAQAB";
|
||||
// 服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
|
||||
public static String notify_url = "http://d9tc3e.natappfree.cc/alipay/notify_url";
|
||||
public static String notify_url = "http://aa7xmz.natappfree.cc/alipay/notify_url";
|
||||
// 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问,//标红的域名为内网穿透工具生成的域名,没启动一次穿透工具,生成的域名都不一样,所有启动一次都需要进行修改
|
||||
public static String return_url = "http://aa7xmz.natappfree.cc/alipay/return_url";
|
||||
//请求网关地址
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package com.bonus.canteen.core.pay.util;
|
||||
|
||||
import com.alipay.api.AlipayClient;
|
||||
import com.alipay.api.DefaultAlipayClient;
|
||||
import com.alipay.api.request.AlipayTradePagePayRequest;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
public class AlipayUtil {
|
||||
@Bean
|
||||
AlipayClient alipayClient() {
|
||||
return new DefaultAlipayClient(AlipayConfig.URL, AlipayConfig.APPID,
|
||||
AlipayConfig.RSA_PRIVATE_KEY, AlipayConfig.FORMAT_JSON, AlipayConfig.CHARSET,
|
||||
AlipayConfig.ALIPAY_PUBLIC_KEY, AlipayConfig.SIGNTYPE);
|
||||
}
|
||||
|
||||
@Bean
|
||||
AlipayTradePagePayRequest alipayTradePagePayRequest() {
|
||||
return new AlipayTradePagePayRequest();
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue