mirror of
https://gitee.com/egzosn/pay-java-parent.git
synced 2026-05-07 19:46:15 +08:00
增加注释。
This commit is contained in:
18
README.md
18
README.md
@@ -1,15 +1,13 @@
|
||||
|
||||
#pay-java-parent
|
||||
|
||||
##整合支付模块(微信支付,支付宝)
|
||||
## 整合支付模块
|
||||
|
||||
声明: 本项目最初想法自 https://github.com/chanjarster/weixin-java-tools, 15年1月左右关注chanjarster/weixin-java-tools,并将其回调处理修改并进行使用。
|
||||
|
||||
开发版 https://git.oschina.net/egzosn/pay-java-parent/tree/develop
|
||||
|
||||
###特性
|
||||
|
||||
|
||||
### 特性
|
||||
|
||||
1. 不依赖任何 mvc 框架
|
||||
2. 也不依赖 servlet,仅仅作为工具使用,可轻松嵌入到任何系统里(项目例子利用spring mvc的 @PathVariable进行,推荐使用类似的框架)
|
||||
@@ -17,14 +15,14 @@
|
||||
4. 控制层统一异常处理
|
||||
5. LogBack日志记录
|
||||
6. 简单快速完成支付模块的开发
|
||||
7. 支持多种支付类型多支付账户扩展(目前已支持微信支付,支付宝支付,友店支付)
|
||||
7. 支持多种支付类型多支付账户扩展
|
||||
|
||||
###本项目包含 3 个部分:
|
||||
### 本项目包含 3 个部分:
|
||||
|
||||
1. pay-java-common 公共lib,支付核心与规范定义
|
||||
2. pay-java-demo 具体的支付demo
|
||||
3. pay-java-* 具体的支付实现库
|
||||
###Maven配置
|
||||
### Maven配置
|
||||
支付核心模块
|
||||
```xml
|
||||
|
||||
@@ -50,12 +48,12 @@
|
||||
|
||||
|
||||
|
||||
###使用
|
||||
### 使用
|
||||
这里不多说直接上代码 集群的话,友店可能会有bug。
|
||||
|
||||
测试链接 : http://pay.egzosn.com/index.html
|
||||
|
||||
######单一支付教程
|
||||
###### 单一支付教程
|
||||
|
||||
[支付宝](pay-java-ali?dir=1&filepath=pay-java-ali)
|
||||
[微信](pay-java-wx?dir=1&filepath=pay-java-wx)
|
||||
@@ -67,7 +65,7 @@
|
||||
android 例子 [pay-java-android](http://git.oschina.net/egzosn/pay-java-android)
|
||||
|
||||
|
||||
##交流
|
||||
## 交流
|
||||
很希望更多志同道合友友一起扩展新的的支付接口。
|
||||
|
||||
这里感谢[ouyangxiangshao](https://github.com/ouyangxiangshao),[ZhuangXiong](https://github.com/ZhuangXiong) 与[Actinian](http://git.oschina.net/Actinia517) 所提交的安卓例子或者分支
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
|
||||
|
||||
##支付宝支付简单例子
|
||||
## 支付宝支付简单例子
|
||||
|
||||
####支付配置
|
||||
#### 支付配置
|
||||
|
||||
```java
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
```
|
||||
|
||||
|
||||
####创建支付服务
|
||||
#### 创建支付服务
|
||||
|
||||
|
||||
```java
|
||||
@@ -61,7 +61,7 @@
|
||||
|
||||
```
|
||||
|
||||
####创建支付订单信息
|
||||
#### 创建支付订单信息
|
||||
|
||||
```java
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
|
||||
```
|
||||
|
||||
####扫码付
|
||||
#### 扫码付
|
||||
|
||||
```java
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
|
||||
```
|
||||
|
||||
####APP支付
|
||||
#### APP支付
|
||||
|
||||
```java
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
|
||||
```
|
||||
|
||||
####即时到帐 WAP 网页支付
|
||||
#### 即时到帐 WAP 网页支付
|
||||
|
||||
```java
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
|
||||
```
|
||||
|
||||
####条码付 声波付
|
||||
#### 条码付 声波付
|
||||
|
||||
```java
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
|
||||
```
|
||||
|
||||
####回调处理
|
||||
#### 回调处理
|
||||
|
||||
```java
|
||||
|
||||
@@ -146,7 +146,7 @@
|
||||
```
|
||||
|
||||
|
||||
####支付订单查询
|
||||
#### 支付订单查询
|
||||
|
||||
```java
|
||||
|
||||
@@ -155,7 +155,7 @@
|
||||
```
|
||||
|
||||
|
||||
####交易关闭接口
|
||||
#### 交易关闭接口
|
||||
```java
|
||||
|
||||
Map result = service..query("支付宝单号", "我方系统单号");
|
||||
@@ -163,7 +163,7 @@
|
||||
```
|
||||
|
||||
|
||||
####申请退款接口
|
||||
#### 申请退款接口
|
||||
```java
|
||||
|
||||
Map result = service.refund("支付宝单号", "我方系统单号", "退款金额", "订单总金额");
|
||||
@@ -171,14 +171,14 @@
|
||||
```
|
||||
|
||||
|
||||
####查询退款
|
||||
#### 查询退款
|
||||
```java
|
||||
|
||||
Map result = service.refundquery("支付宝单号", "我方系统单号");
|
||||
|
||||
```
|
||||
|
||||
####下载对账单
|
||||
#### 下载对账单
|
||||
```java
|
||||
|
||||
Map result = service.downloadbill("账单时间:日账单格式为yyyy-MM-dd,月账单格式为yyyy-MM", "账单类型");
|
||||
|
||||
@@ -4,23 +4,29 @@ import com.egzosn.pay.common.api.BasePayConfigStorage;
|
||||
|
||||
/**
|
||||
* 支付配置存储
|
||||
* author egan
|
||||
* @author egan
|
||||
*
|
||||
* email egzosn@gmail.com
|
||||
* date 2016-5-18 14:09:01
|
||||
*/
|
||||
public class AliPayConfigStorage extends BasePayConfigStorage {
|
||||
|
||||
// 商户PID
|
||||
/**
|
||||
* 商户PID
|
||||
*/
|
||||
public volatile String appId ;
|
||||
// 商户签约拿到的pid,partner_id的简称,合作伙伴身份等同于 partner
|
||||
/**
|
||||
* 商户签约拿到的pid,partner_id的简称,合作伙伴身份等同于 partner
|
||||
*/
|
||||
public volatile String pid ;
|
||||
//partner_id的简称,合作伙伴身份
|
||||
// public volatile String partner ;
|
||||
|
||||
// 商户收款账号
|
||||
/**
|
||||
* 商户收款账号
|
||||
*/
|
||||
public volatile String seller;
|
||||
//公钥
|
||||
/**
|
||||
* 公钥
|
||||
*/
|
||||
private volatile String aliPublicKey;
|
||||
|
||||
|
||||
@@ -44,26 +50,6 @@ public class AliPayConfigStorage extends BasePayConfigStorage {
|
||||
return appId;
|
||||
}
|
||||
|
||||
/**
|
||||
* @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() {
|
||||
@@ -74,6 +60,7 @@ public class AliPayConfigStorage extends BasePayConfigStorage {
|
||||
this.pid = pid;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSeller() {
|
||||
return seller;
|
||||
}
|
||||
|
||||
@@ -16,22 +16,35 @@ import java.util.concurrent.locks.ReentrantLock;
|
||||
public abstract class BasePayConfigStorage implements PayConfigStorage{
|
||||
|
||||
|
||||
// ali rsa_private 商户私钥,pkcs8格式
|
||||
//wx api_key 应用私钥(生成签名时使用)
|
||||
private volatile String keyPrivate ;
|
||||
// 支付平台公钥(签名校验使用)
|
||||
/**
|
||||
* 应用私钥,rsa_private pkcs8格式 生成签名时使用
|
||||
*/
|
||||
private volatile String keyPrivate;
|
||||
/**
|
||||
* 支付平台公钥(签名校验使用)
|
||||
*/
|
||||
private volatile String keyPublic;
|
||||
//异步回调地址
|
||||
/**
|
||||
* 异步回调地址
|
||||
*/
|
||||
private volatile String notifyUrl;
|
||||
//同步回调地址
|
||||
/**
|
||||
* 同步回调地址,支付完成后展示的页面
|
||||
*/
|
||||
private volatile String returnUrl;;
|
||||
//签名加密类型
|
||||
/**
|
||||
* 签名加密类型
|
||||
*/
|
||||
private volatile String signType;
|
||||
//字符类型
|
||||
/**
|
||||
* 字符类型
|
||||
*/
|
||||
private volatile String inputCharset;
|
||||
|
||||
|
||||
//支付类型 aliPay 支付宝, wxPay微信..等等,开发者自定义,唯一
|
||||
/**
|
||||
* 支付类型 aliPay 支付宝, wxPay微信..等等,扩展支付模块定义唯一。
|
||||
*/
|
||||
private volatile String payType;
|
||||
|
||||
/**
|
||||
@@ -40,13 +53,21 @@ public abstract class BasePayConfigStorage implements PayConfigStorage{
|
||||
private volatile MsgType msgType;
|
||||
|
||||
|
||||
// 访问令牌 每次请求其他方法都要传入的值
|
||||
/**
|
||||
* 访问令牌 每次请求其他方法都要传入的值
|
||||
*/
|
||||
private volatile String accessToken;
|
||||
// access token 到期时间时间戳
|
||||
/**
|
||||
* access token 到期时间时间戳
|
||||
*/
|
||||
private volatile long expiresTime;
|
||||
//授权码锁
|
||||
/**
|
||||
* 授权码锁
|
||||
*/
|
||||
private Lock accessTokenLock = new ReentrantLock();
|
||||
|
||||
/**
|
||||
* 是否为沙箱环境,默认为正式环境
|
||||
*/
|
||||
private boolean isTest = false;
|
||||
|
||||
|
||||
@@ -77,6 +98,7 @@ public abstract class BasePayConfigStorage implements PayConfigStorage{
|
||||
this.notifyUrl = notifyUrl;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getReturnUrl() {
|
||||
return returnUrl;
|
||||
|
||||
@@ -14,21 +14,14 @@ import java.util.concurrent.locks.Lock;
|
||||
*/
|
||||
public interface PayConfigStorage {
|
||||
|
||||
/*
|
||||
/**
|
||||
* 应用id
|
||||
* @return 应用id
|
||||
*/
|
||||
String getAppid();
|
||||
|
||||
/**
|
||||
* 合作商唯一标识
|
||||
* @see #getPid() 代替者
|
||||
* @return 合作商唯一标识
|
||||
*/
|
||||
@Deprecated
|
||||
String getPartner();
|
||||
/**
|
||||
* 合作商唯一标识
|
||||
* @see #getPartner() 代替者
|
||||
* @return 合作商唯一标识
|
||||
*/
|
||||
String getPid();
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.egzosn.pay.common.api;
|
||||
|
||||
import com.egzosn.pay.common.bean.PayMessage;
|
||||
import com.egzosn.pay.common.bean.PayOutMessage;
|
||||
|
||||
import com.egzosn.pay.common.util.LogExceptionHandler;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
@@ -144,6 +145,7 @@ public class PayMessageRouter {
|
||||
if(rule.isAsync()) {
|
||||
futures.add(
|
||||
executorService.submit(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
rule.service(payMessage, payService, exceptionHandler);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2017 the original huodull or egan.
|
||||
* Copyright 2002-2017 the original egan.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -23,6 +23,7 @@ package com.egzosn.pay.common.bean;
|
||||
* email egzosn@gmail.com
|
||||
* date 2017/2/7 9:52
|
||||
* </pre>
|
||||
* 请求方式
|
||||
*/
|
||||
public enum MethodType {
|
||||
GET, POST
|
||||
|
||||
@@ -32,9 +32,13 @@ import static com.egzosn.pay.common.http.UriVariables.getMapToParameters;
|
||||
* </pre>
|
||||
*/
|
||||
public class ClientHttpRequest<T> extends HttpEntityEnclosingRequestBase implements org.apache.http.client.ResponseHandler<T>{
|
||||
//http请求
|
||||
/**
|
||||
* http请求方式 get pos
|
||||
*/
|
||||
private MethodType method;
|
||||
//响应类型
|
||||
/**
|
||||
* 响应类型
|
||||
*/
|
||||
private Class<T> responseType;
|
||||
|
||||
|
||||
@@ -43,40 +47,80 @@ public class ClientHttpRequest<T> extends HttpEntityEnclosingRequestBase impleme
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 空构造
|
||||
*/
|
||||
public ClientHttpRequest() {
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据请求地址 请求方法,请求内容对象
|
||||
* @param uri 请求地址
|
||||
* @param method 请求方法
|
||||
* @param request 请求内容
|
||||
*/
|
||||
public ClientHttpRequest(URI uri, MethodType method, Object request) {
|
||||
this.setURI(uri);
|
||||
this.method = method;
|
||||
this(uri, method);
|
||||
setParameters(request);
|
||||
}
|
||||
/**
|
||||
* 根据请求地址 请求方法
|
||||
* @param uri 请求地址
|
||||
* @param method 请求方法
|
||||
*/
|
||||
public ClientHttpRequest(URI uri, MethodType method) {
|
||||
this.setURI(uri);
|
||||
this.method = method;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据请求地址
|
||||
* @param uri 请求地址
|
||||
*/
|
||||
public ClientHttpRequest(URI uri) {
|
||||
this.setURI(uri);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据请求地址
|
||||
* @param uri 请求地址
|
||||
*/
|
||||
public ClientHttpRequest(String uri) {
|
||||
this.setURI(URI.create(uri));
|
||||
}
|
||||
/**
|
||||
* 根据请求地址 请求方法
|
||||
* @param uri 请求地址
|
||||
* @param method 请求方法
|
||||
*/
|
||||
public ClientHttpRequest(String uri, MethodType method) {
|
||||
this.setURI(URI.create(uri));
|
||||
this.method = method;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据请求地址 请求方法,请求内容对象
|
||||
* @param uri 请求地址
|
||||
* @param method 请求方法
|
||||
* @param request 请求内容
|
||||
*/
|
||||
public ClientHttpRequest(String uri, MethodType method, Object request) {
|
||||
this.setURI(URI.create(uri));
|
||||
this.method = method;
|
||||
this(uri, method);
|
||||
setParameters(request);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置请求方式
|
||||
*
|
||||
* @param method 请求方式
|
||||
* {@link com.egzosn.pay.common.bean.MethodType} 请求方式
|
||||
*/
|
||||
public void setMethod(MethodType method) {
|
||||
this.method = method;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取请求方式
|
||||
* @return 请求方式
|
||||
*/
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return method.name();
|
||||
|
||||
@@ -39,6 +39,7 @@ public enum SignUtils {
|
||||
* @param characterEncoding 编码格式
|
||||
* @return 签名结果
|
||||
*/
|
||||
@Override
|
||||
public boolean verify(String text, String sign, String key, String characterEncoding) {
|
||||
return com.egzosn.pay.common.util.sign.encrypt.MD5.verify(text, sign, key, characterEncoding);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
### 快速入门
|
||||
#####1.支付整合配置
|
||||
##### 1.支付整合配置
|
||||
```java
|
||||
|
||||
|
||||
@@ -220,7 +220,7 @@ public class PayResponse {
|
||||
|
||||
```
|
||||
|
||||
#####2.支付处理器与拦截器简单实现
|
||||
##### 2.支付处理器与拦截器简单实现
|
||||
|
||||
```java
|
||||
/**
|
||||
@@ -271,7 +271,7 @@ public class PayResponse {
|
||||
```
|
||||
|
||||
|
||||
#####3.支付响应PayResponse的获取
|
||||
##### 3.支付响应PayResponse的获取
|
||||
|
||||
|
||||
```java
|
||||
@@ -318,7 +318,7 @@ public class ApyAccountService {
|
||||
```
|
||||
|
||||
|
||||
#####4.根据账户id与业务id,组拼订单信息(支付宝、微信支付订单)获取支付信息所需的数据
|
||||
##### 4.根据账户id与业务id,组拼订单信息(支付宝、微信支付订单)获取支付信息所需的数据
|
||||
|
||||
```java
|
||||
|
||||
@@ -466,7 +466,7 @@ public class ApyAccountService {
|
||||
|
||||
```
|
||||
|
||||
#####5.支付回调
|
||||
##### 5.支付回调
|
||||
```java
|
||||
|
||||
|
||||
|
||||
@@ -23,7 +23,9 @@ public class ApyAccountService {
|
||||
@Resource
|
||||
private AutowireCapableBeanFactory spring;
|
||||
|
||||
//缓存
|
||||
/**
|
||||
* 缓存
|
||||
*/
|
||||
private final static Map<Integer, PayResponse> payResponses = new HashMap<Integer, PayResponse>();
|
||||
|
||||
/**
|
||||
|
||||
@@ -92,10 +92,14 @@ public class PayResponse {
|
||||
router
|
||||
.rule()
|
||||
.async(false)
|
||||
.msgType(MsgType.text.name()) //消息类型
|
||||
.payType(PayType.aliPay.name()) //支付账户事件类型
|
||||
.interceptor(new AliPayMessageInterceptor()) //拦截器
|
||||
.handler(autowire(new AliPayMessageHandler(payId))) //处理器
|
||||
//消息类型
|
||||
.msgType(MsgType.text.name())
|
||||
//支付账户事件类型
|
||||
.payType(PayType.aliPay.name())
|
||||
//拦截器
|
||||
.interceptor(new AliPayMessageInterceptor())
|
||||
//处理器
|
||||
.handler(autowire(new AliPayMessageHandler(payId)))
|
||||
.end()
|
||||
.rule()
|
||||
.async(false)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
|
||||
|
||||
##富友支付简单例子
|
||||
## 富友支付简单例子
|
||||
|
||||
####支付配置
|
||||
#### 支付配置
|
||||
|
||||
```java
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
```
|
||||
|
||||
|
||||
####创建支付服务
|
||||
#### 创建支付服务
|
||||
|
||||
```java
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
```
|
||||
|
||||
####创建支付订单信息
|
||||
#### 创建支付订单信息
|
||||
|
||||
```java
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
```
|
||||
|
||||
|
||||
####网页支付
|
||||
#### 网页支付
|
||||
|
||||
```java
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
```
|
||||
|
||||
|
||||
####回调处理
|
||||
#### 回调处理
|
||||
|
||||
```java
|
||||
|
||||
|
||||
@@ -20,20 +20,10 @@ public class FuiouPayConfigStorage extends BasePayConfigStorage {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 合作商唯一标识
|
||||
*
|
||||
* @see #getPid() 代替者
|
||||
*/
|
||||
@Override
|
||||
public String getPartner () {
|
||||
return mchntCd;
|
||||
}
|
||||
|
||||
/**
|
||||
* 合作商唯一标识
|
||||
*
|
||||
* @see #getPartner() 代替者
|
||||
*/
|
||||
@Override
|
||||
public String getPid () {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
|
||||
|
||||
##友店支付简单例子
|
||||
## 友店支付简单例子
|
||||
|
||||
####支付配置
|
||||
#### 支付配置
|
||||
|
||||
```java
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
```
|
||||
|
||||
|
||||
####创建支付服务
|
||||
#### 创建支付服务
|
||||
|
||||
```java
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
|
||||
```
|
||||
|
||||
####创建支付订单信息
|
||||
#### 创建支付订单信息
|
||||
|
||||
```java
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
```
|
||||
|
||||
|
||||
####扫码付
|
||||
#### 扫码付
|
||||
|
||||
```java
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
```
|
||||
|
||||
|
||||
####回调处理
|
||||
#### 回调处理
|
||||
|
||||
```java
|
||||
|
||||
|
||||
@@ -12,7 +12,9 @@ import com.egzosn.pay.common.api.BasePayConfigStorage;
|
||||
public class WxYouDianPayConfigStorage extends BasePayConfigStorage {
|
||||
|
||||
|
||||
//账号
|
||||
/**
|
||||
* 账号
|
||||
*/
|
||||
public volatile String seller;
|
||||
|
||||
|
||||
@@ -26,11 +28,6 @@ public class WxYouDianPayConfigStorage extends BasePayConfigStorage {
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getPartner() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPid() {
|
||||
return null;
|
||||
|
||||
@@ -33,13 +33,21 @@ import java.util.concurrent.locks.Lock;
|
||||
*/
|
||||
public class WxYouDianPayService extends BasePayService {
|
||||
protected static final Log LOG = LogFactory.getLog(WxYouDianPayService.class);
|
||||
//登录获取授权码
|
||||
/**
|
||||
* 登录获取授权码
|
||||
*/
|
||||
public final static String LOGIN_URL = "http://life.51youdian.com/Api/CheckoutCounter/login";
|
||||
//刷新授权码
|
||||
/**
|
||||
* 刷新授权码
|
||||
*/
|
||||
public final static String RESET_LOGIN_URL = "http://life.51youdian.com/Api/CheckoutCounter/resetLogin";
|
||||
//查看付款订单状态
|
||||
/**
|
||||
* 查看付款订单状态
|
||||
*/
|
||||
public final static String UNIFIEDORDER_STATUS_URL = "http://life.51youdian.com/Api/CheckoutCounter/unifiedorderStatus";
|
||||
//预下单链接
|
||||
/**
|
||||
* 预下单链接
|
||||
*/
|
||||
public final static String UNIFIED_ORDER_URL = "http://life.51youdian.com/Api/CheckoutCounter/unifiedorder";
|
||||
|
||||
|
||||
@@ -310,14 +318,16 @@ public class WxYouDianPayService extends BasePayService {
|
||||
|
||||
/**
|
||||
* 具体需要返回的数据为
|
||||
*return_code 返回码只有SUCCESS和FAIL
|
||||
*return_msg 返回具体信息
|
||||
*nonce_str 您的服务器新生成随机生成32位字符串
|
||||
*sign 为签名,签名规则是您需要发送的所有数据(除了sign)按照字典升序排列后加上&key=xxxxxxxx您的密钥后md5加密,最后转成小写
|
||||
*最后把得到的所有需要返回的数据用json格式化成json对象格式如下
|
||||
*{"return_code":"SUCCESS","return_msg":"ok","nonce_str":"dddddddddddddddddddd’,’sign’:’sdddddddddddddddddd"}
|
||||
* @param code return_code
|
||||
* return_code 返回码只有SUCCESS和FAIL
|
||||
* return_msg 返回具体信息
|
||||
* nonce_str 您的服务器新生成随机生成32位字符串
|
||||
* sign 为签名,签名规则是您需要发送的所有数据(除了sign)按照字典升序排列后加上&key=xxxxxxxx您的密钥后md5加密,最后转成小写
|
||||
* 最后把得到的所有需要返回的数据用json格式化成json对象格式如下
|
||||
* {"return_code":"SUCCESS","return_msg":"ok","nonce_str":"dddddddddddddddddddd’,’sign’:’sdddddddddddddddddd"}
|
||||
*
|
||||
* @param code return_code
|
||||
* @param message return_msg
|
||||
*
|
||||
* @return 返回输出消息
|
||||
*/
|
||||
@Override
|
||||
|
||||
@@ -11,9 +11,13 @@ import com.egzosn.pay.common.bean.TransactionType;
|
||||
*/
|
||||
public enum YoudianTransactionType implements TransactionType {
|
||||
|
||||
//扫码付
|
||||
/**
|
||||
* 扫码付
|
||||
*/
|
||||
NATIVE("unifiedorder"),
|
||||
//刷卡付
|
||||
/**
|
||||
* 刷卡付
|
||||
*/
|
||||
MICROPAY("micropay");//暂未接触
|
||||
|
||||
private String method;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
|
||||
|
||||
##微信支付简单例子
|
||||
## 微信支付简单例子
|
||||
|
||||
####支付配置
|
||||
#### 支付配置
|
||||
|
||||
```java
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
|
||||
```
|
||||
|
||||
####创建支付服务
|
||||
#### 创建支付服务
|
||||
|
||||
```java
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
```
|
||||
|
||||
####创建支付订单信息
|
||||
#### 创建支付订单信息
|
||||
|
||||
```java
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
```
|
||||
|
||||
####扫码付
|
||||
#### 扫码付
|
||||
|
||||
```java
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
|
||||
```
|
||||
|
||||
####APP支付
|
||||
#### APP支付
|
||||
|
||||
```java
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
|
||||
```
|
||||
|
||||
####网页支付
|
||||
#### 网页支付
|
||||
|
||||
```java
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
|
||||
```
|
||||
|
||||
####条码付 刷卡付
|
||||
#### 条码付 刷卡付
|
||||
|
||||
```java
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
|
||||
```
|
||||
|
||||
####回调处理
|
||||
#### 回调处理
|
||||
|
||||
```java
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
|
||||
```
|
||||
|
||||
####支付订单查询
|
||||
#### 支付订单查询
|
||||
|
||||
```java
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
```
|
||||
|
||||
|
||||
####交易关闭接口
|
||||
#### 交易关闭接口
|
||||
```java
|
||||
|
||||
Map result = service..query("微信单号", "我方系统单号");
|
||||
@@ -156,7 +156,7 @@
|
||||
```
|
||||
|
||||
|
||||
####申请退款接口
|
||||
#### 申请退款接口
|
||||
```java
|
||||
|
||||
Map result = service.refund("微信单号", "我方系统单号", "退款金额", "订单总金额");
|
||||
@@ -164,14 +164,14 @@
|
||||
```
|
||||
|
||||
|
||||
####查询退款
|
||||
#### 查询退款
|
||||
```java
|
||||
|
||||
Map result = service.refundquery("微信单号", "我方系统单号");
|
||||
|
||||
```
|
||||
|
||||
####下载对账单
|
||||
#### 下载对账单
|
||||
```java
|
||||
|
||||
Map result = service.downloadbill("账单时间:日账单格式为yyyy-MM-dd,月账单格式为yyyy-MM", "账单类型");
|
||||
|
||||
@@ -15,8 +15,13 @@ public class WxPayConfigStorage extends BasePayConfigStorage {
|
||||
|
||||
|
||||
public String appSecret;
|
||||
/**
|
||||
* 应用id
|
||||
*/
|
||||
public String appid ;
|
||||
// 商户号 合作者id
|
||||
/**
|
||||
* 商户号 合作者id
|
||||
*/
|
||||
public String mchId;
|
||||
|
||||
|
||||
@@ -35,17 +40,11 @@ public class WxPayConfigStorage extends BasePayConfigStorage {
|
||||
this.appid = appid;
|
||||
}
|
||||
|
||||
/**
|
||||
* 合作商唯一标识
|
||||
* @see #getPid() 代替者
|
||||
*/
|
||||
public String getPartner() {
|
||||
return mchId;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 合作商唯一标识
|
||||
* @see #getPartner() 代替者
|
||||
*/
|
||||
@Override
|
||||
public String getPid() {
|
||||
@@ -53,6 +52,15 @@ public class WxPayConfigStorage extends BasePayConfigStorage {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 合作商唯一标识
|
||||
*/
|
||||
public void setPid(String mchId) {
|
||||
this.mchId = mchId;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public String getSeller() {
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user