代码整理,注释增加

This commit is contained in:
egan
2017-10-31 23:40:17 +08:00
parent cdf0225d9e
commit de7218d5ff
13 changed files with 134 additions and 103 deletions

View File

@@ -12,32 +12,18 @@ import com.egzosn.pay.common.api.BasePayConfigStorage;
public class AliPayConfigStorage extends BasePayConfigStorage {
/**
* 商户PID
* 商户应用id
*/
public volatile String appId ;
private volatile String appId ;
/**
* 商户签约拿到的pid,partner_id的简称合作伙伴身份等同于 partner
*/
public volatile String pid ;
private volatile String pid ;
/**
* 商户收款账号
*/
public volatile String seller;
/**
* 公钥
*/
private volatile String aliPublicKey;
public String getAliPublicKey() {
return aliPublicKey;
}
public void setAliPublicKey(String aliPublicKey) {
setKeyPublic(aliPublicKey);
this.aliPublicKey = aliPublicKey;
}
private volatile String seller;

View File

@@ -163,11 +163,6 @@ public class AliPayService extends BasePayService {
*/
private Map<String, Object> getOrder(PayOrder order) {
//兼容上一版本 即时收款
/* if (AliTransactionType.DIRECT == order.getTransactionType() || AliTransactionType.MOBILE == order.getTransactionType() || AliTransactionType.WAPPAY == order.getTransactionType()){
return getOrderBefore(order);
}
*/
Map<String, Object> orderInfo = getPublicParameters(order.getTransactionType());
@@ -185,7 +180,6 @@ public class AliPayService extends BasePayService {
case DIRECT:
bizContent.put("product_code", "FAST_INSTANT_TRADE_PAY");
orderInfo.put("return_url", payConfigStorage.getReturnUrl());
// bizContent.remove("seller_id");
break;
case WAP:
bizContent.put("product_code", "QUICK_WAP_PAY");
@@ -245,7 +239,6 @@ public class AliPayService extends BasePayService {
valueStr += (i == len - 1) ? values[i] : values[i] + ",";
}
//乱码解决这段代码在出现乱码时使用。如果mysign和sign不相等也可以使用这段代码转化
//valueStr = new String(valueStr.getBytes("ISO-8859-1"), "gbk");
if (!valueStr.matches("\\w+")){
try {
if(valueStr.equals(new String(valueStr.getBytes("iso8859-1"), "iso8859-1"))){
@@ -313,8 +306,7 @@ public class AliPayService extends BasePayService {
Map<String, Object> orderInfo = orderInfo(order);
// Map<String, Object> content = new HashMap<>(1);
// content.put("biz_content", orderInfo.remove("biz_content"));
//预订单
JSONObject result = getHttpRequestTemplate().postForObject(getReqUrl() + "?" + UriVariables.getMapToParameters(orderInfo), null, JSONObject.class);
JSONObject response = result.getJSONObject("alipay_trade_precreate_response");

View File

@@ -19,16 +19,54 @@ import com.egzosn.pay.common.bean.TransactionType;
* date 2016/10/19 22:58
*/
public enum AliTransactionType implements TransactionType {
//即时到帐 //手机网站支付
DIRECT("alipay.trade.page.pay"),APP("alipay.trade.app.pay"),WAP("alipay.trade.wap.pay")
// TODO 2017/2/23 20:26 author: egan 以下三个为主动交易类型 暂未测试,
//扫码付 //条码付 // 声波付
,SWEEPPAY("alipay.trade.precreate"),BAR_CODE("alipay.trade.pay"),WAVE_CODE("alipay.trade.pay")
//交易辅助接口
,QUERY("alipay.trade.query"),CLOSE("alipay.trade.close"),REFUND("alipay.trade.refund"),REFUNDQUERY("alipay.trade.fastpay.refund.query"),DOWNLOADBILL("alipay.data.dataservice.bill.downloadurl.query")
/**
* 即时到帐
*/
DIRECT("alipay.trade.page.pay"),
/**
* APP支付
*/
APP("alipay.trade.app.pay"),
/**
* 手机网站支付
*/
WAP("alipay.trade.wap.pay")
/**
* 扫码付
*/
,SWEEPPAY("alipay.trade.precreate"),
/**
* 条码付
*/
BAR_CODE("alipay.trade.pay"),
/**
* 声波付
*/
WAVE_CODE("alipay.trade.pay")
//交易辅助接口
/**
* 交易订单查询
*/
,QUERY("alipay.trade.query"),
/**
* 交易订单关闭
*/
CLOSE("alipay.trade.close"),
/**
* 退款
*/
REFUND("alipay.trade.refund"),
/**
* 退款查询
*/
REFUNDQUERY("alipay.trade.fastpay.refund.query"),
/**
* 下载对账单
*/
DOWNLOADBILL("alipay.data.dataservice.bill.downloadurl.query")
//回调通知,回调后不清楚交易类型,以此定义
,UNAWARE("UNAWARE")
;
@@ -44,7 +82,7 @@ public enum AliTransactionType implements TransactionType {
return this.name();
}
/**
/* *
* 获取接口名称
* @return 接口名称
*/

View File

@@ -36,8 +36,8 @@ public class AliPayService extends BasePayService {
protected final Log LOG = LogFactory.getLog(AliPayService.class);
private String HTTPS_REQ_URL = "https://mapi.alipay.com/gateway.do";
private String QUERY_REQ_URL = "https://openapi.alipay.com/gateway.do";
private static final String HTTPS_REQ_URL = "https://mapi.alipay.com/gateway.do";
private static final String QUERY_REQ_URL = "https://openapi.alipay.com/gateway.do";
public AliPayService(PayConfigStorage payConfigStorage) {
super(payConfigStorage);
@@ -164,7 +164,7 @@ public class AliPayService extends BasePayService {
}
private String getOrderInfo(PayOrder order) {
String orderInfo = "partner=\"" + this.payConfigStorage.getPartner() + "\"";
String orderInfo = "partner=\"" + this.payConfigStorage.getPid() + "\"";
orderInfo = orderInfo + "&seller_id=\"" + this.payConfigStorage.getSeller() + "\"";
orderInfo = orderInfo + "&out_trade_no=\"" + order.getOutTradeNo() + "\"";
orderInfo = orderInfo + "&subject=\"" + order.getSubject() + "\"";
@@ -190,7 +190,7 @@ public class AliPayService extends BasePayService {
private Map<String, Object> getOrder(PayOrder order) {
Map<String, Object> orderInfo = new TreeMap<>();
// 签约合作者身份ID
orderInfo.put("partner", payConfigStorage.getPartner());
orderInfo.put("partner", payConfigStorage.getPid());
// 签约卖家支付宝账号
orderInfo.put("seller_id", payConfigStorage.getSeller());
// 商户网站唯一订单号

View File

@@ -22,13 +22,41 @@ import com.egzosn.pay.common.bean.TransactionType;
*/
@Deprecated
public enum AliTransactionType implements TransactionType {
//即时到帐 //移动支付 //手机网站支付
DIRECT("create_direct_pay_by_user"),APP("mobile.securitypay.pay"),WAP("alipay.wap.create.direct.pay.by.user"),
//交易辅助接口
QUERY("alipay.trade.query"),CLOSE("alipay.trade.close"),REFUND("alipay.trade.refund"),REFUNDQUERY("alipay.trade.fastpay.refund.query"),DOWNLOADBILL("alipay.data.dataservice.bill.downloadurl.query")
/**
* 即时到帐
*/
DIRECT("create_direct_pay_by_user"),
/**
* 移动支付
*/
APP("mobile.securitypay.pay"),
/**
* 手机网站支付
*/
WAP("alipay.wap.create.direct.pay.by.user"),
//不知道交易类型,主要用于回调通知,回调后不清楚交易类型,以此定义
,UNAWARE("UNAWARE")
//交易辅助接口
/**
* 交易订单查询
*/
QUERY("alipay.trade.query"),
/**
* 交易订单关闭
*/
CLOSE("alipay.trade.close"),
/**
* 退款
*/
REFUND("alipay.trade.refund"),
/**
* 退款查询
*/
REFUNDQUERY("alipay.trade.fastpay.refund.query"),
/**
* 下载对账单
*/
DOWNLOADBILL("alipay.data.dataservice.bill.downloadurl.query")
;
private String method;

View File

@@ -31,7 +31,7 @@ public abstract class BasePayConfigStorage implements PayConfigStorage{
/**
* 同步回调地址,支付完成后展示的页面
*/
private volatile String returnUrl;;
private volatile String returnUrl;
/**
* 签名加密类型
*/

View File

@@ -27,8 +27,10 @@ public class PayMessageRouterRule {
private final PayMessageRouter routerBuilder;
private boolean async = true;
/**
* 默认同步
*/
private boolean async = false;
/**
* 消息类型

View File

@@ -95,7 +95,7 @@ public class PayController {
* @param payId 账户id
* @param openid openid
* @param price 金额
* @return 跳到支付页面
* @return 返回jsapi所需参数
*/
@RequestMapping(value = "jsapi" )
public Map toPay(Integer payId, String openid, BigDecimal price) {
@@ -130,7 +130,7 @@ public class PayController {
order.setAuthCode(authCode);
//支付结果
Map<String, Object> params = payResponse.getService().microPay(order);
PayConfigStorage storage = payResponse.getStorage();
PayConfigStorage storage = payResponse.getService().getPayConfigStorage();
//校验
if (payResponse.getService().verify(params)) {
PayMessage message = new PayMessage(params, storage.getPayType(), storage.getMsgType().name());

View File

@@ -91,7 +91,6 @@ public class PayResponse {
router = new PayMessageRouter(this.service);
router
.rule()
.async(false)
//消息类型
.msgType(MsgType.text.name())
//支付账户事件类型
@@ -102,20 +101,17 @@ public class PayResponse {
.handler(autowire(new AliPayMessageHandler(payId)))
.end()
.rule()
.async(false)
.msgType(MsgType.xml.name())
.payType(PayType.wxPay.name())
.handler(autowire(new WxPayMessageHandler(payId)))
.end()
.rule()
.async(false)
.msgType(MsgType.json.name())
.payType(PayType.youdianPay.name())
.interceptor(new YoudianPayMessageInterceptor()) //拦截器
.handler(autowire(new YouDianPayMessageHandler(payId)))
.end()
.rule()
.async(false)
.msgType(MsgType.xml.name())
.payType(PayType.fuiou.name())
.handler(autowire(new FuiouPayMessageHandler(payId)))

View File

@@ -3,6 +3,7 @@ package com.egzosn.pay.demo.service.handler;
import com.egzosn.pay.common.api.PayService;
import com.egzosn.pay.common.bean.PayMessage;
import com.egzosn.pay.common.bean.PayOutMessage;
import com.egzosn.pay.common.bean.outbuilder.TextBuilder;
import com.egzosn.pay.common.exception.PayErrorException;
import java.math.BigDecimal;
@@ -42,6 +43,7 @@ public class AliPayMessageHandler extends BasePayMessageHandler {
}/* else if ("WAIT_BUYER_PAY".equals(trade_status) || "TRADE_CLOSED".equals(trade_status)) {
}*/
return payService.getPayOutMessage("fail", "失败");
}
}

View File

@@ -20,19 +20,10 @@ public class UnionPayConfigStorage extends BasePayConfigStorage {
// 商户收款账号
public volatile String seller;
//公钥
private volatile String aliPublicKey;
//全渠道固定值
public static String version = "5.0.0";
public String getAliPublicKey() {
return aliPublicKey;
}
public void setAliPublicKey(String aliPublicKey) {
setKeyPublic(aliPublicKey);
this.aliPublicKey = aliPublicKey;
}
@@ -41,27 +32,8 @@ public class UnionPayConfigStorage extends BasePayConfigStorage {
return null;
}
/**
* @see #getPid()
* @return 合作者id
*/
@Deprecated
@Override
public String getPartner() {
return pid;
}
/**
* 设置合作者id
* @see #setPid(String)
* @param partner 合作者id
*/
@Deprecated
public void setPartner(String partner) {
this.pid = partner;
}
@Override
public String getPid() {
return pid;

View File

@@ -14,22 +14,18 @@ import com.egzosn.pay.common.api.BasePayConfigStorage;
public class WxPayConfigStorage extends BasePayConfigStorage {
public String appSecret;
/**
* 应用id
*/
public String appid ;
private String appid ;
/**
* 商户号 合作者id
*/
public String mchId;
private String mchId;
public void setAppSecret(String appSecret) {
this.appSecret = appSecret;
}
@Override
public String getAppid() {

View File

@@ -10,28 +10,47 @@ import com.egzosn.pay.common.bean.TransactionType;
* date 2016/10/19 22:58
*/
public enum WxTransactionType implements TransactionType {
//公众号支付
/**
* 公众号支付
*/
JSAPI("pay/unifiedorder"),
//扫码付
/**
* 扫码付
*/
NATIVE("pay/unifiedorder"),
//移动支付
/**
* 移动支付
*/
APP("pay/unifiedorder"),
/**
* H5支付
*/
MWEB("pay/unifiedorder"),
//刷卡付,暂未接触
/**
* 刷卡付
*/
MICROPAY("pay/micropay"),
// TODO 2017/3/8 19:14 author: egan 交易辅助接口
//查询订单
/**
* 查询订单
*/
QUERY("pay/orderquery"),
//关闭订单
/**
* 关闭订单
*/
CLOSE("pay/closeorder"),
//申请退款
/**
* 申请退款
*/
REFUND("secapi/pay/refund"),
//查询退款
/**
* 查询退款
*/
REFUNDQUERY("pay/refundquery"),
//下载对账单
DOWNLOADBILL("pay/downloadbill"),
//不知道交易类型,主要用于回调通知,回调后不清楚交易类型,以此定义
UNAWARE("UNAWARE")
/**
* 下载对账单
*/
DOWNLOADBILL("pay/downloadbill")
;
WxTransactionType(String method) {