diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaService.java index 63745aa3..c437966e 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaService.java @@ -12,7 +12,7 @@ import me.chanjar.weixin.common.util.http.RequestHttp; */ public interface WxMaService { /** - * 获取access_token + * 获取access_token. */ String GET_ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s"; @@ -25,14 +25,14 @@ public interface WxMaService { WxMaJscode2SessionResult jsCode2SessionInfo(String jsCode) throws WxErrorException; /** *
- * 验证消息的确来自微信服务器 + * 验证消息的确来自微信服务器. * 详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319&token=&lang=zh_CN **/ boolean checkSignature(String timestamp, String nonce, String signature); /** - * 获取access_token, 不强制刷新access_token + * 获取access_token, 不强制刷新access_token. * * @see #getAccessToken(boolean) */ @@ -40,7 +40,7 @@ public interface WxMaService { /** *
- * 获取access_token,本方法线程安全 + * 获取access_token,本方法线程安全. * 且在多线程同时刷新时只刷新一次,避免超出2000次/日的调用次数上限 * * 另:本service的所有方法都会在access_token过期是调用此方法 @@ -55,12 +55,12 @@ public interface WxMaService { String getAccessToken(boolean forceRefresh) throws WxErrorException; /** - * 当本Service没有实现某个API的时候,可以用这个,针对所有微信API中的GET请求 + * 当本Service没有实现某个API的时候,可以用这个,针对所有微信API中的GET请求. */ String get(String url, String queryParam) throws WxErrorException; /** - * 当本Service没有实现某个API的时候,可以用这个,针对所有微信API中的POST请求 + * 当本Service没有实现某个API的时候,可以用这个,针对所有微信API中的POST请求. */ String post(String url, String postData) throws WxErrorException; @@ -75,7 +75,7 @@ public interface WxMaService { /** *- * 设置当微信系统响应系统繁忙时,要等待多少 retrySleepMillis(ms) * 2^(重试次数 - 1) 再发起重试 + * 设置当微信系统响应系统繁忙时,要等待多少 retrySleepMillis(ms) * 2^(重试次数 - 1) 再发起重试. * 默认:1000ms **/ @@ -83,65 +83,65 @@ public interface WxMaService { /** *- * 设置当微信系统响应系统繁忙时,最大重试次数 + * 设置当微信系统响应系统繁忙时,最大重试次数. * 默认:5次 **/ void setMaxRetryTimes(int maxRetryTimes); /** - * 获取WxMaConfig 对象 + * 获取WxMaConfig 对象. * * @return WxMaConfig */ WxMaConfig getWxMaConfig(); /** - * 注入 {@link WxMaConfig} 的实现 + * 注入 {@link WxMaConfig} 的实现. */ void setWxMaConfig(WxMaConfig wxConfigProvider); /** - * 返回消息(客服消息和模版消息)发送接口方法实现类,以方便调用其各个接口 + * 返回消息(客服消息和模版消息)发送接口方法实现类,以方便调用其各个接口. * * @return WxMaMsgService */ WxMaMsgService getMsgService(); /** - * 返回素材相关接口方法的实现类对象,以方便调用其各个接口 + * 返回素材相关接口方法的实现类对象,以方便调用其各个接口. * * @return WxMaMediaService */ WxMaMediaService getMediaService(); /** - * 返回用户相关接口方法的实现类对象,以方便调用其各个接口 + * 返回用户相关接口方法的实现类对象,以方便调用其各个接口. * * @return WxMaUserService */ WxMaUserService getUserService(); /** - * 返回二维码相关接口方法的实现类对象,以方便调用其各个接口 + * 返回二维码相关接口方法的实现类对象,以方便调用其各个接口. * * @return WxMaQrcodeService */ WxMaQrcodeService getQrcodeService(); /** - * 返回模板配置相关接口方法的实现类对象, 以方便调用其各个接口 + * 返回模板配置相关接口方法的实现类对象, 以方便调用其各个接口. * @return WxMaTemplateService */ WxMaTemplateService getTemplateService(); /** - * 初始化http请求对象 + * 初始化http请求对象. */ void initHttp(); /** - * 请求http请求相关信息 + * 请求http请求相关信息. */ RequestHttp getRequestHttp(); diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaUserService.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaUserService.java index 45c8db10..29837952 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaUserService.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaUserService.java @@ -5,21 +5,21 @@ import cn.binarywang.wx.miniapp.bean.WxMaUserInfo; import me.chanjar.weixin.common.exception.WxErrorException; /** - * 用户信息相关操作接口 + * 用户信息相关操作接口. * * @author Binary Wang */ public interface WxMaUserService { /** - * 获取登录后的session信息 + * 获取登录后的session信息. * * @param jsCode 登录时获取的 code */ WxMaJscode2SessionResult getSessionInfo(String jsCode) throws WxErrorException; /** - * 解密用户敏感数据 + * 解密用户敏感数据. * * @param sessionKey 会话密钥 * @param encryptedData 消息密文 @@ -28,7 +28,7 @@ public interface WxMaUserService { WxMaUserInfo getUserInfo(String sessionKey, String encryptedData, String ivStr); /** - * 验证用户信息完整性 + * 验证用户信息完整性. * * @param sessionKey 会话密钥 * @param rawData 微信用户基本信息 diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceImpl.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceImpl.java index d80860f4..1ec7801d 100644 --- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceImpl.java +++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/WxMaServiceImpl.java @@ -1,37 +1,45 @@ package cn.binarywang.wx.miniapp.api.impl; -import cn.binarywang.wx.miniapp.api.*; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.locks.Lock; + +import org.apache.http.HttpHost; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.BasicResponseHandler; +import org.apache.http.impl.client.CloseableHttpClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import cn.binarywang.wx.miniapp.api.WxMaMediaService; +import cn.binarywang.wx.miniapp.api.WxMaMsgService; +import cn.binarywang.wx.miniapp.api.WxMaQrcodeService; +import cn.binarywang.wx.miniapp.api.WxMaService; +import cn.binarywang.wx.miniapp.api.WxMaTemplateService; +import cn.binarywang.wx.miniapp.api.WxMaUserService; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import cn.binarywang.wx.miniapp.config.WxMaConfig; import cn.binarywang.wx.miniapp.constant.WxMaConstants; import com.google.common.base.Joiner; -import com.google.gson.JsonParser; import me.chanjar.weixin.common.bean.WxAccessToken; import me.chanjar.weixin.common.bean.result.WxError; import me.chanjar.weixin.common.exception.WxErrorException; import me.chanjar.weixin.common.util.crypto.SHA1; -import me.chanjar.weixin.common.util.http.*; +import me.chanjar.weixin.common.util.http.HttpType; +import me.chanjar.weixin.common.util.http.RequestExecutor; +import me.chanjar.weixin.common.util.http.RequestHttp; +import me.chanjar.weixin.common.util.http.SimpleGetRequestExecutor; +import me.chanjar.weixin.common.util.http.SimplePostRequestExecutor; import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder; import me.chanjar.weixin.common.util.http.apache.DefaultApacheHttpClientBuilder; -import org.apache.http.HttpHost; -import org.apache.http.client.config.RequestConfig; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.impl.client.BasicResponseHandler; -import org.apache.http.impl.client.CloseableHttpClient; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.locks.Lock; /** * @author Binary Wang */ public class WxMaServiceImpl implements WxMaService, RequestHttp{ - private static final JsonParser JSON_PARSER = new JsonParser(); private final Logger log = LoggerFactory.getLogger(this.getClass()); private CloseableHttpClient httpClient; @@ -137,6 +145,7 @@ public class WxMaServiceImpl implements WxMaService, RequestHttp Binary Wang diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/constant/WxPayConstants.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/constant/WxPayConstants.java index e2fe996f..9dbe9d05 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/constant/WxPayConstants.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/constant/WxPayConstants.java @@ -1,13 +1,12 @@ package com.github.binarywang.wxpay.constant; -import com.google.common.collect.Lists; -import org.apache.commons.lang3.time.FastDateFormat; - -import java.text.DateFormat; import java.text.Format; -import java.text.SimpleDateFormat; import java.util.List; +import org.apache.commons.lang3.time.FastDateFormat; + +import com.google.common.collect.Lists; + /** * * 微信支付常量类 @@ -19,95 +18,96 @@ import java.util.List; public class WxPayConstants { /** - * 拉取订单评价数据接口的参数中日期格式 + * 拉取订单评价数据接口的参数中日期格式. */ public static final Format QUERY_COMMENT_DATE_FORMAT = FastDateFormat.getInstance("yyyyMMddHHmmss"); /** - * 校验用户姓名选项,企业付款时使用 + * 校验用户姓名选项,企业付款时使用. */ public static class CheckNameOption { /** - * 不校验真实姓名 + * 不校验真实姓名. */ public static final String NO_CHECK = "NO_CHECK"; /** - * 强校验真实姓名 + * 强校验真实姓名. */ public static final String FORCE_CHECK = "FORCE_CHECK"; } /** - * 压缩账单的类型 + * 压缩账单的类型. */ public static class TarType { /** - * 固定值:GZIP,返回格式为.gzip的压缩包账单 + * 固定值:GZIP,返回格式为.gzip的压缩包账单. */ public static final String GZIP = "GZIP"; } /** - * 账单类型 + * 账单类型. */ public static class BillType { /** - * 查询红包时使用:通过商户订单号获取红包信息 + * 查询红包时使用:通过商户订单号获取红包信息. */ public static final String MCHT = "MCHT"; //以下为下载对账单时的账单类型 /** - * 返回当日所有订单信息,默认值 + * 返回当日所有订单信息,默认值. */ public static final String ALL = "ALL"; /** - * 返回当日成功支付的订单 + * 返回当日成功支付的订单. */ public static final String SUCCESS = "SUCCESS"; /** - * 返回当日退款订单 + * 返回当日退款订单. */ public static final String REFUND = "REFUND"; /** - * 返回当日充值退款订单(相比其他对账单多一栏“返还手续费”) + * 返回当日充值退款订单(相比其他对账单多一栏“返还手续费”). */ public static final String RECHARGE_REFUND = "RECHARGE_REFUND"; } /** - * 交易类型 + * 交易类型. */ public static class TradeType { /** - * 原生扫码支付 + * 原生扫码支付. */ public static final String NATIVE = "NATIVE"; /** - * App支付 + * App支付. */ public static final String APP = "APP"; /** - * 公众号支付 + * 公众号支付. */ public static final String JSAPI = "JSAPI"; /** - * H5支付 + * H5支付. */ public static final String MWEB = "MWEB"; /** - * 刷卡支付,刷卡支付有单独的支付接口,不调用统一下单接口 + * 刷卡支付. + * 刷卡支付有单独的支付接口,不调用统一下单接口 */ public static final String MICROPAY = "MICROPAY"; } /** - * 签名类型 + * 签名类型. */ public static class SignType { public static final String HMAC_SHA256 = "HMAC-SHA256"; @@ -116,177 +116,178 @@ public class WxPayConstants { } /** - * 限定支付方式 + * 限定支付方式. */ public static class LimitPay { /** - * no_credit--指定不能使用信用卡支付 + * no_credit--指定不能使用信用卡支付. */ public static final String NO_CREDIT = "no_credit"; } /** - * 业务结果代码 + * 业务结果代码. */ public static class ResultCode { /** - * 成功 + * 成功. */ public static final String SUCCESS = "SUCCESS"; /** - * 失败 + * 失败. */ public static final String FAIL = "FAIL"; } /** - * 退款资金来源 + * 退款资金来源. */ public static class RefundAccountSource { /** - * 可用余额退款/基本账户 + * 可用余额退款/基本账户. */ public static final String RECHARGE_FUNDS = "REFUND_SOURCE_RECHARGE_FUNDS"; /** - * 未结算资金退款 + * 未结算资金退款. */ public static final String UNSETTLED_FUNDS = "REFUND_SOURCE_UNSETTLED_FUNDS"; } /** - * 退款渠道 + * 退款渠道. */ public static class RefundChannel { /** - * 原路退款 + * 原路退款. */ public static final String ORIGINAL = "ORIGINAL"; /** - * 退回到余额 + * 退回到余额. */ public static final String BALANCE = "BALANCE"; /** - * 原账户异常退到其他余额账户 + * 原账户异常退到其他余额账户. */ public static final String OTHER_BALANCE = "OTHER_BALANCE"; /** - * 原银行卡异常退到其他银行卡 + * 原银行卡异常退到其他银行卡. */ public static final String OTHER_BANKCARD = "OTHER_BANKCARD"; } /** - * 交易状态 + * 交易状态. */ public static class WxpayTradeStatus { /** - * 支付成功 + * 支付成功. */ public static final String SUCCESS = "SUCCESS"; /** - * 支付失败(其他原因,如银行返回失败) + * 支付失败(其他原因,如银行返回失败). */ public static final String PAY_ERROR = "PAYERROR"; /** - * 用户支付中 + * 用户支付中. */ public static final String USER_PAYING = "USERPAYING"; /** - * 已关闭 + * 已关闭. */ public static final String CLOSED = "CLOSED"; /** - * 未支付 + * 未支付. */ public static final String NOTPAY = "NOTPAY"; /** - * 转入退款 + * 转入退款. */ public static final String REFUND = "REFUND"; /** - * 已撤销(刷卡支付) + * 已撤销(刷卡支付). */ public static final String REVOKED = "REVOKED"; } /** - * 退款状态 + * 退款状态. */ public static class RefundStatus { /** - * 退款成功 + * 退款成功. */ public static final String SUCCESS = "SUCCESS"; /** - * 退款关闭 + * 退款关闭. */ public static final String REFUND_CLOSE = "REFUNDCLOSE"; /** - * 退款处理中 + * 退款处理中. */ public static final String PROCESSING = "PROCESSING"; /** - * 退款异常,退款到银行发现用户的卡作废或者冻结了,导致原路退款银行卡失败,可前往商户平台(pay.weixin.qq.com)-交易中心,手动处理此笔退款。 + * 退款异常. + * 退款到银行发现用户的卡作废或者冻结了,导致原路退款银行卡失败,可前往商户平台(pay.weixin.qq.com)-交易中心,手动处理此笔退款。 */ public static final String CHANGE = "CHANGE"; } /** - * 关闭订单结果错误代码 + * 关闭订单结果错误代码. */ public static class OrderCloseResultErrorCode { /** - * 订单已支付 + * 订单已支付. */ public static final String ORDER_PAID = "ORDERPAID"; /** - * 系统错误 + * 系统错误. */ public static final String SYSTEM_ERROR = "SYSTEMERROR"; /** - * 订单不存在 + * 订单不存在. */ public static final String ORDER_NOT_EXIST = "ORDERNOTEXIST"; /** - * 订单已关闭 + * 订单已关闭. */ public static final String ORDER_CLOSED = "ORDERCLOSED"; /** - * 签名错误 + * 签名错误. */ public static final String SIGN_ERROR = "SIGNERROR"; /** - * 未使用POST传递参数 + * 未使用POST传递参数. */ public static final String REQUIRE_POST_METHOD = "REQUIRE_POST_METHOD"; /** - * XML格式错误 + * XML格式错误. */ public static final String XML_FORMAT_ERROR = "XML_FORMAT_ERROR"; /** - * 订单状态错误 + * 订单状态错误. */ public static final String TRADE_STATE_ERROR = "TRADE_STATE_ERROR"; }