Commit 741523ea authored by cy's avatar cy

支付,广告填加标题字段

parent 805089bc
......@@ -12,6 +12,7 @@
<result column="image" property="image"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="title" property="title"/>
</resultMap>
<sql id="table">
......@@ -24,11 +25,11 @@
</sql>
<sql id="cols_exclude_id">
company_name,status, website,is_have_image,type,image, create_time,update_time
company_name,status, website,is_have_image,type,image, create_time,update_time,title
</sql>
<sql id="vals">
#{companyName},#{status},#{website},#{isHaveImage},#{type},#{image},now(),now()
#{companyName},#{status},#{website},#{isHaveImage},#{type},#{image},now(),now(),#{title}
</sql>
<sql id="updateCondition">
......@@ -38,6 +39,7 @@
<if test="isHaveImage != null">is_have_image =#{isHaveImage},</if>
<if test="type != null">type =#{type},</if>
<if test="image != null">image =#{image},</if>
<if test="title != null">title =#{title},</if>
update_time =now()
</sql>
......
......@@ -71,6 +71,7 @@
<if test="userId != null">
user_id=#{userId}
</if>
and result=0
order by create_time desc
limit #{startNum},#{endNum}
</where>
......@@ -85,6 +86,7 @@
<if test="userId != null">
user_id=#{userId}
</if>
and result=0
</where>
</select>
......
......@@ -71,4 +71,10 @@ public class Banner implements Serializable {
*/
@ApiModelProperty(value = "更新时间",name = "updateTime")
private Date updateTime;
/**
* 标题
*/
@ApiModelProperty(value = "标题",name = "title")
private String title;
}
......@@ -49,4 +49,10 @@ public class BannerDto {
*/
@ApiModelProperty(value = "更新时间",name = "updateTime")
private Date updateTime;
/**
* 标题
*/
@ApiModelProperty(value = "标题",name = "title")
private String title;
}
......@@ -53,6 +53,12 @@
<artifactId>okhttp</artifactId>
<version>3.6.0</version>
</dependency>
<!-- 微信支付 sdk -->
<dependency>
<groupId>com.github.wxpay</groupId>
<artifactId>wxpay-sdk</artifactId>
<version>0.0.3</version>
</dependency>
<dependency>
<groupId>com.github.wechatpay-apiv3</groupId>
......
......@@ -6,6 +6,7 @@ import cn.wisenergy.model.dto.PayQueryDto;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public interface AliPayService {
......@@ -18,6 +19,15 @@ public interface AliPayService {
*/
R<String> doPost(PayPageDto payPageDto, HttpServletRequest request, HttpServletResponse httpResponse);
/***
* 手机网页端支付宝支付接口
* @param payPageDto
* @param request
* @param httpResponse
* @return
*/
R<String> wapAliPay(PayPageDto payPageDto, HttpServletRequest request, HttpServletResponse httpResponse);
......@@ -34,5 +44,5 @@ public interface AliPayService {
* @param request
* @return
*/
R<String> aliPayCallBack(HttpServletResponse response, HttpServletRequest request);
void aliPayCallBack(HttpServletResponse response, HttpServletRequest request) throws IOException, Exception;
}
......@@ -2,6 +2,7 @@ package cn.wisenergy.service.app;
import cn.wisenergy.common.utils.R;
import cn.wisenergy.model.dto.PayPageDto;
import com.fasterxml.jackson.core.JsonProcessingException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
......@@ -18,6 +19,9 @@ public interface TestWxPayService {
*/
R<String> wxPay(PayPageDto payPageDto, HttpServletResponse response);
R<String> h5WxPay(PayPageDto payPageDto,HttpServletRequest request, HttpServletResponse response) throws JsonProcessingException;
R<String> WxPayApplets(PayPageDto payPageDto,HttpServletRequest request, HttpServletResponse response) throws JsonProcessingException;
/***
*测试-支付成功回调
* @param request
......
......@@ -124,7 +124,7 @@ public class UserLimitServiceImpl extends ServiceImpl<UserLimitMapper, UserLimit
//增加用户总查询次数
Integer total = userLimit.getTotalLimit() + price.getUseLimit();
userLimit.setUseLimit(usableNumber);
userLimit.setUsableLimit(usableNumber);
userLimit.setTotalLimit(total);
//更新充值卡状态和用户查询次数及增加充值记录
......
......@@ -107,7 +107,7 @@ public class WxPayServiceImpl implements WxPayService {
String nonceStr = UUID.randomUUID().toString().replace("-", "");
String method = "POST";
String tradeNo = "21" + System.currentTimeMillis();
HttpUrl httpurl = HttpUrl.parse(WxCommon.WX_PAY_URL);
HttpUrl httpurl = HttpUrl.parse(WxCommon.WX_PAY_URL_pc);
//构造签名参数
JSONObject jsonObject = new JSONObject();
......@@ -162,13 +162,13 @@ public class WxPayServiceImpl implements WxPayService {
@Override
public R<String> wx_Pay(PayPageDto payPageDto) throws IOException, NoSuchAlgorithmException, SignatureException, InvalidKeySpecException, InvalidKeyException, IllegalBlockSizeException {
HttpPost httpPost = new HttpPost(WxCommon.WX_PAY_URL);
HttpPost httpPost = new HttpPost(WxCommon.WX_PAY_URL_pc);
long timestamp = System.currentTimeMillis() / 1000;
String nonceStr = UUID.randomUUID().toString().replace("-", "");
String method = "POST";
String tradeNo = "21" + System.currentTimeMillis();
HttpUrl httpurl = HttpUrl.parse(WxCommon.WX_PAY_URL);
HttpUrl httpurl = HttpUrl.parse(WxCommon.WX_PAY_URL_pc);
// 请求body参数
String reqdata = "{"
......
......@@ -30,44 +30,36 @@ public class Common {
public static final long SMS_TIMEOUT = 1200;
/**
* 支付宝支付app_id
* 支付宝--app_id
*/
public static final String PAY_URL = "https://openapi.alipay.com/gateway.do";
public static final String APP_ID = "2021002126609937";
public static final String ALIPAY_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2cUDFyw7sLp" +
"TpICDURNefRfzr7I7qO5Spq6HwdyFbVv5m6wVzt3fXYTcDrVUuzfbV7+rrXqnvk7LNOp10qPtUyHyZKO2jTBBcUK5H0RPNz" +
"s1XInKaSTAznGH8dEAk6yQiwhSDpQzwoOq1Ool2MQocdkcBWwAMEcEUByIbJ4ABsrwXdmkgu2hDHR/GgLvarUp1zOXfZkaTK//L" +
"1GUI5uCI+/omcqMPDIOwd8DfcNr0TKlXfAEixp9eVuU/b09b7vW7O9Vh+w0gmy5FN+BWX/JaRRL1DhRqbHl7Sl4/oGu1yjfQA5U" +
"8jXBgd+QjwdUiAXVwPdESS/AUbPWE517eH5FtQIDAQAB";
public static final String PRIVATE_KEY = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDAzZQsv" +
"7wKd/01D8YPqrMcevfi0rS81H4NObDkF/Y37ii+/V1vlzODiTQajeCWOM42kijTSFHiietwx7PRa57GI/BzhRbs3MeK" +
"fvOkFVhUHklfOb9vT9E/y9TE7oWmbQVJThcytXerJbC95LDchJtBxQula/wmp0pwgkwFHM5IxNbT1Oh9UWKBn6" +
"OoOuHhgFhO19l9+X4hJtb/rjKl8/K4ULrlxPfrnX75tbJryBS1VnkxiWyHTara1WkRDIKmLRSrHeDG1hh1NKMOA" +
"5jc2sfNOEuMhsgC1FY9sxd/Ap3dBp3TP3drAYpshaweYQwK9PyQ8b/TYgccIclgsJJ0BxMtAgMBAAECggEAD6sl" +
"VZWnZHpn234SrIdE0xWzO33ALnBeZhjAJWlFGzqBmTPh+gWhrBjkYRwSmmK3b3vlUXZZIT3wIlQ4ataCKrwU+G" +
"5idJFkrf6vMjCB4yQq9lAtHJCyAqs/+VkhB2touJJeFELnHMONX4FMVj94lpm63pCuBz4lMIuGPgwfP46Lgiuy4" +
"xOhcczcr3jwUmaVJvvDVtDJ477gsr/P/HhidCVwBE+vPovFmZ/cbI8ud31Ta2P7VFvrJKheL36GEJ1c1cHE7gcS" +
"P7KsuzXfQP/6KjqM6QhWHem0s0vOUaplPrPhEArhmfhjqukD/U2lBTHzmE7iUlmPHEQRbQdwJIk4SQKBgQDgjd" +
"+VxxJ8pYigvyDK+OiXwA8hKwMiQGhA1XexjBnf2rTEimBwMNU87lKmsgCRsv26DAiVyPqiA5R2nPL3N4Sk8k7f" +
"KD6gRBzC1/91XtI2HsljdGZemW1V/4D5o2Su9lmsPl3UV8U54izp5JzerXB+5sULpfKyKf5iVJtb+a7adwKBgQ" +
"DbzXJXGMGc052StU4CwKeKElhTdB8uYbeML2Em0bwh1jZXwD/s2X7m8LAkOB2xaKQqrxjipcArIeAylI7xeEx24" +
"MVDk3C3BnZaZoiuvvWr0caGQHE0JHvtpCrs2xoXm7wMNsVLjc345ssEQM0ytVXsx/PcA1WwwrBAQNFiH4fEewK" +
"BgQDKBbm+lYADViXKgMlu8mrHg8nYzEqgeROSKLrrqCDrLWduXxQOO1DM5ZjEUeaDLmZpCER9BXi/Y7sgz2kjk" +
"vYqM7lTuXBGXaEGhq9Ul/9FI4OJj4I934jnUtxlO2PsqMPaW62syV4uClbgAoZDLATGlrV2GlFziqZLLtUq9UI" +
"jVwKBgQCmZGSGYotO+TNz+CRSGR27fB+5LVLdfcPBL6zQAj31L4B79WFvH0bd9J6jDIgN4TVFyr9/9BIBlOdv4t5" +
"DFdpss8MhYOAW7aFy1ePqxUydAXTT9Ly9yFC4mWqVW1fpP0+fv2ajx3mBTtWpJpUwKe4eDVAh4bRg10EtouPe8B" +
"eLOQKBgQCwsHZbrfgm8qrAhhoqPkxHHUDcQVhWpcBrv49ghpPLTsEPrOnYsFMCKb0nJc2goJ" +
"BQIT4QMu62i1jOInaIZyrf/1H3WuWhjI3SjObHiz1a0rmuCrFMPCpnAVlIYJvmAyrGJIvSSLEN33mUZnq1z4REgjn0FlzS0FMOVDRVAeMm7w==";
/***
* 支付宝--回调地址
*/
public static final String NOTIFY_URL = "http://111.203.232.171:8997/pay/aliPayCallBack.do";
/***
* 支付宝--pc端支付成功跳转地址
*/
public static final String RETURN_URL_PC = "http://111.203.232.171:8999/wallet";
/***
* 支付宝--手机网页支付成功跳转地址
*/
public static final String RETURN_URL_WAP = "http://111.203.232.171:8999/#/history";
/**
* 沙箱 --支付宝支付app_id
* 沙箱 --支付宝
*/
public static final String APP_ID_CS = "2016101300675128";
public static final String PAY_URL_CS = "https://openapi.alipaydev.com/gateway.do";
public static final String ALIPAY_PUBLIC_KEY_CS = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQE" +
"AovyCboYeJzNSUjBJmMss2NHo4JgAnn+cqnEUZFEeIO0u1JDGsxE3NLYwU54fM8OQunf3S6RxzIjZ/9jAaUtu" +
"LjVmJBAa3ac5leHpm5LKWl0olKYER3qZTJQFgoRymfZHzVqqDoVsnFJScfsNR7XDD9bsFiHa9R+c+fI+pPapHK" +
......@@ -95,5 +87,5 @@ public class Common {
"TFmmjrgNNXMiqhVZBxVf+GwwHdI0Rz8OukagIHeCHdG6nwu2aW+B9NsDhusiXjwU1rb28l6KNHRZqQ74PVREYyU" +
"hTc2T2fobY0qmPBy2CIrO3gL4skn+ZZLHaUeK3sinQ=";
public static final String PAY_URL_CS = "https://openapi.alipaydev.com/gateway.do";
}
......@@ -20,6 +20,7 @@ import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
......@@ -168,8 +169,10 @@ public class VolunteerManager {
QueryWrapper<PayRecord> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("trade_no",payRecord.getTradeNo());
PayRecord byTradeNo = payRecordMapper.selectOne(queryWrapper);
payRecord.setId(byTradeNo.getId());
int pay =0;
if(null!=byTradeNo){
payRecord.setUpdateTime(new Date());
pay = payRecordMapper.updateById(payRecord);
}else{
pay = payRecordMapper.add(payRecord);
......
package cn.wisenergy.service.util;
import cn.wisenergy.common.utils.Md5Util;
import cn.wisenergy.model.dto.PayPageDto;
import cn.wisenergy.service.httpClient.WechatPayHttpClientBuilder;
import cn.wisenergy.service.httpClient.auth.AutoUpdateCertificatesVerifier;
......@@ -9,8 +10,9 @@ import cn.wisenergy.service.httpClient.auth.WechatPay2Credentials;
import cn.wisenergy.service.httpClient.auth.WechatPay2Validator;
import cn.wisenergy.service.httpClient.util.PemUtil;
import cn.wisenergy.service.wxpay.WxCommon;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import okhttp3.HttpUrl;
import org.apache.commons.lang.RandomStringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
......@@ -19,7 +21,9 @@ import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.util.EntityUtils;
import org.junit.After;
import org.springframework.beans.factory.annotation.Value;
import javax.servlet.http.HttpServletRequest;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
......@@ -28,11 +32,17 @@ import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.SignatureException;
import java.security.spec.InvalidKeySpecException;
import java.util.UUID;
import java.text.DecimalFormat;
import java.util.*;
public class WxPayUtil {
@Value("${wxPay.APP_ID}")
private static String appid;
@Value("${wxPay.MCH_ID}")
private static String mchid;
@Value("${wxPay.PRIVATE_KEY}")
private static String key;
/**
* 商户号
*/
......@@ -80,13 +90,13 @@ public class WxPayUtil {
}
public static void main(String[] args) throws IOException, NoSuchAlgorithmException, SignatureException, InvalidKeySpecException, InvalidKeyException {
HttpPost httpPost = new HttpPost(WxCommon.WX_PAY_URL);
HttpPost httpPost = new HttpPost(WxCommon.WX_PAY_URL_pc);
long timestamp = System.currentTimeMillis() / 1000;
String nonceStr = UUID.randomUUID().toString().replace("-", "");
String method = "POST";
String tradeNo = "21" + System.currentTimeMillis();
HttpUrl httpurl = HttpUrl.parse(WxCommon.WX_PAY_URL);
HttpUrl httpurl = HttpUrl.parse(WxCommon.WX_PAY_URL_pc);
// 请求body参数
String reqdata = "{"
......@@ -169,4 +179,149 @@ public class WxPayUtil {
response.close();
}
}
/***
* pc端生成统一下单格式的订单,生成一个XML格式的字符串
* @return
* @throws UnsupportedEncodingException
*/
public static String createOrderInfo(PayPageDto payPageDto,String tradeNo) throws UnsupportedEncodingException {
String nonce_str = RandomStringUtils.randomAlphanumeric(16);
SortedMap<String,String> parameters = new TreeMap<String,String>();
parameters.put("appid", WxCommon.APP_ID);
parameters.put("mchid", mchId);
parameters.put("body", "充值");
parameters.put("out_trade_no", tradeNo);
parameters.put("nonce_str", nonce_str);
DecimalFormat df = new DecimalFormat("#");
//parameters.put("total_fee", df.format(payPageDto.getTotal()*100));
parameters.put("total_fee", df.format(1));
parameters.put("notify_url",WxCommon.NOTIFY_URL);
parameters.put("trade_type","NATIVE");
String characterEncoding = "UTF-8";
String sign = createSign(characterEncoding,parameters);
parameters.put("sign", sign);//签名
//将订单对象转为xml格式
String s = null;
try {
return MapToXmlUtils.mapToXml(parameters);//maptoXml方法是微信sdk自带的方法
} catch (Exception e) {
e.printStackTrace();
}
return new String(s.getBytes("UTF-8"));
}
/***
* h5生成统一下单格式的订单,生成一个XML格式的字符串
* @return
* @throws UnsupportedEncodingException
*/
public static String createOrderInfoH5(PayPageDto payPageDto,String tradeNo,HttpServletRequest request) throws UnsupportedEncodingException, JsonProcessingException {
String nonce_str = RandomStringUtils.randomAlphanumeric(16);
String sceneInfo="{'h5_info':{'type':'WAP','wap_url': 'http://111.203.232.171:8999/','wap_name': '充值'}}";
String spbill_create_ip = getRealIp(request);
SortedMap<String,String> parameters = new TreeMap<String,String>();
parameters.put("appid", appid);
parameters.put("mchid", mchid);
parameters.put("body", "充值");
parameters.put("out_trade_no", tradeNo);
parameters.put("nonce_str", nonce_str);
DecimalFormat df = new DecimalFormat("#");
//parameters.put("total_fee", df.format(payPageDto.getTotal()*100));
parameters.put("total_fee", df.format(1));
parameters.put("notify_url",WxCommon.NOTIFY_URL);
parameters.put("trade_type","MWEB");
parameters.put("scene_info",sceneInfo);
parameters.put("spbill_create_ip",spbill_create_ip);
String characterEncoding = "UTF-8";
String sign = createSign(characterEncoding,parameters);
parameters.put("sign", sign);//签名
//将订单对象转为xml格式
String s = null;
try {
return MapToXmlUtils.mapToXml(parameters);//maptoXml方法是微信sdk自带的方法
} catch (Exception e) {
e.printStackTrace();
}
return new String(s.getBytes("UTF-8"));
}
/***
* 小程序生成统一下单格式的订单,生成一个XML格式的字符串
* @return
* @throws UnsupportedEncodingException
*/
public static String createOrderInfoWx(PayPageDto payPageDto,String tradeNo,HttpServletRequest request,String nonce_str) throws UnsupportedEncodingException, JsonProcessingException {
SortedMap<String,String> parameters = new TreeMap<String,String>();
parameters.put("appid", appid);
parameters.put("mchid", mchid);
parameters.put("body", "充值");
parameters.put("out_trade_no", tradeNo);
parameters.put("nonce_str", nonce_str);
DecimalFormat df = new DecimalFormat("#");
//parameters.put("total_fee", df.format(payPageDto.getTotal()*100));
parameters.put("total_fee", df.format(1));
parameters.put("notify_url",WxCommon.NOTIFY_URL);
parameters.put("trade_type","JSAPI");
String characterEncoding = "UTF-8";
String sign = createSign(characterEncoding,parameters);
parameters.put("sign", sign);//签名
//将订单对象转为xml格式
String s = null;
try {
return MapToXmlUtils.mapToXml(parameters);//maptoXml方法是微信sdk自带的方法
} catch (Exception e) {
e.printStackTrace();
}
return new String(s.getBytes("UTF-8"));
}
/***
* 生成签名
* @param characterEncoding
* @param parameters
* @return
*/
public static String createSign(String characterEncoding, SortedMap<String,String> parameters){
StringBuffer sb = new StringBuffer();
Set es = parameters.entrySet();//所有参与传参的参数按照accsii排序(升序)
Iterator it = es.iterator();
while(it.hasNext()) {
Map.Entry entry = (Map.Entry)it.next();
String k = (String)entry.getKey();
Object v = entry.getValue();
if(null != v && !"".equals(v)
&& !"sign".equals(k) && !"key".equals(k)) {
sb.append(k + "=" + v + "&");
}
}
sb.append("key=" + WxCommon.PRIVATE_KEY);
String sign = Md5Util.MD5Encode(sb.toString(), characterEncoding).toUpperCase();
System.out.println("签名:"+sign);
return sign;
}
/**
* 获取真实ip地址 通过阿帕奇代理的也能获取到真实ip
* @param request
* @return
*/
public static String getRealIp(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
}
......@@ -12,9 +12,9 @@ public class WxCommon {
public static final String MCHID = "1606042985";
public static final String NOTIFY_URL = "http://www.baodu.com";
public static final String NOTIFY_URL = "http://http://tcdwak.natappfree.cc/pay/wxPayCallBack.do";
public static final String WX_PAY_URL = "https://api.mch.weixin.qq.com/v3/pay/transactions/native";
public static final String WX_PAY_URL_pc = "https://api.mch.weixin.qq.com/v3/pay/transactions/native";
public static final String WX_PAY_QUERY = "https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/";
......
......@@ -49,6 +49,8 @@
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-undertow:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.undertow:undertow-core:2.0.20.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.xnio:xnio-api:3.3.8.Final" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.jboss.xnio:xnio-nio:3.3.8.Final" level="project" />
<orderEntry type="library" name="Maven: io.undertow:undertow-servlet:2.0.20.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:1.0.2.Final" level="project" />
<orderEntry type="library" name="Maven: io.undertow:undertow-websockets-jsr:2.0.20.Final" level="project" />
......@@ -162,6 +164,7 @@
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.62" level="project" />
<orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.6.0" level="project" />
<orderEntry type="library" name="Maven: com.squareup.okio:okio:1.11.0" level="project" />
<orderEntry type="library" name="Maven: com.github.wxpay:wxpay-sdk:0.0.3" level="project" />
<orderEntry type="library" name="Maven: com.github.wechatpay-apiv3:wechatpay-apache-httpclient:0.2.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpmime:4.5.8" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" />
......
......@@ -12,6 +12,7 @@ import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradeQueryRequest;
import com.alipay.api.response.AlipayTradeQueryResponse;
import com.fasterxml.jackson.core.JsonProcessingException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
......@@ -54,14 +55,20 @@ public class PayController {
@ApiOperation(value = "PC支付宝-支付接口", notes = "PC支付宝-支付接口", httpMethod = "POST")
@ApiImplicitParam(name = "payPageDto", value = "参数", dataType = "PayPageDto")
@PostMapping("/page")
//public R<String> doPost(@RequestBody PayPageDto payPageDto, HttpServletRequest request, HttpServletResponse httpResponse) {
public R<String> doPost(Integer userId,Integer payType,Integer total_amount, HttpServletRequest request, HttpServletResponse httpResponse) {
public R<String> doPost(@RequestBody PayPageDto payPageDto, HttpServletRequest request, HttpServletResponse httpResponse) {
/*public R<String> doPost(Integer userId,Integer payType,Integer total_amount, HttpServletRequest request, HttpServletResponse httpResponse) {
PayPageDto payPageDto = new PayPageDto();
payPageDto.setTotal(total_amount);
payPageDto.setUserId(userId);
payPageDto.setPayType(payType);
payPageDto.setPayType(payType);*/
return aliPayService.doPost(payPageDto,request,httpResponse);
}
@ApiOperation(value = "手机网页支付宝-支付接口", notes = "手机网页支付宝-支付接口", httpMethod = "POST")
@ApiImplicitParam(name = "payPageDto", value = "参数", dataType = "PayPageDto")
@PostMapping("/wapAliPay")
public R<String> wapAliPay(@RequestBody PayPageDto payPageDto, HttpServletRequest request, HttpServletResponse httpResponse) {
return aliPayService.wapAliPay(payPageDto,request,httpResponse);
}
@ApiOperation(value = "PC支付宝-交易查询", notes = "PC支付宝-交易查询", httpMethod = "POST")
@ApiImplicitParam(name = "payQueryDto", value = "查询参数", dataType = "PayQueryDto")
......@@ -84,15 +91,15 @@ public class PayController {
*/
@ApiOperation(value = "支付回调", notes = "支付回调", httpMethod = "POST")
@RequestMapping(value = "/aliPayCallBack.do")
public R<String> aliPayCallBack(HttpServletResponse response, HttpServletRequest request) {
return aliPayService.aliPayCallBack(response,request);
public void aliPayCallBack(HttpServletResponse response, HttpServletRequest request) throws Exception {
aliPayService.aliPayCallBack(response, request);
}
@ApiOperation(value = "微行支付-统一下单测试", notes = "微行支付-统一下单", httpMethod = "POST")
@ApiImplicitParam(name = "payPageDto", value = "支付入参", dataType = "PayPageDto")
@PostMapping("/wxPayTest")
public R<String> wxPayTest(@RequestBody PayPageDto payPageDto) throws AlipayApiException, UnsupportedEncodingException, InvalidKeySpecException, NoSuchAlgorithmException, InvalidKeyException, SignatureException {
public R<String> wxPayTest(@RequestBody PayPageDto payPageDto) throws UnsupportedEncodingException, InvalidKeySpecException, NoSuchAlgorithmException, InvalidKeyException, SignatureException {
return wxPayService.wxPay(payPageDto);
}
......@@ -100,18 +107,17 @@ public class PayController {
@ApiOperation(value = "微信支付-交易查询", notes = "微信支付-交易查询", httpMethod = "POST")
@ApiImplicitParam(name = "payQueryDto", value = "查询参数", dataType = "PayQueryDto")
@PostMapping("/queryWx")
public R<String> queryWx(@RequestBody PayQueryDto payQueryDto) throws AlipayApiException, InvalidKeySpecException, SignatureException, NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException {
public R<String> queryWx(@RequestBody PayQueryDto payQueryDto) throws InvalidKeySpecException, SignatureException, NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException {
if (null == payQueryDto || StringUtils.isBlank(payQueryDto.getOutTradeNo())) {
return R.error("操作错误!");
}
return wxPayService.queryWx(payQueryDto);
}
@ApiOperation(value = "测试-微行支付-统一下单", notes = "测试-微行支付-统一下单", httpMethod = "POST")
@ApiImplicitParam(name = "payPageDto", value = "支付入参", dataType = "PayPageDto")
@PostMapping("/wx_Pay")
public R<String> wx_Pay(@RequestBody PayPageDto payPageDto) throws AlipayApiException, IOException, InvalidKeySpecException, NoSuchAlgorithmException, InvalidKeyException, SignatureException, IllegalBlockSizeException {
public R<String> wx_Pay(@RequestBody PayPageDto payPageDto) throws IOException, InvalidKeySpecException, NoSuchAlgorithmException, InvalidKeyException, SignatureException, IllegalBlockSizeException {
return wxPayService.wx_Pay(payPageDto);
}
......@@ -122,6 +128,12 @@ public class PayController {
return testWxPayService.wxPay(payPageDto, response);
}
@ApiOperation(value = "h5微行支付-统一下单", notes = "h5微行支付-统一下单", httpMethod = "POST")
@ApiImplicitParam(name = "payPageDto", value = "支付入参", dataType = "PayPageDto")
@PostMapping("/h5WxPay")
public R<String> h5WxPay(@RequestBody PayPageDto payPageDto,HttpServletRequest request, HttpServletResponse response) throws JsonProcessingException {
return testWxPayService.h5WxPay(payPageDto,request, response);
}
/**
* 微信回调函数
* 支付成功后微信服务器会调用此方法
......
......@@ -69,3 +69,13 @@ jwt:
expire: 14400
logging:
config: classpath:logback-spring.xml
#支付宝支付appid、支付宝公钥、应用私钥
aliPay:
APP_ID: 2021002126609937
ALIPAY_PUBLIC_KEY: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2cUDFyw7sLpTpICDURNefRfzr7I7qO5Spq6HwdyFbVv5m6wVzt3fXYTcDrVUuzfbV7+rrXqnvk7LNOp10qPtUyHyZKO2jTBBcUK5H0RPNzs1XInKaSTAznGH8dEAk6yQiwhSDpQzwoOq1Ool2MQocdkcBWwAMEcEUByIbJ4ABsrwXdmkgu2hDHR/GgLvarUp1zOXfZkaTK//L1GUI5uCI+/omcqMPDIOwd8DfcNr0TKlXfAEixp9eVuU/b09b7vW7O9Vh+w0gmy5FN+BWX/JaRRL1DhRqbHl7Sl4/oGu1yjfQA5U8jXBgd+QjwdUiAXVwPdESS/AUbPWE517eH5FtQIDAQAB
PRIVATE_KEY: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCA9/p6UJH2kpTumbyRt/gdAOUnRJQ0VRQj/o0GtJ9ECweSIk6+8K81CAGcfmdeB6ZfteXZlKr9SGf3hkwuOz5oOJb5GAmKgv60T6zrBm5/MSVYhDY935eCYjFSj59w2120kvtWvq94Km3TkvAstrbSwBgpS4eutZ2qg1U4h5j6H3v+PB6RxyOsugarEYQ6TxCTr/CWHWU9G28yXSaQ66S3rsxl5aSpUCY+lUwIEVmZ9SyAa+g4FV3EfRitssiKMdCuli46YQ0/uxc59igCdgd4uxygswYgUGfP4HLQ5wEGPn7H4Q5IxSlxPvc60fYxgkRo9NMZgAljRohGdKP2u6jjAgMBAAECggEAGRakbljwHCRlvoi/qyU7qgC7k0j+/7MxSNNDAfPvK6Btp5ru8KwHmWxmS9g3KY6ZafMLtKj8HmuQdhF1DmVN/Z5MmEZ5zK0w+UiqncnRgwK/fhmyJ5Uwdxe8+o+f96dk8jTJmhVcMycl2Eu0Vy5wIE1oJdhgm7cO5dXIpUeTlcx09F3v2xx4lvmJTQvzPxgFYMbB7M8ijEQvkeXdBw7fAlA+izl8Paovgv6tu/dikImZZZgoHKZugZbz3orxpZWiIXzoB9SymBo+lWkeGMj55hlKV9sXTrf5pM6vd5JYmzfYoF/bcO7k4NJ0Elddz3EHe/0IX8M90rAH9WFSdLGseQKBgQDMkEPUfrWP/Z6nE76muUQE4y3OH0ckLacbCEI+RseVNqSKIs+TrzhQllvb/V/foeiv6SLBvmyWbO3AX+Gh9GuedLyRTct/K9o1J3Q4GAa8jGJeoi1uYPPAfqt3BMv05/i1jIvTePUrxp1NV7u0/i9QmV4R1it0+abs2Ro8Q3XqZwKBgQChZa3UBe4FbaTBWVToU4lW5KdEv93gm6iKQiHWI4yTXaJJlPOo8Hx9+/REeaxOIsaW6XZLyarNuh+cThTv4GLJKjogjcq9B1oNWgS6Z41CJZIkW/IFgjZvHh3n+SD3pTijA9y7usgu/R0OsVwrlAMyMvl7JdIMRYXFckRhb1v4JQKBgQC3+Ao4gZfRnjpfcd9k23rzlkfsdq6pN7FwGzZQAaGebNz/Kh1aaRuRRhfouW7OlTLJeTZ73UCU6/PJrbEi0Mk0YTHwz3DytsJwSUI47EqqqOoSx3FqMiEk/gZAbHzsjO5cf8CEd+St8Noo43z5Yhu1NainC+BbO+ZGXV0900GpgwKBgEEx2nK/5nLo5Fl55VNnkx23hV2/BzhYiE85AYQHnhxVAV4pvfcrFY6qfPRAFfsGDyQcsD1S/BzYJzazT7/J6v2JgituO0v6MUUdbLWDaMskdBEd1vikrapbBweSWd/PLL6kq8BlZcGdWuR5flrYEiZv8tjs4Rk16CBm1PpqykLFAoGASgkWQocPk0PYnEr1anXeiabc+/hMj4cZv3ynGv7NU9hUkZszMDKutG63y3nZ1QJPtfcF7xgTKpABfdIMCbAzKzDpd2znFg/bTxCV23GV6SNSWU+R8WC+30jw5o3W++wcILmd83L4IWLXUo6+GI0wqDBNOYG+nDLs1gWfBvX4UbI=
#微信支付appid、mchid、密钥
wxPay:
APP_ID: wx7d8f4502a2bfa865
MCH_ID: 1606042985
PRIVATE_KEY: efef4a06a1654e0f78d113377ea37aed
\ No newline at end of file
......@@ -51,6 +51,8 @@
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.1.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-undertow:2.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.undertow:undertow-core:2.0.20.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.xnio:xnio-api:3.3.8.Final" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.jboss.xnio:xnio-nio:3.3.8.Final" level="project" />
<orderEntry type="library" name="Maven: io.undertow:undertow-servlet:2.0.20.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.spec.javax.annotation:jboss-annotations-api_1.2_spec:1.0.2.Final" level="project" />
<orderEntry type="library" name="Maven: io.undertow:undertow-websockets-jsr:2.0.20.Final" level="project" />
......@@ -150,6 +152,7 @@
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.62" level="project" />
<orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.6.0" level="project" />
<orderEntry type="library" name="Maven: com.squareup.okio:okio:1.11.0" level="project" />
<orderEntry type="library" name="Maven: com.github.wxpay:wxpay-sdk:0.0.3" level="project" />
<orderEntry type="library" name="Maven: com.github.wechatpay-apiv3:wechatpay-apache-httpclient:0.2.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpmime:4.5.8" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment