支付模型,中版
This commit is contained in:
parent
8859a72a61
commit
e458b461eb
|
|
@ -4,13 +4,17 @@ import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(value = "支付请求对象")
|
@ApiModel(value = "支付请求对象")
|
||||||
public class AdapayReq {
|
public class AdapayReq {
|
||||||
|
|
||||||
|
@NotNull
|
||||||
@ApiModelProperty(value = "用户id")
|
@ApiModelProperty(value = "用户id")
|
||||||
private Long userId;
|
private Long userId;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
@ApiModelProperty(value = "订单类型 0.初级合伙人 1.高级合伙人 2.区域合伙人")
|
@ApiModelProperty(value = "订单类型 0.初级合伙人 1.高级合伙人 2.区域合伙人")
|
||||||
private Long orderType;
|
private Long orderType;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,20 @@
|
||||||
package com.ruoyi.web.response;
|
package com.ruoyi.web.response;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@ApiModel(value = "App*支付响应参数")
|
||||||
public class AdapayResp {
|
public class AdapayResp {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "支付订单号")
|
||||||
|
private String orderNo;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "二维码url")
|
||||||
|
private String qrcodeUrl;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "查询url")
|
||||||
|
private String queryUrl;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ package com.ruoyi.web.service;
|
||||||
import com.ruoyi.web.request.AdapayReq;
|
import com.ruoyi.web.request.AdapayReq;
|
||||||
import com.ruoyi.web.response.AdapayResp;
|
import com.ruoyi.web.response.AdapayResp;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public interface AdapayService {
|
public interface AdapayService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -10,6 +12,6 @@ public interface AdapayService {
|
||||||
* @param adapayReq 支付对象
|
* @param adapayReq 支付对象
|
||||||
* @return 响应对象
|
* @return 响应对象
|
||||||
*/
|
*/
|
||||||
public AdapayResp pay(AdapayReq adapayReq);
|
public AdapayResp pay(AdapayReq adapayReq) throws Exception;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
package com.ruoyi.web.service.impl;
|
package com.ruoyi.web.service.impl;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
import com.huifu.adapay.core.exception.BaseAdaPayException;
|
||||||
import com.huifu.adapay.model.Payment;
|
import com.huifu.adapay.model.Payment;
|
||||||
import com.ruoyi.common.json.JSONObject;
|
import com.ruoyi.common.utils.ExceptionUtil;
|
||||||
import com.ruoyi.web.core.config.AdapayConfig;
|
import com.ruoyi.web.core.config.AdapayConfig;
|
||||||
import com.ruoyi.web.request.AdapayReq;
|
import com.ruoyi.web.request.AdapayReq;
|
||||||
import com.ruoyi.web.response.AdapayResp;
|
import com.ruoyi.web.response.AdapayResp;
|
||||||
|
|
@ -22,48 +23,37 @@ public class AdapayServiceImpl implements AdapayService {
|
||||||
private AdapayConfig adapayConfig;
|
private AdapayConfig adapayConfig;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AdapayResp pay(AdapayReq adapayReq) {
|
public AdapayResp pay(AdapayReq adapayReq) throws Exception{
|
||||||
//创建支付对象的参数,全部参数请参考 https://docs.adapay.tech/api/index.html
|
AdapayResp resp = new AdapayResp();
|
||||||
|
|
||||||
Map<String, Object> paymentParams = new HashMap<>(10);
|
Map<String, Object> paymentParams = new HashMap<>(10);
|
||||||
|
paymentParams.put("adapay_connection_request_timeout", 10000);
|
||||||
// 设置超时时间 单位毫秒 类型 int
|
paymentParams.put("adapay_connect_timeout", 30000);
|
||||||
// adapay_connection_request_timeout 类型 int, 单位:毫秒 ms
|
paymentParams.put("adapay_socket_timeout", 30000);
|
||||||
// 非必须, 默认 10000 指从连接池获取连接的 timeout
|
|
||||||
paymentParams.put("adapay_connection_request_timeout", 1500);
|
|
||||||
// adapay_connect_timeout 单位:毫秒 ms
|
|
||||||
// 非必须, 默认 30000 指客户端和服务器建立连接的timeout
|
|
||||||
paymentParams.put("adapay_connect_timeout", 1500);
|
|
||||||
// adapay_socket_timeout 单位:毫秒 ms
|
|
||||||
// 非必须, 默认 30000 指客户端从服务器读取数据的timeout,超出后会抛出SocketTimeOutException
|
|
||||||
paymentParams.put("adapay_socket_timeout", 1500);
|
|
||||||
|
|
||||||
// 设置网络区域
|
|
||||||
// 非必须, 默认 shanghai, 如果要使用其他区域请提交工单备注服务器公网出口IP地址申请开通(如:beijing)
|
|
||||||
// paymentParams.put("adapay_region", "beijing");
|
|
||||||
|
|
||||||
|
|
||||||
paymentParams.put("app_id", adapayConfig.getAppId());
|
paymentParams.put("app_id", adapayConfig.getAppId());
|
||||||
paymentParams.put("order_no", "jsdk_payment_" + System.currentTimeMillis());
|
paymentParams.put("order_no", "match_order_" + adapayReq.getUserId() + "_" + adapayReq.getOrderType() + "_" + System.currentTimeMillis());
|
||||||
paymentParams.put("pay_channel", "alipay");
|
paymentParams.put("pay_channel", "alipay");
|
||||||
paymentParams.put("pay_amt", "0.01");
|
paymentParams.put("pay_amt", "0.01");
|
||||||
|
paymentParams.put("goods_title", "全民脱单合伙人开通");
|
||||||
paymentParams.put("goods_title", "your goods title");
|
paymentParams.put("goods_desc", "全民脱单合伙人资格开通");
|
||||||
paymentParams.put("goods_desc", "your goods desc");
|
|
||||||
|
|
||||||
paymentParams.put("div_members", "");
|
paymentParams.put("div_members", "");
|
||||||
|
|
||||||
|
|
||||||
//调用sdk方法,创建支付,得到支付对象
|
//调用sdk方法,创建支付,得到支付对象
|
||||||
Map<String, Object> payment = new HashMap<>();
|
Map<String, Object> payment = new HashMap<>();
|
||||||
try {
|
try {
|
||||||
log.info("支付交易,请求参数:" + JSONObject.valueAsStr(payment));
|
log.info("调用第三方支付,入参:{}", JSONObject.toJSONString(paymentParams));
|
||||||
payment = Payment.create(paymentParams);
|
payment = Payment.create(paymentParams);
|
||||||
|
log.info("调用第三方支付, 响应:{}", JSONObject.toJSONString(payment));
|
||||||
} catch (BaseAdaPayException e) {
|
} catch (BaseAdaPayException e) {
|
||||||
e.printStackTrace();
|
log.error("调用第三方支付报错: {}", ExceptionUtil.getExceptionMessage(e));
|
||||||
|
throw new Exception("调用支付失败");
|
||||||
}
|
}
|
||||||
log.info("支付交易,返回参数:" + JSONObject.valueAsStr(payment));
|
if("succeeded".equals(String.valueOf(payment.get("status")))){
|
||||||
log.info("=======execute payment end=======");
|
resp.setOrderNo(String.valueOf(payment.get("order_no")));
|
||||||
return null;
|
JSONObject expendJson = JSONObject.parseObject(String.valueOf(payment.get("expend")));
|
||||||
|
resp.setQrcodeUrl(expendJson.getString("pay_info"));
|
||||||
|
resp.setQueryUrl(expendJson.getString("query_url"));
|
||||||
|
}
|
||||||
|
return resp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue