| @@ -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; | ||||