From e6b60a4304ba53caa86c62f32dc8845c63b2f230 Mon Sep 17 00:00:00 2001 From: "jy.hu" Date: Thu, 6 Nov 2014 10:48:20 +0800 Subject: [PATCH] update md --- .../java/com/foxinmy/weixin4j/http/error.xml | 1 - .../weixin4j/token/AbstractTokenHolder.java | 8 -------- .../weixin4j/token/FileTokenHolder.java | 4 ++-- .../weixin4j/token/RedisTokenHolder.java | 4 ++-- weixin4j-mp/README.md | 4 ++-- weixin4j-mp/weixin4j-mp-api/README.md | 10 +++++----- .../com/foxinmy/weixin4j/mp/payment/README.md | 6 +++++- .../mp/payment/v3/RefundConverter.java | 13 ++++++------ weixin4j-mp/weixin4j-mp-server/README.md | 20 +++++++++++++++++++ 9 files changed, 42 insertions(+), 28 deletions(-) diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/error.xml b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/error.xml index 022c2621..03758181 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/error.xml +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/error.xml @@ -383,7 +383,6 @@ ORDERPAID 订单已支付 - OUT_TRADE_NO_USED OUT_TRADE_NO_USED diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/AbstractTokenHolder.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/AbstractTokenHolder.java index d5f682e6..24d9169d 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/AbstractTokenHolder.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/AbstractTokenHolder.java @@ -26,14 +26,6 @@ public abstract class AbstractTokenHolder implements TokenHolder { this.weixinConfig = new WeixinConfig(appid, appsecret); } - protected String getAppid() { - return this.weixinConfig.getAppId(); - } - - protected String getAppsecret() { - return this.weixinConfig.getAppSecret(); - } - public WeixinConfig getConfig() { return this.weixinConfig; } diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/FileTokenHolder.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/FileTokenHolder.java index 7f966268..3d855bb8 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/FileTokenHolder.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/FileTokenHolder.java @@ -50,8 +50,8 @@ public class FileTokenHolder extends AbstractTokenHolder { */ @Override public Token getToken() throws WeixinException { - String appid = getAppid(); - String appsecret = getAppsecret(); + String appid = getConfig().getAppId(); + String appsecret = getConfig().getAppSecret(); if (StringUtils.isBlank(appid) || StringUtils.isBlank(appsecret)) { throw new IllegalArgumentException( "appid or appsecret not be null!"); diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/RedisTokenHolder.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/RedisTokenHolder.java index 6ecdbb5a..6367bc24 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/RedisTokenHolder.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/token/RedisTokenHolder.java @@ -48,8 +48,8 @@ public class RedisTokenHolder extends AbstractTokenHolder { @Override public Token getToken() throws WeixinException { - String appid = getAppid(); - String appsecret = getAppsecret(); + String appid = getConfig().getAppId(); + String appsecret = getConfig().getAppSecret(); if (StringUtils.isBlank(appid) || StringUtils.isBlank(appsecret)) { throw new IllegalArgumentException( "appid or appsecret not be null!"); diff --git a/weixin4j-mp/README.md b/weixin4j-mp/README.md index 4a796045..151d40a8 100644 --- a/weixin4j-mp/README.md +++ b/weixin4j-mp/README.md @@ -34,7 +34,7 @@ weixin4j-mp ------- * 2014-10-27 - + 用netty构建http服务器并支持消息分发 + + 用netty构建http服务器&消息分发 * 2014-10-28 @@ -42,7 +42,7 @@ weixin4j-mp * 2014-10-31 - + `weixin.properties`切分为API调用地址/公众号信息两部分 + + `weixin.properties`切分为API调用地址和公众号appid等信息两部分 * 2014-11-03 diff --git a/weixin4j-mp/weixin4j-mp-api/README.md b/weixin4j-mp/weixin4j-mp-api/README.md index 09b1bf1d..59527a14 100644 --- a/weixin4j-mp/weixin4j-mp-api/README.md +++ b/weixin4j-mp/weixin4j-mp-api/README.md @@ -1,7 +1,7 @@ weixin4j-mp-api =============== -微信[公众平台](http://mp.weixin.qq.com/wiki)开发工具包 +[微信公众平台](http://mp.weixin.qq.com/wiki)开发工具包 功能列表 ------- @@ -40,7 +40,7 @@ weixin.properties说明 | media_path | 调用媒体接口时保存媒体文件的物理路径 | | bill_path | 调用支付(`V3`)下载对账单接口保存excel文件的物理路径 | -示例 +示例(properties中换行用右斜杆\) > account={"appId":"appId","appSecret":"appSecret", > "token":"开放者的token 非必须","openId":"公众号的openid 非必须", @@ -58,7 +58,7 @@ weixin.properties说明 // weixinProxy = new WeixinProxy(appid,appsecret); weixinProxy.getUser(openId); -3.针对`token`存储有两种方案,`File存储`/`Redis存储`,当然也可自己实现`TokenHolder`(继承`AbstractTokenHolder`类并重写`getToken`方法),默认使用文件(xml)的方式保存token,如果环境中支持`redis`,建议使用`RedisTokenHolder`. +3.针对`token`存储有两种方案,`File存储`/`Redis存储`,当然也可自己实现`TokenHolder`(继承`AbstractTokenHolder`并重写`getToken`方法),默认使用文件(xml)的方式保存token,如果环境中支持`redis`,建议使用`RedisTokenHolder`. WeixinProxy weixinProxy = new WeixinProxy(new RedisTokenHolder()); // weixinProxy = new WeixinProxy(new RedisTokenHolder(appid,appsecret)); @@ -69,7 +69,7 @@ weixin.properties说明 ------- * 2014-10-27 - + 用netty构建http服务器并支持消息分发 + + 用netty构建http服务器&消息分发 * 2014-10-28 @@ -77,7 +77,7 @@ weixin.properties说明 * 2014-10-31 - + `weixin.properties`切分为API调用地址/公众号信息两部分 + + `weixin.properties`切分为API调用地址和公众号appid等信息两部分 * 2014-11-03 diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/README.md b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/README.md index 3ae3b5fd..753465e8 100644 --- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/README.md +++ b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/README.md @@ -1 +1,5 @@ -支付模块【JSP AY】【NATIVE PAY】【APP PAY】 \ No newline at end of file +支付模块【JSAPI】【NATIVE】 +微信公众平台[V2版本支付]文档(https://mp.weixin.qq.com/paymch/readtemplate?t=mp/business/course2_tmpl&lang=zh_CN&token=6056275) +微信公众平台[V3版本支付]文档(https://mp.weixin.qq.com/paymch/readtemplate?t=mp/business/course3_tmpl&lang=zh_CN&token=6056275) + +**在`2014年10月9号`之前申请并审核通过的支付接口应该属于`V2版本`支付,而之后申请的接口则为`V3版本`支付** \ No newline at end of file diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/v3/RefundConverter.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/v3/RefundConverter.java index bcec0f61..b31f9040 100644 --- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/v3/RefundConverter.java +++ b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/v3/RefundConverter.java @@ -31,13 +31,14 @@ import com.thoughtworks.xstream.mapper.Mapper; */ public class RefundConverter { private final static XStream xStream = XStream.get(); - private final ReflectionConverter reflectionConverter; + private final Mapper mapper; + private final ReflectionProvider reflectionProvider; public RefundConverter() { xStream.processAnnotations(Refund.class); xStream.registerConverter(new RefundConverter.$()); - reflectionConverter = new ReflectionConverter(xStream.getMapper(), - xStream.getReflectionProvider()); + this.mapper = xStream.getMapper(); + this.reflectionProvider = xStream.getReflectionProvider(); } public String toXML(Refund refund) { @@ -57,7 +58,8 @@ public class RefundConverter { @Override public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context) { - reflectionConverter.marshal(source, writer, context); + new ReflectionConverter(mapper, reflectionProvider).marshal(source, + writer, context); } @SuppressWarnings("unchecked") @@ -65,9 +67,6 @@ public class RefundConverter { public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { Refund refund = new Refund(); - Mapper mapper = xStream.getMapper(); - ReflectionProvider reflectionProvider = xStream - .getReflectionProvider(); Pattern pattern = Pattern.compile("(_\\d)$"); Matcher matcher = null; Map> outMap = new HashMap>(); diff --git a/weixin4j-mp/weixin4j-mp-server/README.md b/weixin4j-mp/weixin4j-mp-server/README.md index 6996c974..c0cb4e87 100644 --- a/weixin4j-mp/weixin4j-mp-server/README.md +++ b/weixin4j-mp/weixin4j-mp-server/README.md @@ -15,6 +15,26 @@ weixin4j-mp-server -------- 1.正确填写`weixin.properties`中的属性值 +| 属性名 | 说明 | +| :---------- | :-------------- | +| account | 微信公众号信息 `json格式` | +| token_path | 使用FileTokenHolder时token保存的物理路径 | +| qr_path | 调用二维码接口时保存二维码图片的物理路径 | +| media_path | 调用媒体接口时保存媒体文件的物理路径 | +| bill_path | 调用支付(`V3`)下载对账单接口保存excel文件的物理路径 | + +示例(properties中换行用右斜杆\) + +> account={"appId":"appId","appSecret":"appSecret", +> "token":"开放者的token 非必须","openId":"公众号的openid 非必须", +> "mchId":"V3.x版本下的微信商户号", +> "partnerId":"财付通的商户号","partnerKey":"财付通商户权限密钥Key", +> "paySignKey":"微信支付中调用API的密钥"}
+> token_path=/tmp/weixin/token
+> qr_path=/tmp/weixin/qr
+> media_path=/tmp/weixin/media
+> bill_path=/tmp/weixin/bill
+ 2.mvn package,得到一个zip的压缩包,解压到启动目录(见`src/main/startup.sh/APP_HOME`) 3.启动netty服务(`com.foxinmy.weixin4j.mp.startup.WeixinServiceBootstrap`)