Comprehensive Java SDK for WeChat Official Account development with complete API coverage for user management, messaging, materials, menus, and WeChat platform features.
—
Comprehensive shopping guide functionality for WeChat Official Accounts, including guide management, buyer tracking, materials, tags, and mass job operations.
interface WxMpGuideService {
// Guide account management
WxMpGuideResult addGuide(WxMpGuideAccount account) throws WxErrorException;
WxMpGuideResult getGuide(String account, String guideOpenid) throws WxErrorException;
WxMpGuideResult updateGuide(WxMpGuideAccount account) throws WxErrorException;
WxMpGuideResult delGuide(String account, String guideOpenid) throws WxErrorException;
WxMpGuideListResult getGuideList(Integer page, Integer num) throws WxErrorException;
// Guide group management
WxMpGuideGroupResult createGuideGroup(WxMpGuideGroup group) throws WxErrorException;
WxMpGuideGroupResult getGuideGroup(String groupId) throws WxErrorException;
WxMpGuideGroupResult updateGuideGroup(WxMpGuideGroup group) throws WxErrorException;
WxMpGuideResult delGuideGroup(String groupId) throws WxErrorException;
WxMpGuideGroupListResult getGuideGroupList(Integer page, Integer num) throws WxErrorException;
// Guide configuration
WxMpGuideConfigResult setGuideConfig(WxMpGuideConfig config) throws WxErrorException;
WxMpGuideConfigResult getGuideConfig() throws WxErrorException;
// QR code for guides
WxMpGuideQrcodeResult genGuideQrcode(String guideAccount, String qrcodeInfo) throws WxErrorException;
}interface WxMpGuideBuyerService {
// Buyer management
WxMpGuideBuyerResult addGuideBuyer(WxMpGuideBuyer buyer) throws WxErrorException;
WxMpGuideBuyerResult getGuideBuyer(String guideAccount, String openid) throws WxErrorException;
WxMpGuideBuyerResult updateGuideBuyer(WxMpGuideBuyer buyer) throws WxErrorException;
WxMpGuideBuyerResult delGuideBuyer(String guideAccount, String openid) throws WxErrorException;
WxMpGuideBuyerListResult getGuideBuyerList(String guideAccount, Integer page, Integer num) throws WxErrorException;
// Buyer relation management
WxMpGuideBuyerRelationResult getGuideBuyerRelation(String guideAccount, String openid) throws WxErrorException;
WxMpGuideBuyerRelationListResult getGuideBuyerRelationList(String guideAccount, Integer page, Integer num) throws WxErrorException;
// Buyer statistics
WxMpGuideBuyerChatRecordResult getGuideBuyerChatRecord(String guideAccount, String openid,
Integer beginTime, Integer endTime,
Integer page, Integer num) throws WxErrorException;
}interface WxMpGuideTagService {
// Tag management
WxMpGuideTagResult newGuideTagOption(WxMpGuideTagOption tagOption) throws WxErrorException;
WxMpGuideTagResult getGuideTagOption() throws WxErrorException;
WxMpGuideTagResult delGuideTagOption(String optionName) throws WxErrorException;
// Buyer tagging
WxMpGuideTagResult addGuideBuyerTag(String guideAccount, String openid, List<String> tagValueList) throws WxErrorException;
WxMpGuideTagResult getGuideBuyerTag(String guideAccount, String openid) throws WxErrorException;
WxMpGuideTagResult queryGuideBuyerByTag(WxMpGuideBuyerTagQuery query) throws WxErrorException;
WxMpGuideTagResult delGuideBuyerTag(String guideAccount, String openid, String tagValue) throws WxErrorException;
}interface WxMpGuideMaterialService {
// Material management
WxMpGuideMaterialResult addGuideMaterial(WxMpGuideMaterial material) throws WxErrorException;
WxMpGuideMaterialResult getGuideMaterial(String type, Integer page, Integer num) throws WxErrorException;
WxMpGuideMaterialResult delGuideMaterial(String mediaId) throws WxErrorException;
}interface WxMpGuideMassedJobService {
// Mass job management
WxMpGuideMassedJobResult addGuideMassedJob(WxMpGuideMassedJob job) throws WxErrorException;
WxMpGuideMassedJobResult getGuideMassedJob(String jobId) throws WxErrorException;
WxMpGuideMassedJobResult updateGuideMassedJob(WxMpGuideMassedJob job) throws WxErrorException;
WxMpGuideMassedJobListResult getGuideMassedJobList(String guideAccount, Integer page, Integer num) throws WxErrorException;
}class WxMpGuideAccount implements Serializable {
private String account;
private String guideHeadimgUrl;
private String guideNickname;
private String guideOpenid;
private String createTime;
private String updateTime;
public String getAccount();
public void setAccount(String account);
public String getGuideHeadimgUrl();
public void setGuideHeadimgUrl(String guideHeadimgUrl);
public String getGuideNickname();
public void setGuideNickname(String guideNickname);
public String getGuideOpenid();
public void setGuideOpenid(String guideOpenid);
public String getCreateTime();
public void setCreateTime(String createTime);
public String getUpdateTime();
public void setUpdateTime(String updateTime);
}class WxMpGuideBuyer implements Serializable {
private String guideAccount;
private String openid;
private String buyerNickname;
private String createTime;
private String updateTime;
public String getGuideAccount();
public void setGuideAccount(String guideAccount);
public String getOpenid();
public void setOpenid(String openid);
public String getBuyerNickname();
public void setBuyerNickname(String buyerNickname);
public String getCreateTime();
public void setCreateTime(String createTime);
public String getUpdateTime();
public void setUpdateTime(String updateTime);
}class WxMpGuideGroup implements Serializable {
private String groupId;
private String groupName;
private String createTime;
private String updateTime;
public String getGroupId();
public void setGroupId(String groupId);
public String getGroupName();
public void setGroupName(String groupName);
public String getCreateTime();
public void setCreateTime(String createTime);
public String getUpdateTime();
public void setUpdateTime(String updateTime);
}class WxMpGuideMaterial implements Serializable {
private String type;
private String mediaId;
private String title;
private String picUrl;
private String word;
public String getType();
public void setType(String type);
public String getMediaId();
public void setMediaId(String mediaId);
public String getTitle();
public void setTitle(String title);
public String getPicUrl();
public void setPicUrl(String picUrl);
public String getWord();
public void setWord(String word);
}class WxMpGuideMassedJob implements Serializable {
private String jobId;
private String guideAccount;
private String taskName;
private String taskRemark;
private Integer pushTime;
private Integer finishTime;
private Integer taskStatus;
public String getJobId();
public void setJobId(String jobId);
public String getGuideAccount();
public void setGuideAccount(String guideAccount);
public String getTaskName();
public void setTaskName(String taskName);
public String getTaskRemark();
public void setTaskRemark(String taskRemark);
public Integer getPushTime();
public void setPushTime(Integer pushTime);
public Integer getFinishTime();
public void setFinishTime(Integer finishTime);
public Integer getTaskStatus();
public void setTaskStatus(Integer taskStatus);
}// Add new guide
WxMpGuideAccount newGuide = new WxMpGuideAccount();
newGuide.setAccount("guide_account_001");
newGuide.setGuideNickname("Shopping Guide Alice");
newGuide.setGuideOpenid("guide_openid_123");
WxMpGuideResult result = wxService.getGuideService().addGuide(newGuide);
if (result.getErrcode() == 0) {
System.out.println("Guide added successfully");
}
// Get guide information
WxMpGuideResult guideInfo = wxService.getGuideService()
.getGuide("guide_account_001", "guide_openid_123");
// Update guide information
WxMpGuideAccount updateGuide = new WxMpGuideAccount();
updateGuide.setAccount("guide_account_001");
updateGuide.setGuideNickname("Senior Shopping Guide Alice");
wxService.getGuideService().updateGuide(updateGuide);
// Get all guides
WxMpGuideListResult guideList = wxService.getGuideService().getGuideList(1, 20);
for (WxMpGuideAccount guide : guideList.getGuideList()) {
System.out.println("Guide: " + guide.getGuideNickname());
}// Add buyer to guide
WxMpGuideBuyer newBuyer = new WxMpGuideBuyer();
newBuyer.setGuideAccount("guide_account_001");
newBuyer.setOpenid("buyer_openid_456");
newBuyer.setBuyerNickname("Customer Bob");
WxMpGuideBuyerResult buyerResult = wxService.getGuideBuyerService().addGuideBuyer(newBuyer);
// Get buyer information
WxMpGuideBuyerResult buyerInfo = wxService.getGuideBuyerService()
.getGuideBuyer("guide_account_001", "buyer_openid_456");
// Get all buyers for a guide
WxMpGuideBuyerListResult buyerList = wxService.getGuideBuyerService()
.getGuideBuyerList("guide_account_001", 1, 20);
System.out.println("Total buyers: " + buyerList.getTotalNum());
for (WxMpGuideBuyer buyer : buyerList.getBuyerList()) {
System.out.println("Buyer: " + buyer.getBuyerNickname());
}// Create tag option
WxMpGuideTagOption tagOption = new WxMpGuideTagOption();
tagOption.setOptionName("VIP Level");
tagOption.setOptionValueList(Arrays.asList("Gold", "Silver", "Bronze"));
WxMpGuideTagResult tagResult = wxService.getGuideTagService().newGuideTagOption(tagOption);
// Add tag to buyer
List<String> tags = Arrays.asList("Gold", "Premium Customer");
wxService.getGuideTagService().addGuideBuyerTag("guide_account_001", "buyer_openid_456", tags);
// Query buyers by tag
WxMpGuideBuyerTagQuery query = new WxMpGuideBuyerTagQuery();
query.setGuideAccount("guide_account_001");
query.setTagValue("Gold");
query.setPage(1);
query.setNum(20);
WxMpGuideTagResult taggedBuyers = wxService.getGuideTagService().queryGuideBuyerByTag(query);// Add guide material
WxMpGuideMaterial material = new WxMpGuideMaterial();
material.setType("image");
material.setMediaId("media_id_123");
material.setTitle("Product Showcase");
WxMpGuideMaterialResult materialResult = wxService.getGuideMaterialService().addGuideMaterial(material);
// Get materials by type
WxMpGuideMaterialResult materials = wxService.getGuideMaterialService()
.getGuideMaterial("image", 1, 20);
for (WxMpGuideMaterial mat : materials.getMaterialList()) {
System.out.println("Material: " + mat.getTitle());
}// Create mass job
WxMpGuideMassedJob job = new WxMpGuideMassedJob();
job.setGuideAccount("guide_account_001");
job.setTaskName("Weekly Product Update");
job.setTaskRemark("Send weekly product updates to all VIP customers");
job.setPushTime((int) (System.currentTimeMillis() / 1000));
WxMpGuideMassedJobResult jobResult = wxService.getGuideMassedJobService().addGuideMassedJob(job);
String jobId = jobResult.getJobId();
// Check job status
WxMpGuideMassedJobResult jobStatus = wxService.getGuideMassedJobService().getGuideMassedJob(jobId);
System.out.println("Job status: " + jobStatus.getJob().getTaskStatus());
// Get all jobs for a guide
WxMpGuideMassedJobListResult jobList = wxService.getGuideMassedJobService()
.getGuideMassedJobList("guide_account_001", 1, 20);
for (WxMpGuideMassedJob jobItem : jobList.getJobList()) {
System.out.println("Job: " + jobItem.getTaskName() + " - Status: " + jobItem.getTaskStatus());
}image - Image materialsword - Text materialslink - Link materialsminiprogram - Mini program materialscard - Card materials1 - Pending2 - Running3 - Completed4 - Failed5 - Cancelledtry {
WxMpGuideResult result = wxService.getGuideService().addGuide(newGuide);
if (result.getErrcode() != 0) {
System.err.println("Guide operation failed: " + result.getErrmsg());
}
} catch (WxErrorException e) {
int errorCode = e.getError().getErrorCode();
switch (errorCode) {
case 40013:
System.err.println("Invalid AppID");
break;
case 45009:
System.err.println("API rate limit exceeded");
break;
case 47001:
System.err.println("Invalid guide account");
break;
default:
System.err.println("Guide service error: " + e.getError().getErrorMsg());
}
}Install with Tessl CLI
npx tessl i tessl/maven-com-github-binarywang--weixin-java-mp