package com.bomaos.reception.controller;
import cn.hutool.crypto.SecureUtil;
import com.alibaba.fastjson.JSON;
import com.alipay.easysdk.factory.Factory;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.bomaos.carmi.entity.Cards;
import com.bomaos.carmi.service.CardsService;
import com.bomaos.common.core.pays.epusdt.entity.EpusdtNotify;
import com.bomaos.common.core.pays.epusdt.sendPay;
import com.bomaos.common.core.pays.mqpay.mqPay;
import com.bomaos.common.core.pays.payjs.SignUtil;
import com.bomaos.common.core.pays.paypal.PaypalSend;
import com.bomaos.common.core.pays.xunhupay.PayUtils;
import com.bomaos.common.core.pays.epay.EpayUtil;
import com.bomaos.common.core.utils.DateUtil;
import com.bomaos.common.core.utils.FormCheckUtil;
import com.bomaos.common.core.utils.RequestParamsUtil;
import com.bomaos.common.core.utils.StringUtil;
import com.bomaos.common.core.web.JsonResult;
import com.bomaos.common.system.service.EmailService;
import com.bomaos.orders.entity.Orders;
import com.bomaos.orders.service.OrdersService;
import com.bomaos.products.entity.Products;
import com.bomaos.products.service.ProductsService;
import com.bomaos.reception.dto.NotifyDTO;
import com.bomaos.reception.entity.XunhuNotIfy;
import com.bomaos.reception.util.SynchronizedByKeyService;
import com.bomaos.settings.entity.Pays;
import com.bomaos.settings.entity.ShopSettings;
import com.bomaos.settings.service.PaysService;
import com.bomaos.settings.service.ShopSettingsService;
import com.bomaos.website.entity.Website;
import com.bomaos.website.service.WebsiteService;
import com.github.wxpay.sdk.WXPayUtil;
import com.google.common.collect.Maps;
import com.paypal.api.payments.Payment;
import com.paypal.api.payments.Transaction;
import com.paypal.base.rest.PayPalRESTException;
import com.zjiecode.wxpusher.client.WxPusher;
import com.zjiecode.wxpusher.client.bean.Message;
import lombok.SneakyThrows;
import org.apache.commons.codec.Charsets;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
@Controller
@Transactional
public class NotifyController {
@Autowired
private PaysService paysService;
@Autowired
private OrdersService ordersService;
@Autowired
private ProductsService productsService;
@Autowired
private CardsService cardsService;
@Autowired
private EmailService emailService;
@Autowired
private WebsiteService websiteService;
@Autowired
private ShopSettingsService shopSettingsService;
@Autowired
private SynchronizedByKeyService synchronizedByKeyService;
/**
* 返回成功xml
*/
private final String WxpayresXml = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
private final String WxpayH5resXml = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
private final String resFailXml = "<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[报文为空]]></return_msg></xml>";
@RequestMapping("/mqpay/notifyUrl")
@ResponseBody
public String notifyUrl(HttpServletRequest request) {
Map<String, String> params = RequestParamsUtil.getParameterMap(request);
String param = params.get("param");
String price = params.get("price");
String money = params.get("reallyPrice");
String sign = params.get("sign");
String payId = params.get("payId");
String type = params.get("type");
String key = null;
Orders orders = ordersService.getOne(new QueryWrapper<Orders>().eq("member", payId));
if (Integer.parseInt(type) == 1) { // wxpay
Pays wxPays = paysService.getOne(new QueryWrapper<Pays>().eq("driver", "mqpay_wxpay"));
/**
* 防止破解
*/
if (!orders.getPayType().equals(wxPays.getDriver())) {
return "不要搞我啦!!";
}
Map mapTypes = JSON.parseObject(wxPays.getConfig());
key = mapTypes.get("key").toString();
} else if (Integer.parseInt(type) == 2) { // alipay
Pays aliPays = paysService.getOne(new QueryWrapper<Pays>().eq("driver", "mqpay_alipay"));
/**
* 防止破解
*/
if (!orders.getPayType().equals(aliPays.getDriver())) {
return "不要搞我啦!!";
}
Map mapTypes = JSON.parseObject(aliPays.getConfig());
key = mapTypes.get("key").toString();
}
String mysign = mqPay.md5(payId + param + type + price + money + key);
if (mysign.equals(sign)) {
String date = new SimpleDateFormat("yyyyMMdd").format(new Date());
String seconds = new SimpleDateFormat("HHmmss").format(new Date());
String number = StringUtil.getRandomNumber(6);
String payNo = date + seconds + number;
AtomicReference<String> notifyText = new AtomicReference<>();
synchronizedByKeyService.exec(payId, () -> {
String returnBig1 = returnBig(money, price, payId, payNo, param, "success", "fiald");
notifyText.set(returnBig1);
});
return notifyText.get();
} else {
return "fiald";
}
}
@RequestMapping("/mqpay/returnUrl")
public void returnUrl(HttpServletRequest request, HttpServletResponse response) throws IOException {
/**
*验证通知 处理自己的业务
*/
Map<String, String> params = RequestParamsUtil.getParameterMap(request);
String param = params.get("param");
String price = params.get("price");
String reallyPrice = params.get("reallyPrice");
String sign = params.get("sign");
String payId = params.get("payId");
String type = params.get("type");
String key = null;
if (Integer.parseInt(type) == 1) { // wxpay
Pays wxPays = paysService.getOne(new QueryWrapper<Pays>().eq("driver", "mqpay_wxpay"));
Map mapTypes = JSON.parseObject(wxPays.getConfig());
key = mapTypes.get("key").toString();
} else if (Integer.parseInt(type) == 2) { // alipay
Pays aliPays = paysService.getOne(new QueryWrapper<Pays>().eq("driver", "mqpay_alipay"));
Map mapTypes = JSON.parseObject(aliPays.getConfig());
key = mapTypes.get("key").toString();
}
String mysign = mqPay.md5(payId + param + type + price + reallyPrice + key);
if (mysign.equals(sign)) {
String url = "/pay/state/" + payId;
response.sendRedirect(url);
}
}
@RequestMapping("/epay/notifyUrl")
@ResponseBody
public String zlianpNotify(HttpServletRequest request) {
Map<String, String> parameterMap = RequestParamsUtil.getParameterMap(request);
String pid = parameterMap.get("pid");
String type = parameterMap.get("type");
String
没有合适的资源?快使用搜索试试~ 我知道了~
BM自动发卡售卡系统全新
共1166个文件
js:377个
java:205个
gif:156个
需积分: 0 7 下载量 138 浏览量
2023-08-06
10:02:36
上传
评论
收藏 6.56MB ZIP 举报
温馨提示
适用于各种电商、优惠卷、论坛邀请码、充值卡、激活码、注册码、腾讯爱奇艺积分CDK等,支持手动和全自动发货,还有类似1688的分层批发模式。
资源推荐
资源详情
资源评论
收起资源包目录
BM自动发卡售卡系统全新 (1166个子文件)
mvnw.cmd 5KB
admin.css 118KB
layui.css 95KB
layui.css 95KB
main.css 62KB
notice.css 61KB
notice.css 61KB
skin.min.css 54KB
skin.min.css 54KB
main.css 28KB
skin.mobile.min.css 21KB
skin.mobile.min.css 21KB
layer.css 19KB
swiper-bundle.css 18KB
swiper-bundle.min.css 18KB
content.min.css 17KB
content.inline.min.css 17KB
content.inline.min.css 17KB
content.min.css 17KB
pay.css 15KB
product.css 15KB
layer.css 14KB
main.min.css 14KB
index.css 14KB
introJs.css 12KB
dropdown.css 11KB
dropdown.css 11KB
layui.mobile.css 10KB
layui.mobile.css 10KB
main.css 7KB
laydate.css 7KB
laydate.css 7KB
metroStyle.css 7KB
steps.css 7KB
zTreeStyle.css 6KB
swiper.min.css 5KB
Cropper.css 5KB
article.css 5KB
search.css 5KB
pagination.min.css 5KB
cascader.css 4KB
workplace.css 4KB
main.min.css 3KB
city-picker.css 3KB
login.css 3KB
order.css 3KB
tagsInput.css 3KB
article-content.css 2KB
main.css 2KB
main.css 2KB
Split.css 2KB
footer.css 2KB
effect-cube.min.css 1KB
main.min.css 1KB
content.min.css 1KB
navigation.min.css 1KB
code.css 1KB
code.css 1KB
content.min.css 1KB
main.min.css 1004B
content.min.css 985B
content.min.css 964B
banner.css 804B
content.mobile.min.css 551B
content.mobile.min.css 551B
effect-flip.min.css 549B
lazy.min.css 523B
scrollbar.min.css 511B
virtual.min.css 349B
effect-fade.min.css 325B
zoom.min.css 286B
effect-cards.min.css 168B
effect-creative.min.css 154B
grid.min.css 117B
a11y.min.css 104B
free-mode.min.css 84B
effect-coverflow.min.css 0B
parallax.min.css 0B
hash-navigation.min.css 0B
history.min.css 0B
mousewheel.min.css 0B
controller.min.css 0B
manipulation.min.css 0B
thumbs.min.css 0B
autoplay.min.css 0B
keyboard.min.css 0B
.DS_Store 10KB
.DS_Store 8KB
.DS_Store 8KB
.DS_Store 8KB
.DS_Store 8KB
.DS_Store 8KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
共 1166 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12
资源评论
陈大是者也
- 粉丝: 11
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功