mirror of
https://gitee.com/lab1024/smart-admin.git
synced 2025-10-03 02:36:39 +08:00
adding alipay coding
This commit is contained in:
parent
493484f071
commit
ca38a44cad
@ -0,0 +1,41 @@
|
|||||||
|
package net.lab1024.smartadmin.module.system.alipay;
|
||||||
|
|
||||||
|
import com.alipay.api.AlipayClient;
|
||||||
|
import com.alipay.api.DefaultAlipayClient;
|
||||||
|
import com.alipay.api.domain.AlipayTradePrecreateModel;
|
||||||
|
import com.alipay.api.request.AlipayTradePrecreateRequest;
|
||||||
|
import com.alipay.api.response.AlipayTradePrecreateResponse;
|
||||||
|
import net.lab1024.smartadmin.module.system.alipay.alipayModel.AliPayEntity;
|
||||||
|
import net.lab1024.smartadmin.module.system.alipay.conf.AlipayConfig;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class AliPayService {
|
||||||
|
|
||||||
|
public static String notify_url = "http://47.96.75.242:10086/smart-admin-api/royalcanin/updateOrderAliPay";
|
||||||
|
|
||||||
|
public String generateQRCode(AliPayEntity aliPayEntity) throws Exception {
|
||||||
|
AlipayTradePrecreateModel model = new AlipayTradePrecreateModel();
|
||||||
|
model.setSubject("皇家宠物食品官方商城");
|
||||||
|
model.setTotalAmount(aliPayEntity.getTotal_amount());
|
||||||
|
model.setStoreId(UUID.randomUUID().toString());
|
||||||
|
model.setTimeoutExpress("3m");
|
||||||
|
model.setOutTradeNo(aliPayEntity.getOut_trade_no());
|
||||||
|
model.setBody(aliPayEntity.getBody());
|
||||||
|
model.setGoodsDetail(aliPayEntity.getGoodsDetail());
|
||||||
|
AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();
|
||||||
|
request.setBizModel(model);
|
||||||
|
request.setNotifyUrl(notify_url);
|
||||||
|
AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, "json", AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);
|
||||||
|
AlipayTradePrecreateResponse alipayTradePrecreateResponse = alipayClient.execute(request);
|
||||||
|
if (alipayTradePrecreateResponse.isSuccess()) {
|
||||||
|
String code = alipayTradePrecreateResponse.getQrCode();
|
||||||
|
return code;
|
||||||
|
} else {
|
||||||
|
throw new RuntimeException("支付宝生成二维码失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -33,8 +33,6 @@ import java.util.UUID;
|
|||||||
@RestController
|
@RestController
|
||||||
public class AlipayController {
|
public class AlipayController {
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private GoodService goodService;
|
|
||||||
|
|
||||||
public static String notify_url = "";
|
public static String notify_url = "";
|
||||||
|
|
||||||
@ -42,7 +40,7 @@ public class AlipayController {
|
|||||||
* @Description: 前往支付宝第三方网关进行支付
|
* @Description: 前往支付宝第三方网关进行支付
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@RequestMapping("royalcanin/aliPayUnifiedOrder")
|
@PostMapping("royalcanin/aliPayUnifiedOrder")
|
||||||
public void code(@RequestBody AliPayEntity aliPayEntity, HttpServletResponse response) throws Exception{
|
public void code(@RequestBody AliPayEntity aliPayEntity, HttpServletResponse response) throws Exception{
|
||||||
|
|
||||||
//---------------------------------------
|
//---------------------------------------
|
||||||
|
@ -1,12 +1,16 @@
|
|||||||
package net.lab1024.smartadmin.module.system.royalcanin.good;
|
package net.lab1024.smartadmin.module.system.royalcanin.good;
|
||||||
|
|
||||||
|
|
||||||
|
import com.alipay.api.internal.util.AlipaySignature;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import net.lab1024.smartadmin.common.anno.OperateLog;
|
import net.lab1024.smartadmin.common.anno.OperateLog;
|
||||||
import net.lab1024.smartadmin.common.domain.ResponseDTO;
|
import net.lab1024.smartadmin.common.domain.ResponseDTO;
|
||||||
import net.lab1024.smartadmin.common.heartbeat.StringUtil;
|
import net.lab1024.smartadmin.common.heartbeat.StringUtil;
|
||||||
import net.lab1024.smartadmin.constant.SwaggerTagConst;
|
import net.lab1024.smartadmin.constant.SwaggerTagConst;
|
||||||
|
import net.lab1024.smartadmin.module.system.alipay.AliPayService;
|
||||||
|
import net.lab1024.smartadmin.module.system.alipay.alipayModel.AliPayEntity;
|
||||||
|
import net.lab1024.smartadmin.module.system.alipay.conf.AlipayConfig;
|
||||||
import net.lab1024.smartadmin.module.system.qrcode.QRCodeUtil;
|
import net.lab1024.smartadmin.module.system.qrcode.QRCodeUtil;
|
||||||
import net.lab1024.smartadmin.module.system.royalcanin.good.constant.OrderResponseCodeConst;
|
import net.lab1024.smartadmin.module.system.royalcanin.good.constant.OrderResponseCodeConst;
|
||||||
import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrdersEntity;
|
import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrdersEntity;
|
||||||
@ -24,9 +28,7 @@ import java.io.BufferedReader;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.util.List;
|
import java.util.*;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.SortedMap;
|
|
||||||
|
|
||||||
@Api(tags = {SwaggerTagConst.Admin.MANAGER_MALL_API})
|
@Api(tags = {SwaggerTagConst.Admin.MANAGER_MALL_API})
|
||||||
@OperateLog
|
@OperateLog
|
||||||
@ -39,6 +41,9 @@ public class OrderController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private WxpayService wxpayService;
|
private WxpayService wxpayService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AliPayService aliPayService;
|
||||||
|
|
||||||
@ApiOperation(value = "微信支付订单", notes = "生成订单")
|
@ApiOperation(value = "微信支付订单", notes = "生成订单")
|
||||||
@PostMapping("royalcanin/generateOrderWX")
|
@PostMapping("royalcanin/generateOrderWX")
|
||||||
public ResponseDTO<String> generateOrderWX(@RequestBody List<OrdersEntity> ordersEntityList, HttpServletResponse response) throws Exception {
|
public ResponseDTO<String> generateOrderWX(@RequestBody List<OrdersEntity> ordersEntityList, HttpServletResponse response) throws Exception {
|
||||||
@ -76,7 +81,7 @@ public class OrderController {
|
|||||||
|
|
||||||
|
|
||||||
@ApiOperation(value = "更新订单", notes = "更新订单")
|
@ApiOperation(value = "更新订单", notes = "更新订单")
|
||||||
@RequestMapping(value = "royalcanin/updateOrderWX",method = RequestMethod.POST)
|
@PostMapping(value = "royalcanin/updateOrderWX")
|
||||||
public void updateOrder(HttpServletRequest request, HttpServletResponse response){
|
public void updateOrder(HttpServletRequest request, HttpServletResponse response){
|
||||||
wxpayService.orderCallBack(request,response);
|
wxpayService.orderCallBack(request,response);
|
||||||
}
|
}
|
||||||
@ -88,4 +93,65 @@ public class OrderController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "支付宝支付订单", notes = "生成订单")
|
||||||
|
@PostMapping("royalcanin/generateOrderAlipay")
|
||||||
|
public ResponseDTO<String> generateOrderAliPay(@RequestBody List<OrdersEntity> ordersEntityList, HttpServletResponse response) throws Exception {
|
||||||
|
StringBuffer productId = new StringBuffer();
|
||||||
|
StringBuffer productName = new StringBuffer();
|
||||||
|
String memberId = "";
|
||||||
|
String mobile = "";
|
||||||
|
int buyCount = 0;
|
||||||
|
double total_fee = 0 ;
|
||||||
|
AliPayEntity aliPayEntity = new AliPayEntity();
|
||||||
|
OrdersEntity ordersEntity = new OrdersEntity();
|
||||||
|
for (OrdersEntity ordersEntitys:ordersEntityList) {
|
||||||
|
productId.append(ordersEntitys.getProductId()+",");
|
||||||
|
productName.append(ordersEntitys.getProductName()+",");
|
||||||
|
total_fee = total_fee + Double.parseDouble(ordersEntitys.getPayAmount())*ordersEntitys.getBuyCount();
|
||||||
|
memberId = ordersEntitys.getMemberId();
|
||||||
|
mobile = ordersEntitys.getPhoneNumber();
|
||||||
|
buyCount = buyCount + ordersEntitys.getBuyCount();
|
||||||
|
}
|
||||||
|
ordersEntity.setProductId(productId.substring(0,productId.length()-1));
|
||||||
|
ordersEntity.setProductName(productName.substring(0,productName.length()-1));
|
||||||
|
ordersEntity.setOrderAmount(StringUtil.toString(total_fee));
|
||||||
|
ordersEntity.setMemberId(memberId);
|
||||||
|
ordersEntity.setPhoneNumber(mobile);
|
||||||
|
ordersEntity.setBuyCount(buyCount);
|
||||||
|
ordersEntity.setPayType("2");
|
||||||
|
if(orderService.generateOrder(ordersEntity) == 1){
|
||||||
|
aliPayEntity.setProduct_code(ordersEntity.getProductId());
|
||||||
|
aliPayEntity.setTotal_amount(StringUtil.toString(total_fee));
|
||||||
|
aliPayEntity.setOut_trade_no(ordersEntity.getOrderNo());
|
||||||
|
QRCodeUtil.createCodeToOutputStream(aliPayService.generateQRCode(aliPayEntity), response.getOutputStream());
|
||||||
|
}
|
||||||
|
return ResponseDTO.wrap(OrderResponseCodeConst.GENERATE_ORDER_FAIL);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("royalcanin/updateOrderAliPay")
|
||||||
|
public String alipayNotify(HttpServletRequest request) throws Exception {
|
||||||
|
// 获取支付宝的请求信息
|
||||||
|
Map<String, String> map = new HashMap<>();
|
||||||
|
Map<String, String[]> requestParams = request.getParameterMap();
|
||||||
|
if(requestParams.isEmpty()) {
|
||||||
|
return "failure";
|
||||||
|
}
|
||||||
|
// 将 Map<String,String[]> 转为 Map<String,String>
|
||||||
|
for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext();) {
|
||||||
|
String name = iter.next();
|
||||||
|
String[] values = requestParams.get(name);
|
||||||
|
String valueStr = "";
|
||||||
|
for (int i = 0; i < values.length; i++) {
|
||||||
|
valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ",";
|
||||||
|
}
|
||||||
|
map.put(name, valueStr);
|
||||||
|
}
|
||||||
|
boolean signVerified = AlipaySignature.rsaCheckV1(map, AlipayConfig.alipay_public_key, AlipayConfig.charset,
|
||||||
|
AlipayConfig.sign_type);
|
||||||
|
// 验签通过
|
||||||
|
if (signVerified) {
|
||||||
|
//支付成功后进行操作
|
||||||
|
}
|
||||||
|
return "failure";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user