jeepay支付通道优化
This commit is contained in:
parent
2743de4b65
commit
29a249b541
|
|
@ -761,7 +761,7 @@ INSERT INTO t_pay_interface_define (if_code, if_name, is_mch_mode, is_isv_mode,
|
|||
VALUES ('jeepluspay', '计全付', 1, 0, 1,
|
||||
NULL,
|
||||
NULL,
|
||||
'[{"name":"signType","desc":"签名方式","type":"radio","verify":"required","values":"MD5,RSA2","titles":"MD5,RSA2"},{"name":"merchantNo","desc":"计全付商户号","type":"text","verify":"required"},{"name":"appId","desc":"应用ID","type":"text","verify":"required"},{"name":"appSecret","desc":"md5秘钥","type":"textarea","verify":"required","star":"1"},{"name":"rsa2AppPrivateKey","desc":"RSA2: 应用私钥","type":"text","verify":"required","star":"1"},{"name":"rsa2PayPublicKey","desc":"RSA2: 支付网关公钥","type":"text","verify":"required","star":"1"}]',
|
||||
'[{"name":"signType","desc":"签名方式","type":"radio","verify":"required","values":"MD5,RSA2","titles":"MD5,RSA2"},{"name":"merchantNo","desc":"计全付商户号","type":"text","verify":"required"},{"name":"appId","desc":"应用ID","type":"text","verify":"required"},{"name":"appSecret","desc":"md5秘钥","type":"textarea","verify":"required","star":"1"},{"name":"rsa2AppPrivateKey","desc":"RSA2: 应用私钥","type":"textarea","verify":"required","star":"1"},{"name":"rsa2PayPublicKey","desc":"RSA2: 支付网关公钥","type":"textarea","verify":"required","star":"1"}]',
|
||||
'[{"wayCode": "ALI_APP"}, {"wayCode": "ALI_BAR"}, {"wayCode": "ALI_JSAPI"}, {"wayCode": "ALI_LITE"}, {"wayCode": "ALI_PC"}, {"wayCode": "ALI_QR"}, {"wayCode": "ALI_WAP"}, {"wayCode": "WX_APP"}, {"wayCode": "WX_BAR"}, {"wayCode": "WX_H5"}, {"wayCode": "WX_JSAPI"}, {"wayCode": "WX_LITE"}, {"wayCode": "WX_NATIVE"}]',
|
||||
'http://jeequan.oss-cn-beijing.aliyuncs.com/jeepay/img/jeepluspay.svg', '#0CACFF', 1, '计全付');
|
||||
|
||||
|
|
|
|||
|
|
@ -262,6 +262,6 @@ INSERT INTO t_pay_interface_define (if_code, if_name, is_mch_mode, is_isv_mode,
|
|||
VALUES ('jeepluspay', '计全付', 1, 0, 1,
|
||||
NULL,
|
||||
NULL,
|
||||
'[{"name":"signType","desc":"签名方式","type":"radio","verify":"required","values":"MD5,RSA2","titles":"MD5,RSA2"},{"name":"merchantNo","desc":"计全付商户号","type":"text","verify":"required"},{"name":"appId","desc":"应用ID","type":"text","verify":"required"},{"name":"appSecret","desc":"md5秘钥","type":"textarea","verify":"required","star":"1"},{"name":"rsa2AppPrivateKey","desc":"RSA2: 应用私钥","type":"text","verify":"required","star":"1"},{"name":"rsa2PayPublicKey","desc":"RSA2: 支付网关公钥","type":"text","verify":"required","star":"1"}]',
|
||||
'[{"name":"signType","desc":"签名方式","type":"radio","verify":"required","values":"MD5,RSA2","titles":"MD5,RSA2"},{"name":"merchantNo","desc":"计全付商户号","type":"text","verify":"required"},{"name":"appId","desc":"应用ID","type":"text","verify":"required"},{"name":"appSecret","desc":"md5秘钥","type":"textarea","verify":"required","star":"1"},{"name":"rsa2AppPrivateKey","desc":"RSA2: 应用私钥","type":"textarea","verify":"required","star":"1"},{"name":"rsa2PayPublicKey","desc":"RSA2: 支付网关公钥","type":"textarea","verify":"required","star":"1"}]',
|
||||
'[{"wayCode": "ALI_APP"}, {"wayCode": "ALI_BAR"}, {"wayCode": "ALI_JSAPI"}, {"wayCode": "ALI_LITE"}, {"wayCode": "ALI_PC"}, {"wayCode": "ALI_QR"}, {"wayCode": "ALI_WAP"}, {"wayCode": "WX_APP"}, {"wayCode": "WX_BAR"}, {"wayCode": "WX_H5"}, {"wayCode": "WX_JSAPI"}, {"wayCode": "WX_LITE"}, {"wayCode": "WX_NATIVE"}]',
|
||||
'http://jeequan.oss-cn-beijing.aliyuncs.com/jeepay/img/jeepluspay.svg', '#0CACFF', 1, '计全付');
|
||||
|
|
|
|||
|
|
@ -36,12 +36,13 @@ public class JeepluspayConfig {
|
|||
public static String PAY_STATE_FAIL = "3"; // 3-支付失败
|
||||
|
||||
/** 退款订单状态 */
|
||||
public static String Refund_STATE_SUCCESS = "2"; // 2-退款成功
|
||||
public static String Refund_STATE_FAIL = "3"; // 3-退款失败
|
||||
public static String REFUND_STATE_SUCCESS = "2"; // 2-退款成功
|
||||
public static String REFUND_STATE_FAIL = "3"; // 3-退款失败
|
||||
|
||||
/** 支付方式 */
|
||||
public static String ALI_BAR = "ALI_BAR"; // 支付宝条码
|
||||
public static String ALI_JSAPI = "ALI_JSAPI"; // 支付宝生活号
|
||||
public static String ALI_LITE = "ALI_LITE"; // 支付宝小程序
|
||||
public static String ALI_APP = "ALI_APP"; // 支付宝APP
|
||||
public static String ALI_WAP = "ALI_WAP"; // 支付宝WAP
|
||||
public static String ALI_PC = "ALI_PC"; // 支付宝PC网站
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public class JeepluspayNormalMchParams extends NormalMchParams {
|
|||
private String signType;
|
||||
|
||||
/** md5秘钥 */
|
||||
private String AppSecret;
|
||||
private String appSecret;
|
||||
|
||||
/** RSA2: 应用私钥 */
|
||||
private String rsa2AppPrivateKey;
|
||||
|
|
@ -55,8 +55,8 @@ public class JeepluspayNormalMchParams extends NormalMchParams {
|
|||
public String deSenData() {
|
||||
|
||||
JeepluspayNormalMchParams mchParams = this;
|
||||
if (StringUtils.isNotBlank(this.AppSecret)) {
|
||||
mchParams.setAppSecret(StringKit.str2Star(this.AppSecret, 4, 4, 6));
|
||||
if (StringUtils.isNotBlank(this.appSecret)) {
|
||||
mchParams.setAppSecret(StringKit.str2Star(this.appSecret, 4, 4, 6));
|
||||
}
|
||||
return ((JSONObject) JSON.toJSON(mchParams)).toJSONString();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -80,17 +80,10 @@ public class JeepluspayChannelNoticeService extends AbstractChannelNoticeService
|
|||
// 验签成功后判断上游订单状态
|
||||
ResponseEntity okResponse = textResp("success");
|
||||
|
||||
// 支付状态: 0-订单生成, 1-支付中, 2-支付成功, 3-支付失败, 4-已撤销, 5-已退款, 6-订单关闭
|
||||
String status = paramsJson.getString("state");
|
||||
ChannelRetMsg result = new ChannelRetMsg();
|
||||
result.setResponseEntity(okResponse);
|
||||
result.setChannelOrderId(paramsJson.getString("payOrderId"));
|
||||
result.setChannelState(ChannelRetMsg.ChannelState.WAITING); // 默认支付中
|
||||
if (JeepluspayConfig.PAY_STATE_SUCCESS.equals(status)) {
|
||||
result.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_SUCCESS);
|
||||
} else if (JeepluspayConfig.PAY_STATE_FAIL.equals(status)) {
|
||||
result.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
}
|
||||
result.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_SUCCESS);
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
log.error("error", e);
|
||||
|
|
@ -119,6 +112,12 @@ public class JeepluspayChannelNoticeService extends AbstractChannelNoticeService
|
|||
log.info("验签失败! 回调参数:parameter = {}", jsonParams);
|
||||
return false;
|
||||
}
|
||||
// 支付状态: 0-订单生成, 1-支付中, 2-支付成功, 3-支付失败, 4-已撤销, 5-已退款, 6-订单关闭
|
||||
String status = jsonParams.getString("state");
|
||||
if (!JeepluspayConfig.PAY_STATE_SUCCESS.equals(status)) {
|
||||
log.info("订单状态错误! state = {}", status);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
log.error("error", e);
|
||||
|
|
|
|||
|
|
@ -81,20 +81,11 @@ public class JeepluspayChannelRefundNoticeService extends AbstractChannelRefundN
|
|||
//验签成功后判断上游订单状态
|
||||
ResponseEntity okResponse = textResp("success");
|
||||
|
||||
// 退款状态 0-订单生成 1-退款中 2-退款成功 3-退款失败 4-退款关闭
|
||||
String status = jsonParams.getString("state");
|
||||
|
||||
ChannelRetMsg result = new ChannelRetMsg();
|
||||
result.setChannelOrderId(jsonParams.getString("refundOrderId")); //渠道订单号
|
||||
result.setResponseEntity(okResponse); //响应数据
|
||||
result.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_SUCCESS);
|
||||
|
||||
result.setChannelState(ChannelRetMsg.ChannelState.WAITING); // 默认退款中
|
||||
|
||||
if (JeepluspayConfig.Refund_STATE_SUCCESS.equals(status)) {
|
||||
result.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_SUCCESS);
|
||||
}else if (JeepluspayConfig.Refund_STATE_FAIL.equals(status)) {
|
||||
result.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
}
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
log.error("error", e);
|
||||
|
|
@ -123,6 +114,12 @@ public class JeepluspayChannelRefundNoticeService extends AbstractChannelRefundN
|
|||
log.info("验签失败! 回调参数:parameter = {}", jsonParams);
|
||||
return false;
|
||||
}
|
||||
// 退款状态 0-订单生成 1-退款中 2-退款成功 3-退款失败 4-退款关闭
|
||||
String status = jsonParams.getString("state");
|
||||
if (!JeepluspayConfig.REFUND_STATE_SUCCESS.equals(status)) {
|
||||
log.info("订单状态错误! state = {}", status);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
log.error("error", e);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,75 @@
|
|||
package com.jeequan.jeepay.pay.channel.jeepluspay;
|
||||
|
||||
import com.jeequan.jeepay.Jeepay;
|
||||
import com.jeequan.jeepay.JeepayClient;
|
||||
import com.jeequan.jeepay.core.constants.CS;
|
||||
import com.jeequan.jeepay.core.entity.PayOrder;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayConfig;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayNormalMchParams;
|
||||
import com.jeequan.jeepay.core.utils.SpringBeansUtil;
|
||||
import com.jeequan.jeepay.exception.JeepayException;
|
||||
import com.jeequan.jeepay.model.PayOrderCreateReqModel;
|
||||
import com.jeequan.jeepay.pay.model.MchAppConfigContext;
|
||||
import com.jeequan.jeepay.pay.service.ConfigContextQueryService;
|
||||
import com.jeequan.jeepay.request.PayOrderCreateRequest;
|
||||
import com.jeequan.jeepay.response.JeepayResponse;
|
||||
import com.jeequan.jeepay.response.PayOrderCreateResponse;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
/*
|
||||
* 工具类
|
||||
*
|
||||
* @author xiaoyu
|
||||
* @site https://www.jeequan.com
|
||||
* @date 2022/8/23 16:29
|
||||
*/
|
||||
@Slf4j
|
||||
public class JeepluspayKit {
|
||||
|
||||
|
||||
public static PayOrderCreateResponse payRequest(PayOrder payOrder, MchAppConfigContext mchAppConfigContext, PayOrderCreateReqModel model) throws JeepayException {
|
||||
|
||||
// 发起统一下单
|
||||
PayOrderCreateResponse response = new PayOrderCreateResponse();
|
||||
ConfigContextQueryService configContextQueryService = SpringBeansUtil.getBean(ConfigContextQueryService.class);
|
||||
JeepluspayNormalMchParams normalMchParams = (JeepluspayNormalMchParams) configContextQueryService.queryNormalMchParams(mchAppConfigContext.getMchNo(), mchAppConfigContext.getAppId(), CS.IF_CODE.JEEPLUSPAY);
|
||||
// 构建请求数据
|
||||
PayOrderCreateRequest request = new PayOrderCreateRequest();
|
||||
model.setMchNo(normalMchParams.getMerchantNo()); // 商户号
|
||||
model.setAppId(normalMchParams.getAppId()); // 应用ID
|
||||
model.setMchOrderNo(payOrder.getPayOrderId()); // 商户订单号
|
||||
model.setAmount(payOrder.getAmount()); // 金额,单位分
|
||||
model.setCurrency(payOrder.getCurrency()); // 币种,目前只支持cny
|
||||
model.setClientIp(payOrder.getClientIp()); // 发起支付请求客户端的IP地址
|
||||
model.setSubject(payOrder.getSubject()); // 商品标题
|
||||
model.setBody(payOrder.getBody()); // 商品描述
|
||||
request.setBizModel(model);
|
||||
|
||||
if (normalMchParams.getSignType().equals(JeepluspayConfig.DEFAULT_SIGN_TYPE) || StringUtils.isEmpty(normalMchParams.getSignType())) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getAppSecret(), Jeepay.getApiBase());
|
||||
response = jeepayClient.execute(request);
|
||||
|
||||
} else if (normalMchParams.getSignType().equals(JeepluspayConfig.SIGN_TYPE_RSA2)) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getRsa2AppPrivateKey(), Jeepay.getApiBase());
|
||||
response = jeepayClient.executeByRSA2(request);
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
public static Boolean checkPayResp(JeepayResponse response , MchAppConfigContext mchAppConfigContext) {
|
||||
ConfigContextQueryService configContextQueryService = SpringBeansUtil.getBean(ConfigContextQueryService.class);
|
||||
JeepluspayNormalMchParams normalMchParams = (JeepluspayNormalMchParams) configContextQueryService.queryNormalMchParams(mchAppConfigContext.getMchNo(), mchAppConfigContext.getAppId(), CS.IF_CODE.JEEPLUSPAY);
|
||||
|
||||
boolean isSuccess = false;
|
||||
if (normalMchParams.getSignType().equals(JeepluspayConfig.DEFAULT_SIGN_TYPE) || StringUtils.isEmpty(normalMchParams.getSignType())) {
|
||||
isSuccess = response.isSuccess(normalMchParams.getAppSecret());
|
||||
|
||||
} else if (normalMchParams.getSignType().equals(JeepluspayConfig.SIGN_TYPE_RSA2)) {
|
||||
isSuccess = response.isSuccessByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
}
|
||||
|
||||
return isSuccess;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -63,23 +63,20 @@ public class JeepluspayPayOrderQueryService implements IPayOrderQueryService {
|
|||
request.setBizModel(model);
|
||||
// 发起请求
|
||||
PayOrderQueryResponse response = new PayOrderQueryResponse();
|
||||
boolean checkSign = false;
|
||||
boolean isSuccess = false;
|
||||
if (normalMchParams.getSignType().equals(JeepluspayConfig.DEFAULT_SIGN_TYPE) || StringUtils.isEmpty(normalMchParams.getSignType())) {
|
||||
if (StringUtils.isEmpty(normalMchParams.getSignType()) || normalMchParams.getSignType().equals(JeepluspayConfig.DEFAULT_SIGN_TYPE)) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getAppSecret(), Jeepay.getApiBase());
|
||||
response = jeepayClient.execute(request);
|
||||
checkSign = response.checkSign(normalMchParams.getAppSecret());
|
||||
isSuccess = response.isSuccess(normalMchParams.getAppSecret());
|
||||
|
||||
} else if (normalMchParams.getSignType().equals(JeepluspayConfig.SIGN_TYPE_RSA2)) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getRsa2AppPrivateKey(), Jeepay.getApiBase());
|
||||
response = jeepayClient.executeByRSA2(request);
|
||||
checkSign = response.checkSignByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
isSuccess = response.isSuccessByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
}
|
||||
|
||||
// 下单返回状态
|
||||
Boolean isSuccess = JeepluspayKit.checkPayResp(response, mchAppConfigContext);
|
||||
|
||||
// 请求响应状态
|
||||
if (isSuccess && checkSign) {
|
||||
if (isSuccess) {
|
||||
// 如果查询请求成功
|
||||
if (JeepluspayConfig.PAY_STATE_SUCCESS.equals(String.valueOf(response.get().getState()))) {
|
||||
return ChannelRetMsg.confirmSuccess(response.get().getPayOrderId());
|
||||
|
|
|
|||
|
|
@ -76,32 +76,30 @@ public class JeepluspayRefundService extends AbstractRefundService {
|
|||
try {
|
||||
// 发起退款
|
||||
RefundOrderCreateResponse response = new RefundOrderCreateResponse();
|
||||
boolean checkSign = false;
|
||||
boolean isSuccess = false;
|
||||
if (normalMchParams.getSignType().equals(JeepluspayConfig.DEFAULT_SIGN_TYPE) || StringUtils.isEmpty(normalMchParams.getSignType())) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getAppSecret(), Jeepay.getApiBase());
|
||||
response = jeepayClient.execute(request);
|
||||
checkSign = response.checkSign(normalMchParams.getAppSecret());
|
||||
isSuccess = response.isSuccess(normalMchParams.getAppSecret());
|
||||
|
||||
} else if (normalMchParams.getSignType().equals(JeepluspayConfig.SIGN_TYPE_RSA2)) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getRsa2AppPrivateKey(), Jeepay.getApiBase());
|
||||
response = jeepayClient.executeByRSA2(request);
|
||||
checkSign = response.checkSignByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
isSuccess = response.isSuccessByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
}
|
||||
|
||||
if (checkSign) {
|
||||
channelRetMsg.setChannelOrderId(response.get().getRefundOrderId());
|
||||
// 退款发送成功
|
||||
if (isSuccess) {
|
||||
// 下单返回状态
|
||||
Boolean isSuccess = JeepluspayKit.checkPayResp(response, mchAppConfigContext);
|
||||
|
||||
// 退款发送成功
|
||||
if (isSuccess) {
|
||||
if (JeepluspayConfig.REFUND_STATE_SUCCESS.equals(response.get().getState().toString())) {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_SUCCESS);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.getCode().toString());
|
||||
channelRetMsg.setChannelErrMsg(response.getMsg());
|
||||
}
|
||||
channelRetMsg.setChannelOrderId(response.get().getRefundOrderId());
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.getCode().toString());
|
||||
channelRetMsg.setChannelErrMsg(response.getMsg());
|
||||
}
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
} catch (JeepayException e) {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
}
|
||||
|
|
@ -120,22 +118,19 @@ public class JeepluspayRefundService extends AbstractRefundService {
|
|||
request.setBizModel(model);
|
||||
// 发起请求
|
||||
RefundOrderQueryResponse response = new RefundOrderQueryResponse();
|
||||
boolean checkSign = false;
|
||||
boolean isSuccess = false;
|
||||
if (normalMchParams.getSignType().equals(JeepluspayConfig.DEFAULT_SIGN_TYPE) || StringUtils.isEmpty(normalMchParams.getSignType())) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getAppSecret(), Jeepay.getApiBase());
|
||||
response = jeepayClient.execute(request);
|
||||
checkSign = response.checkSign(normalMchParams.getAppSecret());
|
||||
isSuccess = response.isSuccessByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
} else if (normalMchParams.getSignType().equals(JeepluspayConfig.SIGN_TYPE_RSA2)) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getRsa2AppPrivateKey(), Jeepay.getApiBase());
|
||||
response = jeepayClient.executeByRSA2(request);
|
||||
checkSign = response.checkSignByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
isSuccess = response.isSuccessByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
}
|
||||
|
||||
// 下单返回状态
|
||||
Boolean isSuccess = JeepluspayKit.checkPayResp(response, mchAppConfigContext);
|
||||
|
||||
// 请求响应状态
|
||||
if (isSuccess && checkSign) {
|
||||
if (isSuccess) {
|
||||
// 如果查询请求成功
|
||||
if (JeepluspayConfig.PAY_STATE_SUCCESS.equals(response.get().getState().toString())) {
|
||||
return ChannelRetMsg.confirmSuccess(response.get().getRefundOrderId());
|
||||
|
|
|
|||
|
|
@ -16,14 +16,12 @@
|
|||
package com.jeequan.jeepay.pay.channel.jeepluspay.payway;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.jeequan.jeepay.Jeepay;
|
||||
import com.jeequan.jeepay.JeepayClient;
|
||||
import com.jeequan.jeepay.core.constants.CS;
|
||||
import com.jeequan.jeepay.core.entity.PayOrder;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayConfig;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayNormalMchParams;
|
||||
import com.jeequan.jeepay.exception.JeepayException;
|
||||
import com.jeequan.jeepay.model.PayOrderCreateReqModel;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayKit;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayPaymentService;
|
||||
import com.jeequan.jeepay.pay.model.MchAppConfigContext;
|
||||
import com.jeequan.jeepay.pay.rqrs.AbstractRS;
|
||||
|
|
@ -31,9 +29,7 @@ import com.jeequan.jeepay.pay.rqrs.msg.ChannelRetMsg;
|
|||
import com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ;
|
||||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.AliAppOrderRS;
|
||||
import com.jeequan.jeepay.pay.util.ApiResBuilder;
|
||||
import com.jeequan.jeepay.request.PayOrderCreateRequest;
|
||||
import com.jeequan.jeepay.response.PayOrderCreateResponse;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/*
|
||||
|
|
@ -53,59 +49,38 @@ public class AliApp extends JeepluspayPaymentService {
|
|||
|
||||
@Override
|
||||
public AbstractRS pay(UnifiedOrderRQ rq, PayOrder payOrder, MchAppConfigContext mchAppConfigContext) {
|
||||
JeepluspayNormalMchParams normalMchParams = (JeepluspayNormalMchParams) configContextQueryService.queryNormalMchParams(mchAppConfigContext.getMchNo(), mchAppConfigContext.getAppId(), CS.IF_CODE.JEEPLUSPAY);
|
||||
// 构建请求数据
|
||||
PayOrderCreateRequest request = new PayOrderCreateRequest();
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
model.setMchNo(normalMchParams.getMerchantNo()); // 商户号
|
||||
model.setAppId(normalMchParams.getAppId()); // 应用ID
|
||||
model.setMchOrderNo(payOrder.getPayOrderId()); // 商户订单号
|
||||
model.setWayCode(JeepluspayConfig.ALI_APP); // 支付方式
|
||||
model.setAmount(payOrder.getAmount()); // 金额,单位分
|
||||
model.setCurrency(payOrder.getCurrency()); // 币种,目前只支持cny
|
||||
model.setClientIp(payOrder.getClientIp()); // 发起支付请求客户端的IP地址
|
||||
model.setSubject(payOrder.getSubject()); // 商品标题
|
||||
model.setBody(payOrder.getBody()); // 商品描述
|
||||
model.setNotifyUrl(getNotifyUrl()); // 异步通知地址
|
||||
JSONObject channelExtra = new JSONObject();
|
||||
channelExtra.put("payDataType", CS.PAY_DATA_TYPE.ALI_APP);
|
||||
model.setChannelExtra(channelExtra.toString()); // 支付宝app支付参数
|
||||
request.setBizModel(model);
|
||||
// 构造函数响应数据
|
||||
AliAppOrderRS res = ApiResBuilder.buildSuccess(AliAppOrderRS.class);
|
||||
ChannelRetMsg channelRetMsg = new ChannelRetMsg();
|
||||
res.setChannelRetMsg(channelRetMsg);
|
||||
try {
|
||||
// 构建请求数据
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
// 支付方式
|
||||
model.setWayCode(JeepluspayConfig.ALI_APP);
|
||||
// 异步通知地址
|
||||
model.setNotifyUrl(getNotifyUrl());
|
||||
// 支付宝app支付参数
|
||||
JSONObject channelExtra = new JSONObject();
|
||||
channelExtra.put("payDataType", CS.PAY_DATA_TYPE.ALI_APP);
|
||||
model.setChannelExtra(channelExtra.toString());
|
||||
|
||||
// 发起统一下单
|
||||
PayOrderCreateResponse response = new PayOrderCreateResponse();
|
||||
boolean checkSign = false;
|
||||
boolean isSuccess = false;
|
||||
if (normalMchParams.getSignType().equals(JeepluspayConfig.DEFAULT_SIGN_TYPE) || StringUtils.isEmpty(normalMchParams.getSignType())) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getAppSecret(), Jeepay.getApiBase());
|
||||
response = jeepayClient.execute(request);
|
||||
checkSign = response.checkSign(normalMchParams.getAppSecret());
|
||||
isSuccess = response.isSuccess(normalMchParams.getAppSecret());
|
||||
PayOrderCreateResponse response = JeepluspayKit.payRequest(payOrder, mchAppConfigContext, model);
|
||||
// 下单返回状态
|
||||
Boolean isSuccess = JeepluspayKit.checkPayResp(response, mchAppConfigContext);
|
||||
|
||||
} else if (normalMchParams.getSignType().equals(JeepluspayConfig.SIGN_TYPE_RSA2)) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getRsa2AppPrivateKey(), Jeepay.getApiBase());
|
||||
response = jeepayClient.executeByRSA2(request);
|
||||
checkSign = response.checkSignByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
isSuccess = response.isSuccessByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
}
|
||||
|
||||
if (checkSign) {
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
String payData = response.getData().getString("payData");
|
||||
res.setPayData(payData);
|
||||
channelRetMsg.setChannelAttach(payData);
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
JSONObject payData = response.getData().getJSONObject("payData");
|
||||
res.setPayData(payData.toJSONString());
|
||||
channelRetMsg.setChannelAttach(payData.toJSONString());
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}
|
||||
} catch (JeepayException e) {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
|
|
|
|||
|
|
@ -16,15 +16,12 @@
|
|||
package com.jeequan.jeepay.pay.channel.jeepluspay.payway;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.jeequan.jeepay.Jeepay;
|
||||
import com.jeequan.jeepay.JeepayClient;
|
||||
import com.jeequan.jeepay.core.constants.CS;
|
||||
import com.jeequan.jeepay.core.entity.PayOrder;
|
||||
import com.jeequan.jeepay.core.exception.BizException;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayConfig;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayNormalMchParams;
|
||||
import com.jeequan.jeepay.exception.JeepayException;
|
||||
import com.jeequan.jeepay.model.PayOrderCreateReqModel;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayKit;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayPaymentService;
|
||||
import com.jeequan.jeepay.pay.model.MchAppConfigContext;
|
||||
import com.jeequan.jeepay.pay.rqrs.AbstractRS;
|
||||
|
|
@ -33,7 +30,6 @@ import com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ;
|
|||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.AliBarOrderRQ;
|
||||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.AliBarOrderRS;
|
||||
import com.jeequan.jeepay.pay.util.ApiResBuilder;
|
||||
import com.jeequan.jeepay.request.PayOrderCreateRequest;
|
||||
import com.jeequan.jeepay.response.PayOrderCreateResponse;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -60,56 +56,41 @@ public class AliBar extends JeepluspayPaymentService {
|
|||
@Override
|
||||
public AbstractRS pay(UnifiedOrderRQ rq, PayOrder payOrder, MchAppConfigContext mchAppConfigContext) {
|
||||
AliBarOrderRQ bizRQ = (AliBarOrderRQ) rq;
|
||||
JeepluspayNormalMchParams normalMchParams = (JeepluspayNormalMchParams) configContextQueryService.queryNormalMchParams(mchAppConfigContext.getMchNo(), mchAppConfigContext.getAppId(), CS.IF_CODE.JEEPLUSPAY);
|
||||
// 构建请求数据
|
||||
PayOrderCreateRequest request = new PayOrderCreateRequest();
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
model.setMchNo(normalMchParams.getMerchantNo()); // 商户号
|
||||
model.setAppId(normalMchParams.getAppId()); // 应用ID
|
||||
model.setMchOrderNo(payOrder.getPayOrderId()); // 商户订单号
|
||||
model.setWayCode(JeepluspayConfig.ALI_BAR); // 支付方式
|
||||
model.setAmount(payOrder.getAmount()); // 金额,单位分
|
||||
model.setCurrency(payOrder.getCurrency()); // 币种,目前只支持cny
|
||||
model.setClientIp(payOrder.getClientIp()); // 发起支付请求客户端的IP地址
|
||||
model.setSubject(payOrder.getSubject()); // 商品标题
|
||||
model.setBody(payOrder.getBody()); // 商品描述
|
||||
model.setNotifyUrl(getNotifyUrl()); // 异步通知地址
|
||||
JSONObject channelExtra = new JSONObject();
|
||||
channelExtra.put("authCode", bizRQ.getAuthCode());
|
||||
model.setChannelExtra(channelExtra.toString()); // 用户付款码值
|
||||
request.setBizModel(model);
|
||||
// 构造函数响应数据
|
||||
AliBarOrderRS res = ApiResBuilder.buildSuccess(AliBarOrderRS.class);
|
||||
ChannelRetMsg channelRetMsg = new ChannelRetMsg();
|
||||
res.setChannelRetMsg(channelRetMsg);
|
||||
try {
|
||||
// 构建请求数据
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
// 支付方式
|
||||
model.setWayCode(JeepluspayConfig.ALI_BAR);
|
||||
// 异步通知地址
|
||||
model.setNotifyUrl(getNotifyUrl());
|
||||
// 用户付款码值
|
||||
JSONObject channelExtra = new JSONObject();
|
||||
channelExtra.put("authCode", bizRQ.getAuthCode());
|
||||
model.setChannelExtra(channelExtra.toString());
|
||||
|
||||
// 发起统一下单
|
||||
PayOrderCreateResponse response = new PayOrderCreateResponse();
|
||||
boolean checkSign = false;
|
||||
boolean isSuccess = false;
|
||||
if (normalMchParams.getSignType().equals(JeepluspayConfig.DEFAULT_SIGN_TYPE) || StringUtils.isEmpty(normalMchParams.getSignType())) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getAppSecret(), Jeepay.getApiBase());
|
||||
response = jeepayClient.execute(request);
|
||||
checkSign = response.checkSign(normalMchParams.getAppSecret());
|
||||
isSuccess = response.isSuccess(normalMchParams.getAppSecret());
|
||||
PayOrderCreateResponse response = JeepluspayKit.payRequest(payOrder, mchAppConfigContext, model);
|
||||
// 下单返回状态
|
||||
Boolean isSuccess = JeepluspayKit.checkPayResp(response, mchAppConfigContext);
|
||||
|
||||
} else if (normalMchParams.getSignType().equals(JeepluspayConfig.SIGN_TYPE_RSA2)) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getRsa2AppPrivateKey(), Jeepay.getApiBase());
|
||||
response = jeepayClient.executeByRSA2(request);
|
||||
checkSign = response.checkSignByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
isSuccess = response.isSuccessByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
}
|
||||
|
||||
if (checkSign) {
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
// 下单成功
|
||||
if (isSuccess) {
|
||||
if (JeepluspayConfig.PAY_STATE_SUCCESS.equals(response.getData().getString("orderState"))) {
|
||||
// 支付成功
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_SUCCESS);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}else {
|
||||
// 支付中
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
}
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}
|
||||
} catch (JeepayException e) {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
|
|
|
|||
|
|
@ -16,15 +16,12 @@
|
|||
package com.jeequan.jeepay.pay.channel.jeepluspay.payway;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.jeequan.jeepay.Jeepay;
|
||||
import com.jeequan.jeepay.JeepayClient;
|
||||
import com.jeequan.jeepay.core.constants.CS;
|
||||
import com.jeequan.jeepay.core.entity.PayOrder;
|
||||
import com.jeequan.jeepay.core.exception.BizException;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayConfig;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayNormalMchParams;
|
||||
import com.jeequan.jeepay.exception.JeepayException;
|
||||
import com.jeequan.jeepay.model.PayOrderCreateReqModel;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayKit;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayPaymentService;
|
||||
import com.jeequan.jeepay.pay.model.MchAppConfigContext;
|
||||
import com.jeequan.jeepay.pay.rqrs.AbstractRS;
|
||||
|
|
@ -33,7 +30,6 @@ import com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ;
|
|||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.AliJsapiOrderRQ;
|
||||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.AliJsapiOrderRS;
|
||||
import com.jeequan.jeepay.pay.util.ApiResBuilder;
|
||||
import com.jeequan.jeepay.request.PayOrderCreateRequest;
|
||||
import com.jeequan.jeepay.response.PayOrderCreateResponse;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -60,59 +56,38 @@ public class AliJsapi extends JeepluspayPaymentService {
|
|||
@Override
|
||||
public AbstractRS pay(UnifiedOrderRQ rq, PayOrder payOrder, MchAppConfigContext mchAppConfigContext) throws Exception {
|
||||
AliJsapiOrderRQ bizRQ = (AliJsapiOrderRQ) rq;
|
||||
JeepluspayNormalMchParams normalMchParams = (JeepluspayNormalMchParams) configContextQueryService.queryNormalMchParams(mchAppConfigContext.getMchNo(), mchAppConfigContext.getAppId(), CS.IF_CODE.JEEPLUSPAY);
|
||||
// 构建请求数据
|
||||
PayOrderCreateRequest request = new PayOrderCreateRequest();
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
model.setMchNo(normalMchParams.getMerchantNo()); // 商户号
|
||||
model.setAppId(normalMchParams.getAppId()); // 应用ID
|
||||
model.setMchOrderNo(payOrder.getPayOrderId()); // 商户订单号
|
||||
model.setWayCode(JeepluspayConfig.ALI_JSAPI); // 支付方式
|
||||
model.setAmount(payOrder.getAmount()); // 金额,单位分
|
||||
model.setCurrency(payOrder.getCurrency()); // 币种,目前只支持cny
|
||||
model.setClientIp(payOrder.getClientIp()); // 发起支付请求客户端的IP地址
|
||||
model.setSubject(payOrder.getSubject()); // 商品标题
|
||||
model.setBody(payOrder.getBody()); // 商品描述
|
||||
model.setNotifyUrl(getNotifyUrl()); // 异步通知地址
|
||||
JSONObject channelExtra = new JSONObject();
|
||||
channelExtra.put("buyerUserId", bizRQ.getBuyerUserId());
|
||||
model.setChannelExtra(channelExtra.toString()); // 支付宝用户ID
|
||||
request.setBizModel(model);
|
||||
// 构造函数响应数据
|
||||
AliJsapiOrderRS res = ApiResBuilder.buildSuccess(AliJsapiOrderRS.class);
|
||||
ChannelRetMsg channelRetMsg = new ChannelRetMsg();
|
||||
res.setChannelRetMsg(channelRetMsg);
|
||||
try {
|
||||
// 构建请求数据
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
// 支付方式
|
||||
model.setWayCode(JeepluspayConfig.ALI_JSAPI);
|
||||
// 异步通知地址
|
||||
model.setNotifyUrl(getNotifyUrl());
|
||||
// 支付宝用户ID
|
||||
JSONObject channelExtra = new JSONObject();
|
||||
channelExtra.put("buyerUserId", bizRQ.getBuyerUserId());
|
||||
model.setChannelExtra(channelExtra.toString());
|
||||
|
||||
// 发起统一下单
|
||||
PayOrderCreateResponse response = new PayOrderCreateResponse();
|
||||
boolean checkSign = false;
|
||||
boolean isSuccess = false;
|
||||
if (normalMchParams.getSignType().equals(JeepluspayConfig.DEFAULT_SIGN_TYPE) || StringUtils.isEmpty(normalMchParams.getSignType())) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getAppSecret(), Jeepay.getApiBase());
|
||||
response = jeepayClient.execute(request);
|
||||
checkSign = response.checkSign(normalMchParams.getAppSecret());
|
||||
isSuccess = response.isSuccess(normalMchParams.getAppSecret());
|
||||
PayOrderCreateResponse response = JeepluspayKit.payRequest(payOrder, mchAppConfigContext, model);
|
||||
// 下单返回状态
|
||||
Boolean isSuccess = JeepluspayKit.checkPayResp(response, mchAppConfigContext);
|
||||
|
||||
} else if (normalMchParams.getSignType().equals(JeepluspayConfig.SIGN_TYPE_RSA2)) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getRsa2AppPrivateKey(), Jeepay.getApiBase());
|
||||
response = jeepayClient.executeByRSA2(request);
|
||||
checkSign = response.checkSignByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
isSuccess = response.isSuccessByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
}
|
||||
|
||||
if (checkSign) {
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
JSONObject payData = response.getData().getJSONObject("payData");
|
||||
res.setAlipayTradeNo(payData.getString("alipayTradeNo"));
|
||||
res.setPayData(payData.toJSONString());
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
JSONObject payData = response.getData().getJSONObject("payData");
|
||||
res.setAlipayTradeNo(payData.getString("alipayTradeNo"));
|
||||
res.setPayData(payData.toJSONString());
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}
|
||||
} catch (JeepayException e) {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
|
|
|
|||
|
|
@ -16,15 +16,12 @@
|
|||
package com.jeequan.jeepay.pay.channel.jeepluspay.payway;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.jeequan.jeepay.Jeepay;
|
||||
import com.jeequan.jeepay.JeepayClient;
|
||||
import com.jeequan.jeepay.core.constants.CS;
|
||||
import com.jeequan.jeepay.core.entity.PayOrder;
|
||||
import com.jeequan.jeepay.core.exception.BizException;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayConfig;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayNormalMchParams;
|
||||
import com.jeequan.jeepay.exception.JeepayException;
|
||||
import com.jeequan.jeepay.model.PayOrderCreateReqModel;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayKit;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayPaymentService;
|
||||
import com.jeequan.jeepay.pay.model.MchAppConfigContext;
|
||||
import com.jeequan.jeepay.pay.rqrs.AbstractRS;
|
||||
|
|
@ -33,7 +30,6 @@ import com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ;
|
|||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.AliLiteOrderRQ;
|
||||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.AliLiteOrderRS;
|
||||
import com.jeequan.jeepay.pay.util.ApiResBuilder;
|
||||
import com.jeequan.jeepay.request.PayOrderCreateRequest;
|
||||
import com.jeequan.jeepay.response.PayOrderCreateResponse;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -60,59 +56,38 @@ public class AliLite extends JeepluspayPaymentService {
|
|||
@Override
|
||||
public AbstractRS pay(UnifiedOrderRQ rq, PayOrder payOrder, MchAppConfigContext mchAppConfigContext) throws Exception {
|
||||
AliLiteOrderRQ bizRQ = (AliLiteOrderRQ) rq;
|
||||
JeepluspayNormalMchParams normalMchParams = (JeepluspayNormalMchParams) configContextQueryService.queryNormalMchParams(mchAppConfigContext.getMchNo(), mchAppConfigContext.getAppId(), CS.IF_CODE.JEEPLUSPAY);
|
||||
// 构建请求数据
|
||||
PayOrderCreateRequest request = new PayOrderCreateRequest();
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
model.setMchNo(normalMchParams.getMerchantNo()); // 商户号
|
||||
model.setAppId(normalMchParams.getAppId()); // 应用ID
|
||||
model.setMchOrderNo(payOrder.getPayOrderId()); // 商户订单号
|
||||
model.setWayCode(JeepluspayConfig.WX_LITE); // 支付方式
|
||||
model.setAmount(payOrder.getAmount()); // 金额,单位分
|
||||
model.setCurrency(payOrder.getCurrency()); // 币种,目前只支持cny
|
||||
model.setClientIp(payOrder.getClientIp()); // 发起支付请求客户端的IP地址
|
||||
model.setSubject(payOrder.getSubject()); // 商品标题
|
||||
model.setBody(payOrder.getBody()); // 商品描述
|
||||
model.setNotifyUrl(getNotifyUrl()); // 异步通知地址
|
||||
JSONObject channelExtra = new JSONObject();
|
||||
channelExtra.put("buyerUserId", bizRQ.getBuyerUserId());
|
||||
model.setChannelExtra(channelExtra.toString()); // 支付宝用户ID
|
||||
request.setBizModel(model);
|
||||
// 构造函数响应数据
|
||||
AliLiteOrderRS res = ApiResBuilder.buildSuccess(AliLiteOrderRS.class);
|
||||
ChannelRetMsg channelRetMsg = new ChannelRetMsg();
|
||||
res.setChannelRetMsg(channelRetMsg);
|
||||
try {
|
||||
// 构建请求数据
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
// 支付方式
|
||||
model.setWayCode(JeepluspayConfig.ALI_LITE);
|
||||
// 异步通知地址
|
||||
model.setNotifyUrl(getNotifyUrl());
|
||||
// 支付宝用户ID
|
||||
JSONObject channelExtra = new JSONObject();
|
||||
channelExtra.put("buyerUserId", bizRQ.getBuyerUserId());
|
||||
model.setChannelExtra(channelExtra.toString());
|
||||
|
||||
// 发起统一下单
|
||||
PayOrderCreateResponse response = new PayOrderCreateResponse();
|
||||
boolean checkSign = false;
|
||||
boolean isSuccess = false;
|
||||
if (normalMchParams.getSignType().equals(JeepluspayConfig.DEFAULT_SIGN_TYPE) || StringUtils.isEmpty(normalMchParams.getSignType())) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getAppSecret(), Jeepay.getApiBase());
|
||||
response = jeepayClient.execute(request);
|
||||
checkSign = response.checkSign(normalMchParams.getAppSecret());
|
||||
isSuccess = response.isSuccess(normalMchParams.getAppSecret());
|
||||
PayOrderCreateResponse response = JeepluspayKit.payRequest(payOrder, mchAppConfigContext, model);
|
||||
// 下单返回状态
|
||||
Boolean isSuccess = JeepluspayKit.checkPayResp(response, mchAppConfigContext);
|
||||
|
||||
} else if (normalMchParams.getSignType().equals(JeepluspayConfig.SIGN_TYPE_RSA2)) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getRsa2AppPrivateKey(), Jeepay.getApiBase());
|
||||
response = jeepayClient.executeByRSA2(request);
|
||||
checkSign = response.checkSignByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
isSuccess = response.isSuccessByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
}
|
||||
|
||||
if (checkSign) {
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
JSONObject payData = response.getData().getJSONObject("payData");
|
||||
res.setAlipayTradeNo(payData.getString("alipayTradeNo"));
|
||||
res.setPayData(payData.toJSONString());
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
JSONObject payData = response.getData().getJSONObject("payData");
|
||||
res.setAlipayTradeNo(payData.getString("alipayTradeNo"));
|
||||
res.setPayData(payData.toJSONString());
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}
|
||||
} catch (JeepayException e) {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
|
|
|
|||
|
|
@ -15,14 +15,12 @@
|
|||
*/
|
||||
package com.jeequan.jeepay.pay.channel.jeepluspay.payway;
|
||||
|
||||
import com.jeequan.jeepay.Jeepay;
|
||||
import com.jeequan.jeepay.JeepayClient;
|
||||
import com.jeequan.jeepay.core.constants.CS;
|
||||
import com.jeequan.jeepay.core.entity.PayOrder;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayConfig;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayNormalMchParams;
|
||||
import com.jeequan.jeepay.exception.JeepayException;
|
||||
import com.jeequan.jeepay.model.PayOrderCreateReqModel;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayKit;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayPaymentService;
|
||||
import com.jeequan.jeepay.pay.model.MchAppConfigContext;
|
||||
import com.jeequan.jeepay.pay.rqrs.AbstractRS;
|
||||
|
|
@ -30,9 +28,7 @@ import com.jeequan.jeepay.pay.rqrs.msg.ChannelRetMsg;
|
|||
import com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ;
|
||||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.AliPcOrderRS;
|
||||
import com.jeequan.jeepay.pay.util.ApiResBuilder;
|
||||
import com.jeequan.jeepay.request.PayOrderCreateRequest;
|
||||
import com.jeequan.jeepay.response.PayOrderCreateResponse;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/*
|
||||
|
|
@ -52,62 +48,44 @@ public class AliPc extends JeepluspayPaymentService {
|
|||
|
||||
@Override
|
||||
public AbstractRS pay(UnifiedOrderRQ rq, PayOrder payOrder, MchAppConfigContext mchAppConfigContext) {
|
||||
JeepluspayNormalMchParams normalMchParams = (JeepluspayNormalMchParams) configContextQueryService.queryNormalMchParams(mchAppConfigContext.getMchNo(), mchAppConfigContext.getAppId(), CS.IF_CODE.JEEPLUSPAY);
|
||||
// 构建请求数据
|
||||
PayOrderCreateRequest request = new PayOrderCreateRequest();
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
model.setMchNo(normalMchParams.getMerchantNo()); // 商户号
|
||||
model.setAppId(normalMchParams.getAppId()); // 应用ID
|
||||
model.setMchOrderNo(payOrder.getPayOrderId()); // 商户订单号
|
||||
model.setWayCode(JeepluspayConfig.ALI_PC); // 支付方式
|
||||
model.setAmount(payOrder.getAmount()); // 金额,单位分
|
||||
model.setCurrency(payOrder.getCurrency()); // 币种,目前只支持cny
|
||||
model.setClientIp(payOrder.getClientIp()); // 发起支付请求客户端的IP地址
|
||||
model.setSubject(payOrder.getSubject()); // 商品标题
|
||||
model.setBody(payOrder.getBody()); // 商品描述
|
||||
model.setNotifyUrl(getNotifyUrl()); // 异步通知地址
|
||||
request.setBizModel(model);
|
||||
|
||||
// 构造函数响应数据
|
||||
AliPcOrderRS res = ApiResBuilder.buildSuccess(AliPcOrderRS.class);
|
||||
ChannelRetMsg channelRetMsg = new ChannelRetMsg();
|
||||
res.setChannelRetMsg(channelRetMsg);
|
||||
try {
|
||||
// 构建请求数据
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
// 支付方式
|
||||
model.setWayCode(JeepluspayConfig.ALI_PC);
|
||||
// 异步通知地址
|
||||
model.setNotifyUrl(getNotifyUrl());
|
||||
|
||||
// 发起统一下单
|
||||
PayOrderCreateResponse response = new PayOrderCreateResponse();
|
||||
boolean checkSign = false;
|
||||
boolean isSuccess = false;
|
||||
if (normalMchParams.getSignType().equals(JeepluspayConfig.DEFAULT_SIGN_TYPE) || StringUtils.isEmpty(normalMchParams.getSignType())) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getAppSecret(), Jeepay.getApiBase());
|
||||
response = jeepayClient.execute(request);
|
||||
checkSign = response.checkSign(normalMchParams.getAppSecret());
|
||||
isSuccess = response.isSuccess(normalMchParams.getAppSecret());
|
||||
PayOrderCreateResponse response = JeepluspayKit.payRequest(payOrder, mchAppConfigContext, model);
|
||||
// 下单返回状态
|
||||
Boolean isSuccess = JeepluspayKit.checkPayResp(response, mchAppConfigContext);
|
||||
|
||||
} else if (normalMchParams.getSignType().equals(JeepluspayConfig.SIGN_TYPE_RSA2)) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getRsa2AppPrivateKey(), Jeepay.getApiBase());
|
||||
response = jeepayClient.executeByRSA2(request);
|
||||
checkSign = response.checkSignByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
isSuccess = response.isSuccessByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
}
|
||||
|
||||
if (checkSign) {
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
String payUrl = response.getData().getString("payData");
|
||||
String payDataType = response.getData().getString("payDataType");
|
||||
if (CS.PAY_DATA_TYPE.FORM.equals(payDataType)) { //表单方式
|
||||
res.setFormContent(payUrl);
|
||||
} else if (CS.PAY_DATA_TYPE.CODE_IMG_URL.equals(payDataType)) { //二维码图片地址
|
||||
res.setCodeImgUrl(payUrl);
|
||||
} else { // 默认都为 payUrl方式
|
||||
res.setPayUrl(payUrl);
|
||||
}
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
String payUrl = response.getData().getString("payData");
|
||||
String payDataType = response.getData().getString("payDataType");
|
||||
if (CS.PAY_DATA_TYPE.FORM.equals(payDataType)) {
|
||||
//表单方式
|
||||
res.setFormContent(payUrl);
|
||||
} else if (CS.PAY_DATA_TYPE.CODE_IMG_URL.equals(payDataType)) {
|
||||
//二维码图片地址
|
||||
res.setCodeImgUrl(payUrl);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
// 默认都为 payUrl方式
|
||||
res.setPayUrl(payUrl);
|
||||
}
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}
|
||||
} catch (JeepayException e) {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
|
|
|
|||
|
|
@ -15,14 +15,12 @@
|
|||
*/
|
||||
package com.jeequan.jeepay.pay.channel.jeepluspay.payway;
|
||||
|
||||
import com.jeequan.jeepay.Jeepay;
|
||||
import com.jeequan.jeepay.JeepayClient;
|
||||
import com.jeequan.jeepay.core.constants.CS;
|
||||
import com.jeequan.jeepay.core.entity.PayOrder;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayConfig;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayNormalMchParams;
|
||||
import com.jeequan.jeepay.exception.JeepayException;
|
||||
import com.jeequan.jeepay.model.PayOrderCreateReqModel;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayKit;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayPaymentService;
|
||||
import com.jeequan.jeepay.pay.model.MchAppConfigContext;
|
||||
import com.jeequan.jeepay.pay.rqrs.AbstractRS;
|
||||
|
|
@ -31,9 +29,7 @@ import com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ;
|
|||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.AliQrOrderRQ;
|
||||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.AliQrOrderRS;
|
||||
import com.jeequan.jeepay.pay.util.ApiResBuilder;
|
||||
import com.jeequan.jeepay.request.PayOrderCreateRequest;
|
||||
import com.jeequan.jeepay.response.PayOrderCreateResponse;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/*
|
||||
|
|
@ -54,59 +50,37 @@ public class AliQr extends JeepluspayPaymentService {
|
|||
@Override
|
||||
public AbstractRS pay(UnifiedOrderRQ rq, PayOrder payOrder, MchAppConfigContext mchAppConfigContext) throws Exception {
|
||||
AliQrOrderRQ aliQrOrderRQ = (AliQrOrderRQ) rq;
|
||||
JeepluspayNormalMchParams normalMchParams = (JeepluspayNormalMchParams) configContextQueryService.queryNormalMchParams(mchAppConfigContext.getMchNo(), mchAppConfigContext.getAppId(), CS.IF_CODE.JEEPLUSPAY);
|
||||
// 构建请求数据
|
||||
PayOrderCreateRequest request = new PayOrderCreateRequest();
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
model.setMchNo(normalMchParams.getMerchantNo()); // 商户号
|
||||
model.setAppId(normalMchParams.getAppId()); // 应用ID
|
||||
model.setMchOrderNo(payOrder.getPayOrderId()); // 商户订单号
|
||||
model.setWayCode(JeepluspayConfig.ALI_QR); // 支付方式
|
||||
model.setAmount(payOrder.getAmount()); // 金额,单位分
|
||||
model.setCurrency(payOrder.getCurrency()); // 币种,目前只支持cny
|
||||
model.setClientIp(payOrder.getClientIp()); // 发起支付请求客户端的IP地址
|
||||
model.setSubject(payOrder.getSubject()); // 商品标题
|
||||
model.setBody(payOrder.getBody()); // 商品描述
|
||||
model.setNotifyUrl(getNotifyUrl()); // 异步通知地址
|
||||
request.setBizModel(model);
|
||||
// 构造函数响应数据
|
||||
AliQrOrderRS res = ApiResBuilder.buildSuccess(AliQrOrderRS.class);
|
||||
ChannelRetMsg channelRetMsg = new ChannelRetMsg();
|
||||
res.setChannelRetMsg(channelRetMsg);
|
||||
try {
|
||||
// 构建请求数据
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
// 支付方式
|
||||
model.setWayCode(JeepluspayConfig.ALI_QR);
|
||||
// 异步通知地址
|
||||
model.setNotifyUrl(getNotifyUrl());
|
||||
|
||||
// 发起统一下单
|
||||
PayOrderCreateResponse response = new PayOrderCreateResponse();
|
||||
boolean checkSign = false;
|
||||
boolean isSuccess = false;
|
||||
if (normalMchParams.getSignType().equals(JeepluspayConfig.DEFAULT_SIGN_TYPE) || StringUtils.isEmpty(normalMchParams.getSignType())) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getAppSecret(), Jeepay.getApiBase());
|
||||
response = jeepayClient.execute(request);
|
||||
checkSign = response.checkSign(normalMchParams.getAppSecret());
|
||||
isSuccess = response.isSuccess(normalMchParams.getAppSecret());
|
||||
PayOrderCreateResponse response = JeepluspayKit.payRequest(payOrder, mchAppConfigContext, model);
|
||||
// 下单返回状态
|
||||
Boolean isSuccess = JeepluspayKit.checkPayResp(response, mchAppConfigContext);
|
||||
|
||||
} else if (normalMchParams.getSignType().equals(JeepluspayConfig.SIGN_TYPE_RSA2)) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getRsa2AppPrivateKey(), Jeepay.getApiBase());
|
||||
response = jeepayClient.executeByRSA2(request);
|
||||
checkSign = response.checkSignByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
isSuccess = response.isSuccessByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
}
|
||||
|
||||
if (checkSign) {
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
// 二维码图片地址
|
||||
if (CS.PAY_DATA_TYPE.CODE_IMG_URL.equals(aliQrOrderRQ.getPayDataType())) {
|
||||
res.setCodeImgUrl(sysConfigService.getDBApplicationConfig().genScanImgUrl(response.get().getPayData()));
|
||||
} else {
|
||||
res.setCodeUrl(response.get().getPayData());
|
||||
}
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
// 二维码图片地址
|
||||
if (CS.PAY_DATA_TYPE.CODE_IMG_URL.equals(aliQrOrderRQ.getPayDataType())) {
|
||||
res.setCodeImgUrl(sysConfigService.getDBApplicationConfig().genScanImgUrl(response.get().getPayData()));
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
res.setCodeUrl(response.get().getPayData());
|
||||
}
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}
|
||||
} catch (JeepayException e) {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
|
|
|
|||
|
|
@ -15,14 +15,12 @@
|
|||
*/
|
||||
package com.jeequan.jeepay.pay.channel.jeepluspay.payway;
|
||||
|
||||
import com.jeequan.jeepay.Jeepay;
|
||||
import com.jeequan.jeepay.JeepayClient;
|
||||
import com.jeequan.jeepay.core.constants.CS;
|
||||
import com.jeequan.jeepay.core.entity.PayOrder;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayConfig;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayNormalMchParams;
|
||||
import com.jeequan.jeepay.exception.JeepayException;
|
||||
import com.jeequan.jeepay.model.PayOrderCreateReqModel;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayKit;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayPaymentService;
|
||||
import com.jeequan.jeepay.pay.model.MchAppConfigContext;
|
||||
import com.jeequan.jeepay.pay.rqrs.AbstractRS;
|
||||
|
|
@ -30,9 +28,7 @@ import com.jeequan.jeepay.pay.rqrs.msg.ChannelRetMsg;
|
|||
import com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ;
|
||||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.AliWapOrderRS;
|
||||
import com.jeequan.jeepay.pay.util.ApiResBuilder;
|
||||
import com.jeequan.jeepay.request.PayOrderCreateRequest;
|
||||
import com.jeequan.jeepay.response.PayOrderCreateResponse;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/*
|
||||
|
|
@ -52,62 +48,44 @@ public class AliWap extends JeepluspayPaymentService {
|
|||
|
||||
@Override
|
||||
public AbstractRS pay(UnifiedOrderRQ rq, PayOrder payOrder, MchAppConfigContext mchAppConfigContext) {
|
||||
JeepluspayNormalMchParams normalMchParams = (JeepluspayNormalMchParams) configContextQueryService.queryNormalMchParams(mchAppConfigContext.getMchNo(), mchAppConfigContext.getAppId(), CS.IF_CODE.JEEPLUSPAY);
|
||||
// 构建请求数据
|
||||
PayOrderCreateRequest request = new PayOrderCreateRequest();
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
model.setMchNo(normalMchParams.getMerchantNo()); // 商户号
|
||||
model.setAppId(normalMchParams.getAppId()); // 应用ID
|
||||
model.setMchOrderNo(payOrder.getPayOrderId()); // 商户订单号
|
||||
model.setWayCode(JeepluspayConfig.ALI_WAP); // 支付方式
|
||||
model.setAmount(payOrder.getAmount()); // 金额,单位分
|
||||
model.setCurrency(payOrder.getCurrency()); // 币种,目前只支持cny
|
||||
model.setClientIp(payOrder.getClientIp()); // 发起支付请求客户端的IP地址
|
||||
model.setSubject(payOrder.getSubject()); // 商品标题
|
||||
model.setBody(payOrder.getBody()); // 商品描述
|
||||
model.setNotifyUrl(getNotifyUrl()); // 异步通知地址
|
||||
request.setBizModel(model);
|
||||
|
||||
// 构造函数响应数据
|
||||
AliWapOrderRS res = ApiResBuilder.buildSuccess(AliWapOrderRS.class);
|
||||
ChannelRetMsg channelRetMsg = new ChannelRetMsg();
|
||||
res.setChannelRetMsg(channelRetMsg);
|
||||
try {
|
||||
// 构建请求数据
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
// 支付方式
|
||||
model.setWayCode(JeepluspayConfig.ALI_WAP);
|
||||
// 异步通知地址
|
||||
model.setNotifyUrl(getNotifyUrl());
|
||||
|
||||
// 发起统一下单
|
||||
PayOrderCreateResponse response = new PayOrderCreateResponse();
|
||||
boolean checkSign = false;
|
||||
boolean isSuccess = false;
|
||||
if (normalMchParams.getSignType().equals(JeepluspayConfig.DEFAULT_SIGN_TYPE) || StringUtils.isEmpty(normalMchParams.getSignType())) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getAppSecret(), Jeepay.getApiBase());
|
||||
response = jeepayClient.execute(request);
|
||||
checkSign = response.checkSign(normalMchParams.getAppSecret());
|
||||
isSuccess = response.isSuccess(normalMchParams.getAppSecret());
|
||||
PayOrderCreateResponse response = JeepluspayKit.payRequest(payOrder, mchAppConfigContext, model);
|
||||
// 下单返回状态
|
||||
Boolean isSuccess = JeepluspayKit.checkPayResp(response, mchAppConfigContext);
|
||||
|
||||
} else if (normalMchParams.getSignType().equals(JeepluspayConfig.SIGN_TYPE_RSA2)) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getRsa2AppPrivateKey(), Jeepay.getApiBase());
|
||||
response = jeepayClient.executeByRSA2(request);
|
||||
checkSign = response.checkSignByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
isSuccess = response.isSuccessByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
}
|
||||
|
||||
if (checkSign) {
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
String payUrl = response.getData().getString("payData");
|
||||
String payDataType = response.getData().getString("payDataType");
|
||||
if (CS.PAY_DATA_TYPE.FORM.equals(payDataType)) { //表单方式
|
||||
res.setFormContent(payUrl);
|
||||
} else if (CS.PAY_DATA_TYPE.CODE_IMG_URL.equals(payDataType)) { //二维码图片地址
|
||||
res.setCodeImgUrl(payUrl);
|
||||
} else { // 默认都为 payUrl方式
|
||||
res.setPayUrl(payUrl);
|
||||
}
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
String payUrl = response.getData().getString("payData");
|
||||
String payDataType = response.getData().getString("payDataType");
|
||||
if (CS.PAY_DATA_TYPE.FORM.equals(payDataType)) {
|
||||
//表单方式
|
||||
res.setFormContent(payUrl);
|
||||
} else if (CS.PAY_DATA_TYPE.CODE_IMG_URL.equals(payDataType)) {
|
||||
//二维码图片地址
|
||||
res.setCodeImgUrl(payUrl);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
// 默认都为 payUrl方式
|
||||
res.setPayUrl(payUrl);
|
||||
}
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}
|
||||
} catch (JeepayException e) {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
|
|
|
|||
|
|
@ -16,14 +16,12 @@
|
|||
package com.jeequan.jeepay.pay.channel.jeepluspay.payway;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.jeequan.jeepay.Jeepay;
|
||||
import com.jeequan.jeepay.JeepayClient;
|
||||
import com.jeequan.jeepay.core.constants.CS;
|
||||
import com.jeequan.jeepay.core.entity.PayOrder;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayConfig;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayNormalMchParams;
|
||||
import com.jeequan.jeepay.exception.JeepayException;
|
||||
import com.jeequan.jeepay.model.PayOrderCreateReqModel;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayKit;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayPaymentService;
|
||||
import com.jeequan.jeepay.pay.model.MchAppConfigContext;
|
||||
import com.jeequan.jeepay.pay.rqrs.AbstractRS;
|
||||
|
|
@ -31,9 +29,7 @@ import com.jeequan.jeepay.pay.rqrs.msg.ChannelRetMsg;
|
|||
import com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ;
|
||||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.WxAppOrderRS;
|
||||
import com.jeequan.jeepay.pay.util.ApiResBuilder;
|
||||
import com.jeequan.jeepay.request.PayOrderCreateRequest;
|
||||
import com.jeequan.jeepay.response.PayOrderCreateResponse;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/*
|
||||
|
|
@ -53,60 +49,39 @@ public class WxApp extends JeepluspayPaymentService {
|
|||
|
||||
@Override
|
||||
public AbstractRS pay(UnifiedOrderRQ rq, PayOrder payOrder, MchAppConfigContext mchAppConfigContext) throws Exception {
|
||||
JeepluspayNormalMchParams normalMchParams = (JeepluspayNormalMchParams) configContextQueryService.queryNormalMchParams(mchAppConfigContext.getMchNo(), mchAppConfigContext.getAppId(), CS.IF_CODE.JEEPLUSPAY);
|
||||
// 构建请求数据
|
||||
PayOrderCreateRequest request = new PayOrderCreateRequest();
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
model.setMchNo(normalMchParams.getMerchantNo()); // 商户号
|
||||
model.setAppId(normalMchParams.getAppId()); // 应用ID
|
||||
model.setMchOrderNo(payOrder.getPayOrderId()); // 商户订单号
|
||||
model.setWayCode(JeepluspayConfig.WX_APP); // 支付方式
|
||||
model.setAmount(payOrder.getAmount()); // 金额,单位分
|
||||
model.setCurrency(payOrder.getCurrency()); // 币种,目前只支持cny
|
||||
model.setClientIp(payOrder.getClientIp()); // 发起支付请求客户端的IP地址
|
||||
model.setSubject(payOrder.getSubject()); // 商品标题
|
||||
model.setBody(payOrder.getBody()); // 商品描述
|
||||
model.setNotifyUrl(getNotifyUrl()); // 异步通知地址
|
||||
JSONObject channelExtra = new JSONObject();
|
||||
channelExtra.put("payDataType", CS.PAY_DATA_TYPE.WX_APP);
|
||||
model.setChannelExtra(channelExtra.toString()); // 微信app支付参数
|
||||
request.setBizModel(model);
|
||||
|
||||
// 构造函数响应数据
|
||||
WxAppOrderRS res = ApiResBuilder.buildSuccess(WxAppOrderRS.class);
|
||||
ChannelRetMsg channelRetMsg = new ChannelRetMsg();
|
||||
res.setChannelRetMsg(channelRetMsg);
|
||||
try {
|
||||
// 构建请求数据
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
// 支付方式
|
||||
model.setWayCode(JeepluspayConfig.WX_APP);
|
||||
// 异步通知地址
|
||||
model.setNotifyUrl(getNotifyUrl());
|
||||
// 微信app支付参数
|
||||
JSONObject channelExtra = new JSONObject();
|
||||
channelExtra.put("payDataType", CS.PAY_DATA_TYPE.WX_APP);
|
||||
model.setChannelExtra(channelExtra.toString());
|
||||
|
||||
// 发起统一下单
|
||||
PayOrderCreateResponse response = new PayOrderCreateResponse();
|
||||
boolean checkSign = false;
|
||||
boolean isSuccess = false;
|
||||
if (normalMchParams.getSignType().equals(JeepluspayConfig.DEFAULT_SIGN_TYPE) || StringUtils.isEmpty(normalMchParams.getSignType())) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getAppSecret(), Jeepay.getApiBase());
|
||||
response = jeepayClient.execute(request);
|
||||
checkSign = response.checkSign(normalMchParams.getAppSecret());
|
||||
isSuccess = response.isSuccess(normalMchParams.getAppSecret());
|
||||
PayOrderCreateResponse response = JeepluspayKit.payRequest(payOrder, mchAppConfigContext, model);
|
||||
// 下单返回状态
|
||||
Boolean isSuccess = JeepluspayKit.checkPayResp(response, mchAppConfigContext);
|
||||
|
||||
} else if (normalMchParams.getSignType().equals(JeepluspayConfig.SIGN_TYPE_RSA2)) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getRsa2AppPrivateKey(), Jeepay.getApiBase());
|
||||
response = jeepayClient.executeByRSA2(request);
|
||||
checkSign = response.checkSignByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
isSuccess = response.isSuccessByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
}
|
||||
|
||||
if (checkSign) {
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
JSONObject resJSON = new JSONObject();
|
||||
resJSON.put("package", response.getData().getString("payData"));
|
||||
res.setPayInfo(resJSON.toJSONString());
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
JSONObject payData = response.getData().getJSONObject("payData");
|
||||
JSONObject resJSON = new JSONObject();
|
||||
resJSON.put("package", payData.toJSONString());
|
||||
res.setPayInfo(resJSON.toJSONString());
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}
|
||||
} catch (JeepayException e) {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
|
|
|
|||
|
|
@ -16,15 +16,12 @@
|
|||
package com.jeequan.jeepay.pay.channel.jeepluspay.payway;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.jeequan.jeepay.Jeepay;
|
||||
import com.jeequan.jeepay.JeepayClient;
|
||||
import com.jeequan.jeepay.core.constants.CS;
|
||||
import com.jeequan.jeepay.core.entity.PayOrder;
|
||||
import com.jeequan.jeepay.core.exception.BizException;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayConfig;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayNormalMchParams;
|
||||
import com.jeequan.jeepay.exception.JeepayException;
|
||||
import com.jeequan.jeepay.model.PayOrderCreateReqModel;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayKit;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayPaymentService;
|
||||
import com.jeequan.jeepay.pay.model.MchAppConfigContext;
|
||||
import com.jeequan.jeepay.pay.rqrs.AbstractRS;
|
||||
|
|
@ -33,7 +30,6 @@ import com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ;
|
|||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.AliBarOrderRS;
|
||||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.WxBarOrderRQ;
|
||||
import com.jeequan.jeepay.pay.util.ApiResBuilder;
|
||||
import com.jeequan.jeepay.request.PayOrderCreateRequest;
|
||||
import com.jeequan.jeepay.response.PayOrderCreateResponse;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -60,56 +56,42 @@ public class WxBar extends JeepluspayPaymentService {
|
|||
@Override
|
||||
public AbstractRS pay(UnifiedOrderRQ rq, PayOrder payOrder, MchAppConfigContext mchAppConfigContext) throws Exception {
|
||||
WxBarOrderRQ bizRQ = (WxBarOrderRQ) rq;
|
||||
JeepluspayNormalMchParams normalMchParams = (JeepluspayNormalMchParams) configContextQueryService.queryNormalMchParams(mchAppConfigContext.getMchNo(), mchAppConfigContext.getAppId(), CS.IF_CODE.JEEPLUSPAY);
|
||||
// 构建请求数据
|
||||
PayOrderCreateRequest request = new PayOrderCreateRequest();
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
model.setMchNo(normalMchParams.getMerchantNo()); // 商户号
|
||||
model.setAppId(normalMchParams.getAppId()); // 应用ID
|
||||
model.setMchOrderNo(payOrder.getPayOrderId()); // 商户订单号
|
||||
model.setWayCode(JeepluspayConfig.WX_BAR); // 支付方式
|
||||
model.setAmount(payOrder.getAmount()); // 金额,单位分
|
||||
model.setCurrency(payOrder.getCurrency()); // 币种,目前只支持cny
|
||||
model.setClientIp(payOrder.getClientIp()); // 发起支付请求客户端的IP地址
|
||||
model.setSubject(payOrder.getSubject()); // 商品标题
|
||||
model.setBody(payOrder.getBody()); // 商品描述
|
||||
model.setNotifyUrl(getNotifyUrl()); // 异步通知地址
|
||||
JSONObject channelExtra = new JSONObject();
|
||||
channelExtra.put("authCode", bizRQ.getAuthCode());
|
||||
model.setChannelExtra(channelExtra.toString()); // 用户付款码值
|
||||
request.setBizModel(model);
|
||||
|
||||
// 构造函数响应数据
|
||||
AliBarOrderRS res = ApiResBuilder.buildSuccess(AliBarOrderRS.class);
|
||||
ChannelRetMsg channelRetMsg = new ChannelRetMsg();
|
||||
res.setChannelRetMsg(channelRetMsg);
|
||||
try {
|
||||
// 构建请求数据
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
// 支付方式
|
||||
model.setWayCode(JeepluspayConfig.WX_BAR);
|
||||
// 异步通知地址
|
||||
model.setNotifyUrl(getNotifyUrl());
|
||||
JSONObject channelExtra = new JSONObject();
|
||||
channelExtra.put("authCode", bizRQ.getAuthCode());
|
||||
// 用户付款码值
|
||||
model.setChannelExtra(channelExtra.toString());
|
||||
|
||||
// 发起统一下单
|
||||
PayOrderCreateResponse response = new PayOrderCreateResponse();
|
||||
boolean checkSign = false;
|
||||
boolean isSuccess = false;
|
||||
if (normalMchParams.getSignType().equals(JeepluspayConfig.DEFAULT_SIGN_TYPE) || StringUtils.isEmpty(normalMchParams.getSignType())) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getAppSecret(), Jeepay.getApiBase());
|
||||
response = jeepayClient.execute(request);
|
||||
checkSign = response.checkSign(normalMchParams.getAppSecret());
|
||||
isSuccess = response.isSuccess(normalMchParams.getAppSecret());
|
||||
PayOrderCreateResponse response = JeepluspayKit.payRequest(payOrder, mchAppConfigContext, model);
|
||||
// 下单返回状态
|
||||
Boolean isSuccess = JeepluspayKit.checkPayResp(response, mchAppConfigContext);
|
||||
|
||||
} else if (normalMchParams.getSignType().equals(JeepluspayConfig.SIGN_TYPE_RSA2)) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getRsa2AppPrivateKey(), Jeepay.getApiBase());
|
||||
response = jeepayClient.executeByRSA2(request);
|
||||
checkSign = response.checkSignByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
isSuccess = response.isSuccessByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
}
|
||||
|
||||
if (checkSign) {
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
if (JeepluspayConfig.PAY_STATE_SUCCESS.equals(response.getData().getString("orderState"))) {
|
||||
// 支付成功
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_SUCCESS);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}else {
|
||||
// 支付中
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
}
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}
|
||||
} catch (JeepayException e) {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
|
|
|
|||
|
|
@ -15,14 +15,12 @@
|
|||
*/
|
||||
package com.jeequan.jeepay.pay.channel.jeepluspay.payway;
|
||||
|
||||
import com.jeequan.jeepay.Jeepay;
|
||||
import com.jeequan.jeepay.JeepayClient;
|
||||
import com.jeequan.jeepay.core.constants.CS;
|
||||
import com.jeequan.jeepay.core.entity.PayOrder;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayConfig;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayNormalMchParams;
|
||||
import com.jeequan.jeepay.exception.JeepayException;
|
||||
import com.jeequan.jeepay.model.PayOrderCreateReqModel;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayKit;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayPaymentService;
|
||||
import com.jeequan.jeepay.pay.model.MchAppConfigContext;
|
||||
import com.jeequan.jeepay.pay.rqrs.AbstractRS;
|
||||
|
|
@ -30,9 +28,7 @@ import com.jeequan.jeepay.pay.rqrs.msg.ChannelRetMsg;
|
|||
import com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ;
|
||||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.WxH5OrderRS;
|
||||
import com.jeequan.jeepay.pay.util.ApiResBuilder;
|
||||
import com.jeequan.jeepay.request.PayOrderCreateRequest;
|
||||
import com.jeequan.jeepay.response.PayOrderCreateResponse;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/*
|
||||
|
|
@ -52,63 +48,44 @@ public class WxH5 extends JeepluspayPaymentService {
|
|||
|
||||
@Override
|
||||
public AbstractRS pay(UnifiedOrderRQ rq, PayOrder payOrder, MchAppConfigContext mchAppConfigContext) {
|
||||
JeepluspayNormalMchParams normalMchParams = (JeepluspayNormalMchParams) configContextQueryService.queryNormalMchParams(mchAppConfigContext.getMchNo(), mchAppConfigContext.getAppId(), CS.IF_CODE.JEEPLUSPAY);
|
||||
// 构建请求数据
|
||||
PayOrderCreateRequest request = new PayOrderCreateRequest();
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
model.setMchNo(normalMchParams.getMerchantNo()); // 商户号
|
||||
model.setAppId(normalMchParams.getAppId()); // 应用ID
|
||||
model.setMchOrderNo(payOrder.getPayOrderId()); // 商户订单号
|
||||
model.setWayCode(JeepluspayConfig.WX_H5); // 支付方式
|
||||
model.setAmount(payOrder.getAmount()); // 金额,单位分
|
||||
model.setCurrency(payOrder.getCurrency()); // 币种,目前只支持cny
|
||||
model.setClientIp(payOrder.getClientIp()); // 发起支付请求客户端的IP地址
|
||||
model.setSubject(payOrder.getSubject()); // 商品标题
|
||||
model.setBody(payOrder.getBody()); // 商品描述
|
||||
model.setNotifyUrl(getNotifyUrl()); // 异步通知地址
|
||||
request.setBizModel(model);
|
||||
// 构造函数响应数据
|
||||
WxH5OrderRS res = ApiResBuilder.buildSuccess(WxH5OrderRS.class);
|
||||
ChannelRetMsg channelRetMsg = new ChannelRetMsg();
|
||||
res.setChannelRetMsg(channelRetMsg);
|
||||
try {
|
||||
// 构建请求数据
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
// 支付方式
|
||||
model.setWayCode(JeepluspayConfig.WX_H5);
|
||||
// 异步通知地址
|
||||
model.setNotifyUrl(getNotifyUrl());
|
||||
|
||||
// 发起统一下单
|
||||
PayOrderCreateResponse response = new PayOrderCreateResponse();
|
||||
boolean checkSign = false;
|
||||
boolean isSuccess = false;
|
||||
if (normalMchParams.getSignType().equals(JeepluspayConfig.DEFAULT_SIGN_TYPE) || StringUtils.isEmpty(normalMchParams.getSignType())) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getAppSecret(), Jeepay.getApiBase());
|
||||
response = jeepayClient.execute(request);
|
||||
checkSign = response.checkSign(normalMchParams.getAppSecret());
|
||||
isSuccess = response.isSuccess(normalMchParams.getAppSecret());
|
||||
PayOrderCreateResponse response = JeepluspayKit.payRequest(payOrder, mchAppConfigContext, model);
|
||||
// 下单返回状态
|
||||
Boolean isSuccess = JeepluspayKit.checkPayResp(response, mchAppConfigContext);
|
||||
|
||||
} else if (normalMchParams.getSignType().equals(JeepluspayConfig.SIGN_TYPE_RSA2)) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getRsa2AppPrivateKey(), Jeepay.getApiBase());
|
||||
response = jeepayClient.executeByRSA2(request);
|
||||
checkSign = response.checkSignByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
isSuccess = response.isSuccessByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
}
|
||||
|
||||
if (checkSign) {
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
String payUrl = response.getData().getString("payData");
|
||||
String payDataType = response.getData().getString("payDataType");
|
||||
if (CS.PAY_DATA_TYPE.FORM.equals(payDataType)) { //表单方式
|
||||
res.setFormContent(payUrl);
|
||||
} else if (CS.PAY_DATA_TYPE.CODE_IMG_URL.equals(payDataType)) { //二维码图片地址
|
||||
res.setCodeImgUrl(payUrl);
|
||||
} else { // 默认都为 payUrl方式
|
||||
res.setPayUrl(payUrl);
|
||||
}
|
||||
// 支付中
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
String payUrl = response.getData().getString("payData");
|
||||
String payDataType = response.getData().getString("payDataType");
|
||||
if (CS.PAY_DATA_TYPE.FORM.equals(payDataType)) {
|
||||
//表单方式
|
||||
res.setFormContent(payUrl);
|
||||
} else if (CS.PAY_DATA_TYPE.CODE_IMG_URL.equals(payDataType)) {
|
||||
//二维码图片地址
|
||||
res.setCodeImgUrl(payUrl);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
// 默认都为 payUrl方式
|
||||
res.setPayUrl(payUrl);
|
||||
}
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
// 支付中
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}
|
||||
} catch (JeepayException e) {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
|
|
|
|||
|
|
@ -16,15 +16,12 @@
|
|||
package com.jeequan.jeepay.pay.channel.jeepluspay.payway;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.jeequan.jeepay.Jeepay;
|
||||
import com.jeequan.jeepay.JeepayClient;
|
||||
import com.jeequan.jeepay.core.constants.CS;
|
||||
import com.jeequan.jeepay.core.entity.PayOrder;
|
||||
import com.jeequan.jeepay.core.exception.BizException;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayConfig;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayNormalMchParams;
|
||||
import com.jeequan.jeepay.exception.JeepayException;
|
||||
import com.jeequan.jeepay.model.PayOrderCreateReqModel;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayKit;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayPaymentService;
|
||||
import com.jeequan.jeepay.pay.model.MchAppConfigContext;
|
||||
import com.jeequan.jeepay.pay.rqrs.AbstractRS;
|
||||
|
|
@ -33,7 +30,6 @@ import com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ;
|
|||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.WxJsapiOrderRQ;
|
||||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.WxJsapiOrderRS;
|
||||
import com.jeequan.jeepay.pay.util.ApiResBuilder;
|
||||
import com.jeequan.jeepay.request.PayOrderCreateRequest;
|
||||
import com.jeequan.jeepay.response.PayOrderCreateResponse;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
|
@ -62,58 +58,38 @@ public class WxJsapi extends JeepluspayPaymentService {
|
|||
@Override
|
||||
public AbstractRS pay(UnifiedOrderRQ rq, PayOrder payOrder, MchAppConfigContext mchAppConfigContext) throws Exception {
|
||||
WxJsapiOrderRQ bizRQ = (WxJsapiOrderRQ) rq;
|
||||
JeepluspayNormalMchParams normalMchParams = (JeepluspayNormalMchParams) configContextQueryService.queryNormalMchParams(mchAppConfigContext.getMchNo(), mchAppConfigContext.getAppId(), CS.IF_CODE.JEEPLUSPAY);
|
||||
// 构建请求数据
|
||||
PayOrderCreateRequest request = new PayOrderCreateRequest();
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
model.setMchNo(normalMchParams.getMerchantNo()); // 商户号
|
||||
model.setAppId(normalMchParams.getAppId()); // 应用ID
|
||||
model.setMchOrderNo(payOrder.getPayOrderId()); // 商户订单号
|
||||
model.setWayCode(JeepluspayConfig.WX_JSAPI); // 支付方式
|
||||
model.setAmount(payOrder.getAmount()); // 金额,单位分
|
||||
model.setCurrency(payOrder.getCurrency()); // 币种,目前只支持cny
|
||||
model.setClientIp(payOrder.getClientIp()); // 发起支付请求客户端的IP地址
|
||||
model.setSubject(payOrder.getSubject()); // 商品标题
|
||||
model.setBody(payOrder.getBody()); // 商品描述
|
||||
model.setNotifyUrl(getNotifyUrl()); // 异步通知地址
|
||||
JSONObject channelExtra = new JSONObject();
|
||||
channelExtra.put("openid", bizRQ.getOpenid());
|
||||
model.setChannelExtra(channelExtra.toString()); // 微信openId
|
||||
request.setBizModel(model);
|
||||
|
||||
// 构造函数响应数据
|
||||
WxJsapiOrderRS res = ApiResBuilder.buildSuccess(WxJsapiOrderRS.class);
|
||||
ChannelRetMsg channelRetMsg = new ChannelRetMsg();
|
||||
res.setChannelRetMsg(channelRetMsg);
|
||||
try {
|
||||
// 构建请求数据
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
// 支付方式
|
||||
model.setWayCode(JeepluspayConfig.WX_JSAPI);
|
||||
// 异步通知地址
|
||||
model.setNotifyUrl(getNotifyUrl());
|
||||
JSONObject channelExtra = new JSONObject();
|
||||
channelExtra.put("openid", bizRQ.getOpenid());
|
||||
// 微信openId
|
||||
model.setChannelExtra(channelExtra.toString());
|
||||
|
||||
// 发起统一下单
|
||||
PayOrderCreateResponse response = new PayOrderCreateResponse();
|
||||
boolean checkSign = false;
|
||||
boolean isSuccess = false;
|
||||
if (normalMchParams.getSignType().equals(JeepluspayConfig.DEFAULT_SIGN_TYPE) || StringUtils.isEmpty(normalMchParams.getSignType())) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getAppSecret(), Jeepay.getApiBase());
|
||||
response = jeepayClient.execute(request);
|
||||
checkSign = response.checkSign(normalMchParams.getAppSecret());
|
||||
isSuccess = response.isSuccess(normalMchParams.getAppSecret());
|
||||
PayOrderCreateResponse response = JeepluspayKit.payRequest(payOrder, mchAppConfigContext, model);
|
||||
// 下单返回状态
|
||||
Boolean isSuccess = JeepluspayKit.checkPayResp(response, mchAppConfigContext);
|
||||
|
||||
} else if (normalMchParams.getSignType().equals(JeepluspayConfig.SIGN_TYPE_RSA2)) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getRsa2AppPrivateKey(), Jeepay.getApiBase());
|
||||
response = jeepayClient.executeByRSA2(request);
|
||||
checkSign = response.checkSignByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
isSuccess = response.isSuccessByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
}
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
res.setPayInfo(response.getData().getString("payData"));
|
||||
|
||||
if (checkSign) {
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
JSONObject payData = response.getData().getJSONObject("payData");
|
||||
res.setPayInfo(payData.toJSONString());
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}
|
||||
} catch (JeepayException e) {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
|
|
|
|||
|
|
@ -16,24 +16,20 @@
|
|||
package com.jeequan.jeepay.pay.channel.jeepluspay.payway;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.jeequan.jeepay.Jeepay;
|
||||
import com.jeequan.jeepay.JeepayClient;
|
||||
import com.jeequan.jeepay.core.constants.CS;
|
||||
import com.jeequan.jeepay.core.entity.PayOrder;
|
||||
import com.jeequan.jeepay.core.exception.BizException;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayConfig;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayNormalMchParams;
|
||||
import com.jeequan.jeepay.exception.JeepayException;
|
||||
import com.jeequan.jeepay.model.PayOrderCreateReqModel;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayKit;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayPaymentService;
|
||||
import com.jeequan.jeepay.pay.model.MchAppConfigContext;
|
||||
import com.jeequan.jeepay.pay.rqrs.AbstractRS;
|
||||
import com.jeequan.jeepay.pay.rqrs.msg.ChannelRetMsg;
|
||||
import com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ;
|
||||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.WxLiteOrderRQ;
|
||||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.WxLiteOrderRS;
|
||||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.WxJsapiOrderRQ;
|
||||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.WxJsapiOrderRS;
|
||||
import com.jeequan.jeepay.pay.util.ApiResBuilder;
|
||||
import com.jeequan.jeepay.request.PayOrderCreateRequest;
|
||||
import com.jeequan.jeepay.response.PayOrderCreateResponse;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
|
@ -52,7 +48,7 @@ public class WxLite extends JeepluspayPaymentService {
|
|||
|
||||
@Override
|
||||
public String preCheck(UnifiedOrderRQ rq, PayOrder payOrder) {
|
||||
WxLiteOrderRQ bizRQ = (WxLiteOrderRQ) rq;
|
||||
WxJsapiOrderRQ bizRQ = (WxJsapiOrderRQ) rq;
|
||||
if (StringUtils.isEmpty(bizRQ.getOpenid())) {
|
||||
throw new BizException("[openid]不可为空");
|
||||
}
|
||||
|
|
@ -61,59 +57,37 @@ public class WxLite extends JeepluspayPaymentService {
|
|||
|
||||
@Override
|
||||
public AbstractRS pay(UnifiedOrderRQ rq, PayOrder payOrder, MchAppConfigContext mchAppConfigContext) throws Exception {
|
||||
WxLiteOrderRQ bizRQ = (WxLiteOrderRQ) rq;
|
||||
JeepluspayNormalMchParams normalMchParams = (JeepluspayNormalMchParams) configContextQueryService.queryNormalMchParams(mchAppConfigContext.getMchNo(), mchAppConfigContext.getAppId(), CS.IF_CODE.JEEPLUSPAY);
|
||||
// 构建请求数据
|
||||
PayOrderCreateRequest request = new PayOrderCreateRequest();
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
model.setMchNo(normalMchParams.getMerchantNo()); // 商户号
|
||||
model.setAppId(normalMchParams.getAppId()); // 应用ID
|
||||
model.setMchOrderNo(payOrder.getPayOrderId()); // 商户订单号
|
||||
model.setWayCode(JeepluspayConfig.WX_LITE); // 支付方式
|
||||
model.setAmount(payOrder.getAmount()); // 金额,单位分
|
||||
model.setCurrency(payOrder.getCurrency()); // 币种,目前只支持cny
|
||||
model.setClientIp(payOrder.getClientIp()); // 发起支付请求客户端的IP地址
|
||||
model.setSubject(payOrder.getSubject()); // 商品标题
|
||||
model.setBody(payOrder.getBody()); // 商品描述
|
||||
model.setNotifyUrl(getNotifyUrl()); // 异步通知地址
|
||||
JSONObject channelExtra = new JSONObject();
|
||||
channelExtra.put("openid", bizRQ.getOpenid());
|
||||
model.setChannelExtra(channelExtra.toString()); // 微信openId
|
||||
request.setBizModel(model);
|
||||
WxJsapiOrderRQ bizRQ = (WxJsapiOrderRQ) rq;
|
||||
// 构造函数响应数据
|
||||
WxLiteOrderRS res = ApiResBuilder.buildSuccess(WxLiteOrderRS.class);
|
||||
WxJsapiOrderRS res = ApiResBuilder.buildSuccess(WxJsapiOrderRS.class);
|
||||
ChannelRetMsg channelRetMsg = new ChannelRetMsg();
|
||||
res.setChannelRetMsg(channelRetMsg);
|
||||
try {
|
||||
// 构建请求数据
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
// 支付方式
|
||||
model.setWayCode(JeepluspayConfig.WX_LITE);
|
||||
// 异步通知地址
|
||||
model.setNotifyUrl(getNotifyUrl());
|
||||
JSONObject channelExtra = new JSONObject();
|
||||
channelExtra.put("openid", bizRQ.getOpenid());
|
||||
// 微信openId
|
||||
model.setChannelExtra(channelExtra.toString());
|
||||
|
||||
// 发起统一下单
|
||||
PayOrderCreateResponse response = new PayOrderCreateResponse();
|
||||
boolean checkSign = false;
|
||||
boolean isSuccess = false;
|
||||
if (normalMchParams.getSignType().equals(JeepluspayConfig.DEFAULT_SIGN_TYPE) || StringUtils.isEmpty(normalMchParams.getSignType())) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getAppSecret(), Jeepay.getApiBase());
|
||||
response = jeepayClient.execute(request);
|
||||
checkSign = response.checkSign(normalMchParams.getAppSecret());
|
||||
isSuccess = response.isSuccess(normalMchParams.getAppSecret());
|
||||
PayOrderCreateResponse response = JeepluspayKit.payRequest(payOrder, mchAppConfigContext, model);
|
||||
// 下单返回状态
|
||||
Boolean isSuccess = JeepluspayKit.checkPayResp(response, mchAppConfigContext);
|
||||
|
||||
} else if (normalMchParams.getSignType().equals(JeepluspayConfig.SIGN_TYPE_RSA2)) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getRsa2AppPrivateKey(), Jeepay.getApiBase());
|
||||
response = jeepayClient.executeByRSA2(request);
|
||||
checkSign = response.checkSignByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
isSuccess = response.isSuccessByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
}
|
||||
|
||||
if (checkSign) {
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
res.setPayInfo(response.getData().getString("payData"));
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
JSONObject payData = response.getData().getJSONObject("payData");
|
||||
res.setPayInfo(payData.toJSONString());
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}
|
||||
} catch (JeepayException e) {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
|
|
|
|||
|
|
@ -15,14 +15,12 @@
|
|||
*/
|
||||
package com.jeequan.jeepay.pay.channel.jeepluspay.payway;
|
||||
|
||||
import com.jeequan.jeepay.Jeepay;
|
||||
import com.jeequan.jeepay.JeepayClient;
|
||||
import com.jeequan.jeepay.core.constants.CS;
|
||||
import com.jeequan.jeepay.core.entity.PayOrder;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayConfig;
|
||||
import com.jeequan.jeepay.core.model.params.jeepluspay.JeepluspayNormalMchParams;
|
||||
import com.jeequan.jeepay.exception.JeepayException;
|
||||
import com.jeequan.jeepay.model.PayOrderCreateReqModel;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayKit;
|
||||
import com.jeequan.jeepay.pay.channel.jeepluspay.JeepluspayPaymentService;
|
||||
import com.jeequan.jeepay.pay.model.MchAppConfigContext;
|
||||
import com.jeequan.jeepay.pay.rqrs.AbstractRS;
|
||||
|
|
@ -31,9 +29,7 @@ import com.jeequan.jeepay.pay.rqrs.payorder.UnifiedOrderRQ;
|
|||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.WxNativeOrderRQ;
|
||||
import com.jeequan.jeepay.pay.rqrs.payorder.payway.WxNativeOrderRS;
|
||||
import com.jeequan.jeepay.pay.util.ApiResBuilder;
|
||||
import com.jeequan.jeepay.request.PayOrderCreateRequest;
|
||||
import com.jeequan.jeepay.response.PayOrderCreateResponse;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/*
|
||||
|
|
@ -54,59 +50,37 @@ public class WxNative extends JeepluspayPaymentService {
|
|||
@Override
|
||||
public AbstractRS pay(UnifiedOrderRQ rq, PayOrder payOrder, MchAppConfigContext mchAppConfigContext) throws Exception {
|
||||
WxNativeOrderRQ bizRQ = (WxNativeOrderRQ) rq;
|
||||
JeepluspayNormalMchParams normalMchParams = (JeepluspayNormalMchParams) configContextQueryService.queryNormalMchParams(mchAppConfigContext.getMchNo(), mchAppConfigContext.getAppId(), CS.IF_CODE.JEEPLUSPAY);
|
||||
// 构建请求数据
|
||||
PayOrderCreateRequest request = new PayOrderCreateRequest();
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
model.setMchNo(normalMchParams.getMerchantNo()); // 商户号
|
||||
model.setAppId(normalMchParams.getAppId()); // 应用ID
|
||||
model.setMchOrderNo(payOrder.getPayOrderId()); // 商户订单号
|
||||
model.setWayCode(JeepluspayConfig.WX_NATIVE); // 支付方式
|
||||
model.setAmount(payOrder.getAmount()); // 金额,单位分
|
||||
model.setCurrency(payOrder.getCurrency()); // 币种,目前只支持cny
|
||||
model.setClientIp(payOrder.getClientIp()); // 发起支付请求客户端的IP地址
|
||||
model.setSubject(payOrder.getSubject()); // 商品标题
|
||||
model.setBody(payOrder.getBody()); // 商品描述
|
||||
model.setNotifyUrl(getNotifyUrl()); // 异步通知地址
|
||||
request.setBizModel(model);
|
||||
// 构造函数响应数据
|
||||
WxNativeOrderRS res = ApiResBuilder.buildSuccess(WxNativeOrderRS.class);
|
||||
ChannelRetMsg channelRetMsg = new ChannelRetMsg();
|
||||
res.setChannelRetMsg(channelRetMsg);
|
||||
try {
|
||||
// 构建请求数据
|
||||
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
|
||||
// 支付方式
|
||||
model.setWayCode(JeepluspayConfig.WX_NATIVE);
|
||||
// 异步通知地址
|
||||
model.setNotifyUrl(getNotifyUrl());
|
||||
|
||||
// 发起统一下单
|
||||
PayOrderCreateResponse response = new PayOrderCreateResponse();
|
||||
boolean checkSign = false;
|
||||
boolean isSuccess = false;
|
||||
if (normalMchParams.getSignType().equals(JeepluspayConfig.DEFAULT_SIGN_TYPE) || StringUtils.isEmpty(normalMchParams.getSignType())) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getAppSecret(), Jeepay.getApiBase());
|
||||
response = jeepayClient.execute(request);
|
||||
checkSign = response.checkSign(normalMchParams.getAppSecret());
|
||||
isSuccess = response.isSuccess(normalMchParams.getAppSecret());
|
||||
PayOrderCreateResponse response = JeepluspayKit.payRequest(payOrder, mchAppConfigContext, model);
|
||||
// 下单返回状态
|
||||
Boolean isSuccess = JeepluspayKit.checkPayResp(response, mchAppConfigContext);
|
||||
|
||||
} else if (normalMchParams.getSignType().equals(JeepluspayConfig.SIGN_TYPE_RSA2)) {
|
||||
JeepayClient jeepayClient = JeepayClient.getInstance(normalMchParams.getAppId(), normalMchParams.getRsa2AppPrivateKey(), Jeepay.getApiBase());
|
||||
response = jeepayClient.executeByRSA2(request);
|
||||
checkSign = response.checkSignByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
isSuccess = response.isSuccessByRsa2(normalMchParams.getRsa2PayPublicKey());
|
||||
}
|
||||
|
||||
if (checkSign) {
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
// 二维码图片地址
|
||||
if (CS.PAY_DATA_TYPE.CODE_IMG_URL.equals(bizRQ.getPayDataType())) {
|
||||
res.setCodeImgUrl(sysConfigService.getDBApplicationConfig().genScanImgUrl(response.get().getPayData()));
|
||||
} else {
|
||||
res.setCodeUrl(response.get().getPayData());
|
||||
}
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
if (isSuccess) {
|
||||
// 下单成功
|
||||
// 二维码图片地址
|
||||
if (CS.PAY_DATA_TYPE.CODE_IMG_URL.equals(bizRQ.getPayDataType())) {
|
||||
res.setCodeImgUrl(sysConfigService.getDBApplicationConfig().genScanImgUrl(response.get().getPayData()));
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
res.setCodeUrl(response.get().getPayData());
|
||||
}
|
||||
channelRetMsg.setChannelOrderId(response.get().getPayOrderId());
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.WAITING);
|
||||
} else {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
channelRetMsg.setChannelErrCode(response.get().getErrCode());
|
||||
channelRetMsg.setChannelErrMsg(response.get().getErrMsg());
|
||||
}
|
||||
} catch (JeepayException e) {
|
||||
channelRetMsg.setChannelState(ChannelRetMsg.ChannelState.CONFIRM_FAIL);
|
||||
|
|
|
|||
Loading…
Reference in New Issue