@@ -9,28 +9,21 @@ import redis.clients.jedis.JedisPoolConfig; | |||||
import java.io.File; | import java.io.File; | ||||
/** | /** | ||||
* Jedis client implementor for wechat config storage. | |||||
* <pre> | * <pre> | ||||
* 使用说明:本实现仅供参考,并不完整, | |||||
* 使用说明:本实现仅供参考,并不完整. | |||||
* 比如为减少项目依赖,未加入redis分布式锁的实现,如有需要请自行实现。 | * 比如为减少项目依赖,未加入redis分布式锁的实现,如有需要请自行实现。 | ||||
* </pre> | * </pre> | ||||
* | * | ||||
* @author gaigeshen | * @author gaigeshen | ||||
*/ | */ | ||||
public class WxCpJedisConfigStorage implements WxCpConfigStorage { | public class WxCpJedisConfigStorage implements WxCpConfigStorage { | ||||
/** | |||||
* Redis keys here | |||||
*/ | |||||
private static final String ACCESS_TOKEN_KEY = "WX_CP_ACCESS_TOKEN"; | private static final String ACCESS_TOKEN_KEY = "WX_CP_ACCESS_TOKEN"; | ||||
private static final String ACCESS_TOKEN_EXPIRES_TIME_KEY = "WX_CP_ACCESS_TOKEN_EXPIRES_TIME"; | private static final String ACCESS_TOKEN_EXPIRES_TIME_KEY = "WX_CP_ACCESS_TOKEN_EXPIRES_TIME"; | ||||
private static final String JS_API_TICKET_KEY = "WX_CP_JS_API_TICKET"; | private static final String JS_API_TICKET_KEY = "WX_CP_JS_API_TICKET"; | ||||
private static final String JS_API_TICKET_EXPIRES_TIME_KEY = "WX_CP_JS_API_TICKET_EXPIRES_TIME"; | private static final String JS_API_TICKET_EXPIRES_TIME_KEY = "WX_CP_JS_API_TICKET_EXPIRES_TIME"; | ||||
private static final String AGENT_JSAPI_TICKET_KEY = "WX_CP_AGENT_%s_JSAPI_TICKET"; | private static final String AGENT_JSAPI_TICKET_KEY = "WX_CP_AGENT_%s_JSAPI_TICKET"; | ||||
private static final String AGENT_JSAPI_TICKET_EXPIRES_TIME_KEY = "WX_CP_AGENT_%s_JSAPI_TICKET_EXPIRES_TIME"; | private static final String AGENT_JSAPI_TICKET_EXPIRES_TIME_KEY = "WX_CP_AGENT_%s_JSAPI_TICKET_EXPIRES_TIME"; | ||||
/** | |||||
* Redis clients pool | |||||
*/ | |||||
private final JedisPool jedisPool; | private final JedisPool jedisPool; | ||||
private volatile String corpId; | private volatile String corpId; | ||||
private volatile String corpSecret; | private volatile String corpSecret; | ||||
@@ -17,14 +17,14 @@ import me.chanjar.weixin.mp.bean.membercard.*; | |||||
* @date 2018-08-30 | * @date 2018-08-30 | ||||
*/ | */ | ||||
public interface WxMpMemberCardService { | public interface WxMpMemberCardService { | ||||
String MEMBER_CARD_CREAET = "https://api.weixin.qq.com/card/create"; | |||||
String MEMBER_CARD_CREATE = "https://api.weixin.qq.com/card/create"; | |||||
String MEMBER_CARD_ACTIVATE = "https://api.weixin.qq.com/card/membercard/activate"; | String MEMBER_CARD_ACTIVATE = "https://api.weixin.qq.com/card/membercard/activate"; | ||||
String MEMBER_CARD_USER_INFO_GET = "https://api.weixin.qq.com/card/membercard/userinfo/get"; | String MEMBER_CARD_USER_INFO_GET = "https://api.weixin.qq.com/card/membercard/userinfo/get"; | ||||
String MEMBER_CARD_UPDATE_USER = "https://api.weixin.qq.com/card/membercard/updateuser"; | String MEMBER_CARD_UPDATE_USER = "https://api.weixin.qq.com/card/membercard/updateuser"; | ||||
/** | /** | ||||
* 会员卡激活之微信开卡接口(wx_activate=true情况调用). | * 会员卡激活之微信开卡接口(wx_activate=true情况调用). | ||||
*/ | */ | ||||
String MEMBER_CARD_ACTIVATEUSERFORM = "https://api.weixin.qq.com/card/membercard/activateuserform/set"; | |||||
String MEMBER_CARD_ACTIVATE_USER_FORM = "https://api.weixin.qq.com/card/membercard/activateuserform/set"; | |||||
/** | /** | ||||
* 获取会员卡开卡插件参数. | * 获取会员卡开卡插件参数. | ||||
@@ -37,7 +37,8 @@ public interface WxMpMemberCardService { | |||||
String MEMBER_CARD_UPDATE = "https://api.weixin.qq.com/card/update"; | String MEMBER_CARD_UPDATE = "https://api.weixin.qq.com/card/update"; | ||||
/** | /** | ||||
* 跳转型会员卡开卡字段,获取用户提交资料(wx_activate=true情况调用),开发者根据activate_ticket获取到用户填写的信息 | |||||
* 跳转型会员卡开卡字段. | |||||
* 获取用户提交资料(wx_activate=true情况调用),开发者根据activate_ticket获取到用户填写的信息 | |||||
*/ | */ | ||||
String MEMBER_CARD_ACTIVATE_TEMP_INFO = "https://api.weixin.qq.com/card/membercard/activatetempinfo/get"; | String MEMBER_CARD_ACTIVATE_TEMP_INFO = "https://api.weixin.qq.com/card/membercard/activatetempinfo/get"; | ||||
@@ -127,7 +128,7 @@ public interface WxMpMemberCardService { | |||||
CardUpdateResult updateCardInfo(MemberCardUpdateRequest memberCardUpdateRequest) throws WxErrorException; | CardUpdateResult updateCardInfo(MemberCardUpdateRequest memberCardUpdateRequest) throws WxErrorException; | ||||
/** | /** | ||||
* 解析跳转型开卡字段用户提交的资料 | |||||
* 解析跳转型开卡字段用户提交的资料. | |||||
* 开发者在URL上截取ticket后须先进行urldecode | * 开发者在URL上截取ticket后须先进行urldecode | ||||
* | * | ||||
* @param activateTicket 用户提交的资料 | * @param activateTicket 用户提交的资料 | ||||
@@ -70,7 +70,7 @@ public class WxMpMemberCardServiceImpl implements WxMpMemberCardService { | |||||
return validResult; | return validResult; | ||||
} | } | ||||
String response = this.wxMpService.post(MEMBER_CARD_CREAET, GSON.toJson(createMessageMessage)); | |||||
String response = this.wxMpService.post(MEMBER_CARD_CREATE, GSON.toJson(createMessageMessage)); | |||||
return WxMpCardCreateResult.fromJson(response); | return WxMpCardCreateResult.fromJson(response); | ||||
} | } | ||||
@@ -243,7 +243,7 @@ public class WxMpMemberCardServiceImpl implements WxMpMemberCardService { | |||||
@Override | @Override | ||||
public MemberCardActivateUserFormResult setActivateUserForm(MemberCardActivateUserFormRequest userFormRequest) throws WxErrorException { | public MemberCardActivateUserFormResult setActivateUserForm(MemberCardActivateUserFormRequest userFormRequest) throws WxErrorException { | ||||
String responseContent = this.getWxMpService().post(MEMBER_CARD_ACTIVATEUSERFORM, GSON.toJson(userFormRequest)); | |||||
String responseContent = this.getWxMpService().post(MEMBER_CARD_ACTIVATE_USER_FORM, GSON.toJson(userFormRequest)); | |||||
return MemberCardActivateUserFormResult.fromJson(responseContent); | return MemberCardActivateUserFormResult.fromJson(responseContent); | ||||
} | } | ||||
@@ -38,12 +38,6 @@ public final class MemberCard implements Serializable { | |||||
@SerializedName("auto_activate") | @SerializedName("auto_activate") | ||||
private boolean autoActivate; | private boolean autoActivate; | ||||
/** | |||||
* 是否一键开卡. | |||||
*/ | |||||
@SerializedName("wx_activate") | |||||
private boolean wxActivate; | |||||
/** | /** | ||||
* 显示积分. | * 显示积分. | ||||
*/ | */ | ||||
@@ -145,6 +139,24 @@ public final class MemberCard implements Serializable { | |||||
@SerializedName("advanced_info") | @SerializedName("advanced_info") | ||||
private AdvancedInfo advancedInfo; | private AdvancedInfo advancedInfo; | ||||
/** | |||||
* 是否支持一键激活 ,填true或false. | |||||
*/ | |||||
@SerializedName("wx_activate") | |||||
private boolean wxActivate; | |||||
/** | |||||
* 是否支持跳转型一键激活,填true或false. | |||||
*/ | |||||
@SerializedName("wx_activate_after_submit") | |||||
private boolean wxActivateAfterSubmit; | |||||
/** | |||||
* 跳转型一键激活跳转的地址链接,请填写http:// 或者https://开头的链接. | |||||
*/ | |||||
@SerializedName("wx_activate_after_submit_url") | |||||
private String wxActivateAfterSubmitUrl; | |||||
@Override | @Override | ||||
public String toString() { | public String toString() { | ||||
return WxMpGsonBuilder.create().toJson(this); | return WxMpGsonBuilder.create().toJson(this); | ||||
@@ -1,13 +1,20 @@ | |||||
package me.chanjar.weixin.mp.bean.card; | package me.chanjar.weixin.mp.bean.card; | ||||
import java.io.Serializable; | |||||
import com.google.gson.annotations.SerializedName; | import com.google.gson.annotations.SerializedName; | ||||
import lombok.Data; | import lombok.Data; | ||||
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; | import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; | ||||
import java.io.Serializable; | |||||
/** | |||||
* 创建会员卡请求对象. | |||||
* | |||||
* @author yuanqixun | |||||
*/ | |||||
@Data | @Data | ||||
public class MemberCardCreateRequest implements Serializable { | public class MemberCardCreateRequest implements Serializable { | ||||
private static final long serialVersionUID = -1044836608401698097L; | |||||
@SerializedName("card_type") | @SerializedName("card_type") | ||||
private String cardType = "MEMBER_CARD"; | private String cardType = "MEMBER_CARD"; | ||||
@@ -6,8 +6,15 @@ import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; | |||||
import java.io.Serializable; | import java.io.Serializable; | ||||
/** | |||||
* 更新会员卡请求对象. | |||||
* | |||||
* @author yuanqixun | |||||
*/ | |||||
@Data | @Data | ||||
public class MemberCardUpdateRequest implements Serializable { | public class MemberCardUpdateRequest implements Serializable { | ||||
private static final long serialVersionUID = -1025759626161614466L; | |||||
@SerializedName("card_id") | @SerializedName("card_id") | ||||
private String cardId; | private String cardId; | ||||