将WeixinPayProxy的构造函数调整为(WeixinMpAccount,TokenHolder)

This commit is contained in:
jy.hu
2015-01-12 09:54:28 +08:00
parent a97beafaf2
commit 78332647c0
9 changed files with 52 additions and 183 deletions
@@ -15,6 +15,10 @@ import com.foxinmy.weixin4j.mp.type.BillType;
import com.foxinmy.weixin4j.mp.type.IdQuery;
import com.foxinmy.weixin4j.mp.type.IdType;
import com.foxinmy.weixin4j.mp.type.RefundType;
import com.foxinmy.weixin4j.token.FileTokenHolder;
import com.foxinmy.weixin4j.token.TokenHolder;
import com.foxinmy.weixin4j.token.WeixinTokenCreator;
import com.foxinmy.weixin4j.type.AccountType;
import com.foxinmy.weixin4j.util.ConfigUtil;
/**
@@ -33,7 +37,8 @@ public class WeixinPayProxy {
private final Pay3Api pay3Api;
public WeixinPayProxy() {
this(ConfigUtil.getWeixinMpAccount());
this(ConfigUtil.getWeixinMpAccount(), new FileTokenHolder(
new WeixinTokenCreator(AccountType.MP)));
}
/**
@@ -42,9 +47,9 @@ public class WeixinPayProxy {
* @param weixinAccount
* 微信账户
*/
public WeixinPayProxy(WeixinMpAccount weixinAccount) {
this.pay2Api = new Pay2Api(weixinAccount);
this.pay3Api = new Pay3Api(weixinAccount);
public WeixinPayProxy(WeixinMpAccount weixinAccount, TokenHolder tokenHolder) {
this.pay2Api = new Pay2Api(weixinAccount, tokenHolder);
this.pay3Api = new Pay3Api(weixinAccount, tokenHolder);
int version = weixinAccount.getVersion();
if (version == 2) {
this.payApi = this.pay2Api;
@@ -49,6 +49,7 @@ import com.foxinmy.weixin4j.mp.type.IdQuery;
import com.foxinmy.weixin4j.mp.type.RefundType;
import com.foxinmy.weixin4j.mp.type.SignType;
import com.foxinmy.weixin4j.mp.util.ExcelUtil;
import com.foxinmy.weixin4j.token.TokenHolder;
import com.foxinmy.weixin4j.util.ConfigUtil;
import com.foxinmy.weixin4j.util.DateUtil;
import com.foxinmy.weixin4j.util.MapUtil;
@@ -56,7 +57,7 @@ import com.foxinmy.weixin4j.util.MapUtil;
/**
* V2支付API
*
* @className PayApi
* @className Pay2Api
* @author jy
* @date 2014年10月28日
* @since JDK 1.7
@@ -66,8 +67,8 @@ public class Pay2Api extends PayApi {
private final HelperApi helperApi;
public Pay2Api(WeixinMpAccount weixinAccount) {
super(weixinAccount);
public Pay2Api(WeixinMpAccount weixinAccount, TokenHolder tokenHolder) {
super(weixinAccount, tokenHolder);
this.helperApi = new HelperApi(tokenHolder);
}
@@ -39,6 +39,7 @@ import com.foxinmy.weixin4j.mp.type.BillType;
import com.foxinmy.weixin4j.mp.type.IdQuery;
import com.foxinmy.weixin4j.mp.type.IdType;
import com.foxinmy.weixin4j.mp.util.ExcelUtil;
import com.foxinmy.weixin4j.token.TokenHolder;
import com.foxinmy.weixin4j.util.ConfigUtil;
import com.foxinmy.weixin4j.util.DateUtil;
import com.foxinmy.weixin4j.util.RandomUtil;
@@ -46,7 +47,7 @@ import com.foxinmy.weixin4j.util.RandomUtil;
/**
* V3支付API
*
* @className PayApi
* @className Pay3Api
* @author jy
* @date 2014年10月28日
* @since JDK 1.7
@@ -54,8 +55,8 @@ import com.foxinmy.weixin4j.util.RandomUtil;
*/
public class Pay3Api extends PayApi {
public Pay3Api(WeixinMpAccount weixinAccount) {
super(weixinAccount);
public Pay3Api(WeixinMpAccount weixinAccount, TokenHolder tokenHolder) {
super(weixinAccount, tokenHolder);
}
/**
@@ -16,9 +16,7 @@ import com.foxinmy.weixin4j.mp.payment.v3.ApiResult;
import com.foxinmy.weixin4j.mp.type.BillType;
import com.foxinmy.weixin4j.mp.type.IdQuery;
import com.foxinmy.weixin4j.mp.type.SignType;
import com.foxinmy.weixin4j.token.FileTokenHolder;
import com.foxinmy.weixin4j.token.TokenHolder;
import com.foxinmy.weixin4j.token.WeixinTokenCreator;
import com.foxinmy.weixin4j.util.DateUtil;
/**
@@ -33,13 +31,12 @@ import com.foxinmy.weixin4j.util.DateUtil;
*/
public abstract class PayApi extends MpApi {
protected final TokenHolder tokenHolder;
protected final WeixinMpAccount weixinAccount;
protected final TokenHolder tokenHolder;
public PayApi(WeixinMpAccount weixinAccount) {
public PayApi(WeixinMpAccount weixinAccount, TokenHolder tokenHolder) {
this.weixinAccount = weixinAccount;
this.tokenHolder = new FileTokenHolder(new WeixinTokenCreator(
weixinAccount.getAccountType()));
this.tokenHolder = tokenHolder;
}
/**
@@ -97,6 +97,10 @@ public class ApiResult extends XmlResult {
return recall;
}
public String setRecall() {
return recall;
}
@JSONField(deserialize = false, serialize = false)
public boolean getFormatRecall() {
return recall != null && recall.equalsIgnoreCase("y");
@@ -35,11 +35,23 @@ public class MenuTest extends TokenTest {
public void create() throws WeixinException {
btnList = new ArrayList<Button>();
Button b = new Button("click", "name", ButtonType.click);
btnList.add(b);
Button b1 = new Button("我要订餐", "ORDERING", ButtonType.click);
btnList.add(b1);
b = new Button("qq", "http://www.qq.com", ButtonType.view);
btnList.add(b);
Button b2 = new Button("", "", ButtonType.click);
b2.pushSub(new Button("个人中心", "MINE", ButtonType.click));
b2.pushSub(new Button("会员中心", "MEMRBER", ButtonType.click));
b2.pushSub(new Button("我的积分", "SCORE", ButtonType.click));
b2.pushSub(new Button("我的优惠券", "COUPON", ButtonType.click));
b2.pushSub(new Button("我的订单", "MYORDER", ButtonType.click));
btnList.add(b2);
Button b3 = new Button("商家功能", "", ButtonType.click);
b3.pushSub(new Button("商家主页", "SHOPLIST", ButtonType.click));
b3.pushSub(new Button("大转盘", "WHEEL", ButtonType.click));
b3.pushSub(new Button("店铺区域", "SHOPAREA", ButtonType.click));
b3.pushSub(new Button("店铺口味", "SHOPTASTE", ButtonType.click));
btnList.add(b3);
JsonResult result = menuApi.createMenu(btnList);
Assert.assertEquals(0, result.getCode());