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
|
||||
public class AlipayController {
|
||||
|
||||
@Autowired
|
||||
private GoodService goodService;
|
||||
|
||||
public static String notify_url = "";
|
||||
|
||||
@ -42,7 +40,7 @@ public class AlipayController {
|
||||
* @Description: 前往支付宝第三方网关进行支付
|
||||
*/
|
||||
|
||||
@RequestMapping("royalcanin/aliPayUnifiedOrder")
|
||||
@PostMapping("royalcanin/aliPayUnifiedOrder")
|
||||
public void code(@RequestBody AliPayEntity aliPayEntity, HttpServletResponse response) throws Exception{
|
||||
|
||||
//---------------------------------------
|
||||
|
@ -1,12 +1,16 @@
|
||||
package net.lab1024.smartadmin.module.system.royalcanin.good;
|
||||
|
||||
|
||||
import com.alipay.api.internal.util.AlipaySignature;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import net.lab1024.smartadmin.common.anno.OperateLog;
|
||||
import net.lab1024.smartadmin.common.domain.ResponseDTO;
|
||||
import net.lab1024.smartadmin.common.heartbeat.StringUtil;
|
||||
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.royalcanin.good.constant.OrderResponseCodeConst;
|
||||
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.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.SortedMap;
|
||||
import java.util.*;
|
||||
|
||||
@Api(tags = {SwaggerTagConst.Admin.MANAGER_MALL_API})
|
||||
@OperateLog
|
||||
@ -39,6 +41,9 @@ public class OrderController {
|
||||
@Autowired
|
||||
private WxpayService wxpayService;
|
||||
|
||||
@Autowired
|
||||
private AliPayService aliPayService;
|
||||
|
||||
@ApiOperation(value = "微信支付订单", notes = "生成订单")
|
||||
@PostMapping("royalcanin/generateOrderWX")
|
||||
public ResponseDTO<String> generateOrderWX(@RequestBody List<OrdersEntity> ordersEntityList, HttpServletResponse response) throws Exception {
|
||||
@ -76,7 +81,7 @@ public class OrderController {
|
||||
|
||||
|
||||
@ApiOperation(value = "更新订单", notes = "更新订单")
|
||||
@RequestMapping(value = "royalcanin/updateOrderWX",method = RequestMethod.POST)
|
||||
@PostMapping(value = "royalcanin/updateOrderWX")
|
||||
public void updateOrder(HttpServletRequest request, HttpServletResponse 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