diff --git a/pay-java-paypal/pom.xml b/pay-java-paypal/pom.xml
new file mode 100644
index 0000000..58d21fe
--- /dev/null
+++ b/pay-java-paypal/pom.xml
@@ -0,0 +1,31 @@
+
+
+
+ pay-java-parent
+ com.egzosn
+ 2.0.8-SNAPSHOT
+
+ 4.0.0
+
+ pay-java-paypal
+
+
+
+
+
+
+ com.egzosn
+ pay-java-common
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pay-java-paypal/src/main/java/com/egzosn/pay/paypal/api/PayPalConfigStorage.java b/pay-java-paypal/src/main/java/com/egzosn/pay/paypal/api/PayPalConfigStorage.java
new file mode 100644
index 0000000..e5e5853
--- /dev/null
+++ b/pay-java-paypal/src/main/java/com/egzosn/pay/paypal/api/PayPalConfigStorage.java
@@ -0,0 +1,48 @@
+package com.egzosn.pay.paypal.api;
+
+import com.egzosn.pay.common.api.BasePayConfigStorage;
+
+/**
+ * 贝宝支付配置存储
+ * @author egan
+ *
+ * email egzosn@gmail.com
+ * date 2018-4-8 22:11:42
+ */
+public class PayPalConfigStorage extends BasePayConfigStorage {
+
+ private volatile String clientID;
+
+ @Override
+ public String getAppid() {
+ return clientID;
+ }
+
+ @Override
+ public String getPid() {
+ return clientID;
+ }
+
+ @Override
+ public String getSeller() {
+ return clientID;
+ }
+
+ public String getClientID() {
+ return clientID;
+ }
+
+ public void setClientID(String clientID) {
+ this.clientID = clientID;
+ }
+
+ public String getClientSecret() {
+ return getKeyPrivate();
+ }
+
+ public void setClientSecret(String clientSecret) {
+ setKeyPrivate(clientSecret);
+ }
+
+
+}
diff --git a/pay-java-paypal/src/main/java/com/egzosn/pay/paypal/api/PayPalPayService.java b/pay-java-paypal/src/main/java/com/egzosn/pay/paypal/api/PayPalPayService.java
new file mode 100644
index 0000000..415f9a4
--- /dev/null
+++ b/pay-java-paypal/src/main/java/com/egzosn/pay/paypal/api/PayPalPayService.java
@@ -0,0 +1,107 @@
+package com.egzosn.pay.paypal.api;
+
+/**
+ * Created by egzosn on 2018/4/8.
+ */
+
+import com.egzosn.pay.common.api.BasePayService;
+import com.egzosn.pay.common.api.PayConfigStorage;
+import com.egzosn.pay.common.bean.*;
+
+import java.awt.image.BufferedImage;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * 贝宝支付配置存储
+ * @author egan
+ *
+ * email egzosn@gmail.com
+ * date 2018-4-8 22:15:09
+ */
+public class PayPalPayService extends BasePayService{
+ public PayPalPayService(PayConfigStorage payConfigStorage) {
+ super(payConfigStorage);
+ }
+
+ @Override
+ public boolean verify(Map params) {
+ return false;
+ }
+
+ @Override
+ public boolean signVerify(Map params, String sign) {
+ return false;
+ }
+
+ @Override
+ public boolean verifySource(String id) {
+ return false;
+ }
+
+ @Override
+ public Map orderInfo(PayOrder order) {
+ return null;
+ }
+
+ @Override
+ public PayOutMessage getPayOutMessage(String code, String message) {
+ return null;
+ }
+
+ @Override
+ public PayOutMessage successPayOutMessage(PayMessage payMessage) {
+ return null;
+ }
+
+ @Override
+ public String buildRequest(Map orderInfo, MethodType method) {
+ return null;
+ }
+
+ @Override
+ public BufferedImage genQrPay(PayOrder order) {
+ return null;
+ }
+
+ @Override
+ public Map microPay(PayOrder order) {
+ return null;
+ }
+
+ @Override
+ public Map query(String tradeNo, String outTradeNo) {
+ return null;
+ }
+
+ @Override
+ public Map close(String tradeNo, String outTradeNo) {
+ return null;
+ }
+
+ @Override
+ public Map refund(String tradeNo, String outTradeNo, BigDecimal refundAmount, BigDecimal totalAmount) {
+ return null;
+ }
+
+ @Override
+ public Map refund(RefundOrder refundOrder) {
+ return null;
+ }
+
+ @Override
+ public Map refundquery(String tradeNo, String outTradeNo) {
+ return null;
+ }
+
+ @Override
+ public Map downloadbill(Date billDate, String billType) {
+ return null;
+ }
+
+ @Override
+ public Map secondaryInterface(Object tradeNoOrBillDate, String outTradeNoBillType, TransactionType transactionType) {
+ return null;
+ }
+}
diff --git a/pom.xml b/pom.xml
index d6d7d52..cc7a6c2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -46,6 +46,7 @@
pay-java-union
pay-java-payoneer
pay-java-demo
+ pay-java-paypal