微信开发之客服消息的使用

Open UI5 源代码解析之1034:ScrollContainer.js 《ScrollContainer.js源码解析与作用分析》 摘要:本文深入分析了OpenUI5框架中ScrollContainer.js控件的实现原理与设计思想。作为sap.m库的基础容器控件,它专门处理可滚动区域的封装,为上层组件提供统一的滚动体验。通过依赖ScrollEnablement委托实现核心功能,该控件分离了行为逻辑与渲染职责,支持RTL语言布局和无障碍访问。源码分析揭示了其生命周期管理策略、资源释放机制及扩展接口设计,体现了企业级UI框架对稳定性、复用性和长期运行可靠性的重视。该控件虽不直接处 阅读详情

之前的消息发送与接收都是用户给微信发一条,之后微信回复给用户,也就是API上面所说的被动回复消息,那么微信是否支持主动给关注用户发消息吗,答案是肯定的,但是却有一些限制。看下微信开发文档上怎么说就明白了:

当用户主动发消息给公众号的时候(包括发送信息、点击自定义菜单、订阅事件、扫描二维码事件、支付成功事件、用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前修改为48小时)可以调用客服消息接口,通过POST一个JSON数据包来发送消息给普通用户,在48小时内不限制发送次数。此接口主要用于客服等有人工消息处理环节的功能,方便开发者为用户提供更加优质的服务。


这次就针对客服消息分享下我的心得和体会


1  客服接口-发消息接口使用说明

接口调用请求说明

http请求方式: POST
https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN

各消息类型所需的JSON数据包如下:

发送文本消息

{
    "touser":"OPENID",
    "msgtype":"text",
    "text":
    {
         "content":"Hello World"
    }
}

发送图片消息

{
    "touser":"OPENID",
    "msgtype":"image",
    "image":
    {
      "media_id":"MEDIA_ID"
    }
}

发送语音消息

{
    "touser":"OPENID",
    "msgtype":"voice",
    "voice":
    {
      "media_id":"MEDIA_ID"
    }
}

......,基本上来说常用的消息类型,客服接口都是支持的


2  封装客服消息接口

       public static String makeTextCustomMessage(String openId,String content){
		content.replace("\"", "\\\"");
		String jsonMsg="{\"touser\":\"%s\",\"msgtype\":\"text\",\"text\":{\"content\":\"%s\"}}";
		return String.format(jsonMsg, openId,content);
		
	}
	
	/**
	 * 组装图片客服消息
	 * 
	 * @param openId 消息发送对象
	 * @param mediaId 媒体文件id
	 * @return
	 */
	public static String makeImageCustomMessage(String openId, String mediaId) {
		String jsonMsg = "{\"touser\":\"%s\",\"msgtype\":\"image\",\"image\":{\"media_id\":\"%s\"}}";
		return String.format(jsonMsg, openId, mediaId);
	}

	/**
	 * 组装语音客服消息
	 * 
	 * @param openId 消息发送对象
	 * @param mediaId 媒体文件id
	 * @return
	 */
	public static String makeVoiceCustomMessage(String openId, String mediaId) {
		String jsonMsg = "{\"touser\":\"%s\",\"msgtype\":\"voice\",\"voice\":{\"media_id\":\"%s\"}}";
		return String.format(jsonMsg, openId, mediaId);
	}

	/**
	 * 组装视频客服消息
	 * 
	 * @param openId 消息发送对象
	 * @param mediaId 媒体文件id
	 * @param thumbMediaId 视频消息缩略图的媒体id
	 * @return
	 */
	public static String makeVideoCustomMessage(String openId, String mediaId, String thumbMediaId) {
		String jsonMsg = "{\"touser\":\"%s\",\"msgtype\":\"video\",\"video\":{\"media_id\":\"%s\",\"thumb_media_id\":\"%s\"}}";
		return String.format(jsonMsg, openId, mediaId, thumbMediaId);
	}

	/**
	 * 组装音乐客服消息
	 * 
	 * @param openId 消息发送对象
	 * @param music 音乐对象
	 * @return
	 */
	public static String makeMusicCustomMessage(String openId, Music music) {
		String jsonMsg = "{\"touser\":\"%s\",\"msgtype\":\"music\",\"music\":%s}";
		jsonMsg = String.format(jsonMsg, openId, JSONObject.fromObject(music).toString());
		// 参数名称替换 @20140125
		jsonMsg = jsonMsg.replace("musicUrl", "musicurl");
		jsonMsg = jsonMsg.replace("HQMusicUrl", "hqmusicurl");
		jsonMsg = jsonMsg.replace("thumbMediaId", "thumb_media_id");
		return jsonMsg;
	}

	/**
	 * 组装图文客服消息
	 * 
	 * @param openId 消息发送对象
	 * @param articleList 图文消息列表
	 * @return
	 */
	public static String makeNewsCustomMessage(String openId, List<Article> articleList) {
		String jsonMsg = "{\"touser\":\"%s\",\"msgtype\":\"news\",\"news\":{\"articles\":%s}}";
		jsonMsg = String.format(jsonMsg, openId, JSONArray.fromObject(articleList).toString().replaceAll("\"", "\\\""));
		// 将jsonMsg中的picUrl替换为picurl
		jsonMsg = jsonMsg.replace("picUrl", "picurl");
		return jsonMsg;
	}

	public static boolean sendCustomMessage(String token,String jsonMsg){
		boolean flag=false;
		//String accessToken=getAccessToken("xxxx","xxxx").getToken();
		String requestUrl="https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN";
		requestUrl=requestUrl.replace("ACCESS_TOKEN", token);
		JSONObject jsonResult=CommonUtil.httpsRequest(requestUrl, "POST", jsonMsg);
		if(jsonResult!=null){
			int errorCode=jsonResult.getInt("errcode");
			String errorMessage=jsonResult.getString("errmsg");
			if(errorCode==0){
				flag=true;
			}else{
				System.out.println("客服消息发送失败:"+errorCode+","+errorMessage);
				flag=false;
			}
		}
		return flag;
	}

3 调用客服消息发送接口给指定用户发送客服消息

List<Article> all=new ArrayList<Article>();
		
	
		
		Article a2=new Article();
		a2.setDescription("最崇拜的明星Justin Timberlake");
		a2.setPicUrl("http://img3.douban.com/view/photo/photo/public/p1408738004.jpg");
		a2.setTitle("贾斯汀·汀布莱克(Justin Timberlake),1981年1月31日出生于美国田纳西州孟菲斯市,美国男歌手、演员、音乐制作人、主持人,前男子演唱组合超级男孩成员。");
		a2.setUrl("http://baike.haosou.com/doc/3382630-3560934.html?from=1358&sid=3560934&redirect=search");
		
		all.add(a2);
		
		
		String articleMsg=makeNewsCustomMessage("xxx", all);
		boolean res=sendCustomMessage(token,articleMsg);
		if(res){
			System.out.println("客服消息发送成功");
		}else{
			System.out.println("客服消息发送失败");
		}

到这里程序就写好了,来看下运行效果:



4  多客服的使用

多客服功能主要用于处理需人工操作、耗时较长的场景,我们都知道如果微信服务器在5秒钟没给用户返回消息则会出现“公众号暂时无法提供服务”。这样用户体验会很差,有这种情况不妨考虑下多客服。

下面是API:http://mp.weixin.qq.com/wiki/5/ae230189c9bd07a6b221f48619aeef35.html

个人建议是可以把多客服看成是一种比较特别的消息类型,这样的话只需修改一下MessageUtil就OK了,加入如下代码:

 /** 
     * 客服消息对象转换成xml 
     *  
     * @return xml 
     */  
    public static String customMessageToXml(CustomServiceMessage customServiceMessage) {  
    	
        xstream.alias("xml", customServiceMessage.getClass());  
        return xstream.toXML(customServiceMessage);  
    }  

并且加一种消息类型:

    /** 
     * 多客服消息
     */  
    public static final String TRANSFER_CUSTOMER_SERVICE = "transfer_customer_service";  


5  修改微信消息处理核心工具类

 // 文本消息  
 if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)) { 
       String content=requestMap.get("Content");
       if(content.startsWith("人工客服")){
            	CustomServiceMessage cus=new CustomServiceMessage();
            	cus.setToUserName(fromUserName);  
            	cus.setFromUserName(toUserName);  
            	cus.setCreateTime(new Date().getTime());  
            	cus.setMsgType(MessageUtil.TRANSFER_CUSTOMER_SERVICE);  
            	TransInfo t=new TransInfo();
            	t.setKfAccount("你的客服账号");
            	cus.setTransInfo(t);	
            	respMessage=MessageUtil.customMessageToXml(cus);
            		
        }else{
            respContent = "您发送的是文本消息!"; 
        }
                
}  


顺带贴上CustomServiceMessage和TransInfo的代码:

package com.debug.weixin.message.res;

import com.debug.weixin.pojo.TransInfo;

public class CustomServiceMessage extends BaseMessage {
	private TransInfo TransInfo;

	public TransInfo getTransInfo() {
		return TransInfo;
	}

	public void setTransInfo(TransInfo transInfo) {
		TransInfo = transInfo;
	}

}	

package com.debug.weixin.pojo;

public class TransInfo {
	private String KfAccount;

	public String getKfAccount() {
		return KfAccount;
	}

	public void setKfAccount(String kfAccount) {
		KfAccount = kfAccount;
	}
}

上面的代码如需测试需使用微信关注“多客服助手”或下载安装“windows多客服”,具体参照如下链接:

http://dkf.qq.com/


这里在贴2个我的运行截图:


下面是windows的客户端,就类似QQ的界面



差不多就这样子了

使用微信云开发实现小程序客服消息推送 在开发小程序时,为用户提供良好的客服体验是非常重要的。通过微信云开发,我们可以实现小程序客服消息推送的功能,让用户能够及时收到客服的回复和通知。本文将详细介绍如何基于微信云开发实现小程序客服消息推送,并提供相应的源代码。首先,我们需要创建一个云函数来处理客服消息推送的逻辑。打开微信开发者工具,进入云开发控制台,创建一个新的云函数,命名为"pushMessage"。在云函数的入口文件中,我们需要引入相应的依赖和配置。接下来,我们需要在小程序后台配置客服消息推送功能。在上述代码中,我们首先通过。 阅读详情

相关推荐

西门子 标准程序解读---> 机器手抓取和涂胶控制程序

摘要 该程序实现机械手在OP70/OP90工位的自动化控制,核心功能包括: 流程控制:分段(Seg1-Seg11)管理抓件、涂胶、放件等动作,结合DB1050/DB1250数据块监控工位状态及变位机位置反馈。 安全机制:配置干涉区(FC124)、实时检测安全光/急停信号,防止碰撞;服务程序(FB191)支持维修位触发与安全隔离。 参数配置:通过DB块关联机器人速度、节拍(FB27)、车型编码(如空过=2)及手自动模式(DB70.DBX21.2)。 应用场景:适用于汽车焊接/装配线

工控智联驿站 1239

微信公众号发送客服消息(文本、图文)和模板消息

壹:客服消息 微信文档发送客服消息链接:https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN 一.根据链接我们需要获取access_token,以下先介绍access_token的获取。 1)获取access_token的链接:https://api.weixin.qq....

小石潭记丶 4万+

Unity+ARFoundation 探坑之路

前两天想要上手Unity来AR方面的项目东东 ,探索过程中出现了各种各样的问题,现在将这个过程中遇到的各种各样问题梳理一下,希望后来者能开开心心上手Unity+AR。 注意:这是一篇踩坑博客,具体搭建还请自行百度。 一、ARFoundation or ARCore or ARKit Unity作为一个平台,不直接提供XR(包括VR、AR和MR)的开发包,这时就需要其他公司提供各种各样的SDK工具包...

qq_43575926的博客 7134

微信公众号开发(七)发送客服消息

微信公众号开发(七)发送客服消息 当用户和公众号产生特定动作的交互时(具体动作列表请见下方说明),微信将会把消息数据推送给开发者,开发者可以在一段时间内(目前修改为48小时)调用客服接口,通过POST一个JSON数据包来发送消息给普通用户。此接口主要用于客服等有人工消息处理环节的功能,方便开发者为用户提供更加优质的服务。 允许的动作如下: 用户发送信息 点击自定义菜单(仅有点击推事件...

小红帽的博客 9680

避坑指南:ZYNQ平台上AXI 1G/2.5G Ethernet Subsystem实现IEEE1588的5个关键点

本文详细解析了在ZYNQ平台上使用AXI 1G/2.5G以太网子系统实现IEEE1588精密时间协议(PTP)的5个关键避坑点。从硬件选型、Vivado工程配置到Linux驱动适配,提供了实战经验与优化技巧,帮助工程师在工业自动化、电力系统等场景中实现纳秒级时间同步。

weixin_30687051的博客 236

openbmc mctp i3c适配步骤

本文介绍了在Intel OKS平台下,BMC作为I3C从设备如何适配MCTP over I3C的实现方法。主要内容包括:1)关键术语解释,如MDB(Mandatory Data Byte)值为0xAE,DCR(Device Characteristics Register)和BCR(Bus Characteristics Register)的设置;2)适配流程说明,包括BMC作为控制器主节点分配地址后成为MCTP端点,CPU作为总线所有者的角色转换;3)测试验证步骤,展示通过mctp-client工具发送指

wit_yuan的专栏 132

微信公众平台 客服接口-发消息

微信公众平台技术文档:客服消息一、接口说明当用户和公众号产生特定动作的交互时(具体动作列表请见下方说明),微信将会把消息数据推送给开发者,开发者可以在一段时间内(目前修改为48小时)调用客服接口,通过POST一个JSON数据包来发送消息给普通用户。此接口主要用于客服等有人工消息处理环节的功能,方便开发者为用户提供更加优质的服务。目前允许的动作列表如下(公众平台会根据运营情况更新该列表,不同动作触发后

小小布的程序世界 2万+

初探802.11协议(0)——PCF/DCF与CSMA/CA机制

IEEE802.11 CSMA/CA机制与DCF机制

FanFF的博客 4507

使用微信API给微信用户发文本消息

这个系列的第二篇教程,介绍的实际是被动方式给微信用户发文本消息,即微信用户关注您的公众号时,微信平台将这个关注事件通过一个HTTP post发送到您的微信消息服务器上。用node命名执行上面的代码,也能成功在微信app上接收到通过nodejs代码调用微信消息API的方式发送的文本消息。您微信公众号的appid和secret可以在微信开发者中心的控制台里找到,在“测试号管理”页面的标签页下。本文作为这个开发系列的第三篇教程,介绍的是如何用API的方式,主动向某个粉丝发送文本消息。

weixin_64051447的博客 8499

【ATC/DTC方法第一期】经典平均/昼夜温度周期ATC/DTC方法介绍(含Python代码实现)

【ATC/DTC方法第一期】经典平均/昼夜温度周期ATC/DTC方法介绍(含Python代码实现)

WW、forever的博客 486

Python 爬虫实战:社交媒体(Facebook)评论数据抓取与情感分析

在当今数字化时代,社交媒体平台如 Facebook 已成为人们日常生活中不可或缺的一部分。它不仅是人们分享生活点滴、交流思想的场所,也为企业和研究人员提供了丰富的数据资源。通过分析社交媒体上的评论数据,我们可以了解用户的情感倾向、产品反馈以及社会热点话题等。本文将详细介绍如何使用 Python 爬虫技术抓取 Facebook 上的评论数据,并进行情感分析。这不仅是一次技术实战,更是一次数据探索之旅。

yansideyucsdn的博客 672

微信开发之客服消息接口使用异常

微信开发,参考其官方接口文档微信开发者文档,其中消息管理部分定义了后台与微信用户的消息交互接口。 通常情况下,用户在公众号界面上的操作,包括发送消息,点击菜单等,对后台而言,都可将之视为一次简单的请求,作为请求的响应,后台程序,可以直接向用户返回各种形式的消息,这种向用户发送消息的形式被称为发送被动响应消息。然而有另外一种情况,即用户的操作并不是基于公众号界面,例如,用户在网页上抽奖或者消

随心而笑 1万+

2026最新版OpenClaw安装:Windows WSL2从零到跑通

Windows WSL2安装OpenClaw指南 本文详细介绍了在Windows系统上通过WSL2部署OpenClaw AI助理的完整流程。WSL2结合了Windows易用性和Linux高性能,特别适合Windows用户、开发者、学生和技术爱好者。文章涵盖硬件要求(推荐i5/16GB/SSD)、系统准备(Windows 10/11+WSL2)、环境部署(Python/Node.js/Redis)和OpenClaw配置(克隆/编译/初始化)等关键步骤。通过WSL2,用户可在保留Windows操作习惯的同

一键难忘的博客 2345

微信客服开启,开发node接口让微信客服调用一下

微信客服开启,开发node接口让微信客服调用一下

徐同保的专栏 391

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

微信客服系统开发SDK使用教程-群发消息任务

微信客服系统开发SDK使用教程-群发消息任务 case "WeChatGroupSendTask": {// 群发消息任务 log.debug("websocket:msgtype=WeChatGroupSendTask。。。。。"); weChatGroupSendTaskWesocketHandler.handleMsg(ctx, vo,contentJsonStr); break; } pa...

weixin_30835923的博客 162

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

微信客服系统开发SDK使用教程-给好友发消息任务

微信客服系统开发SDK使用教程-给好友发消息任务 case "TalkToFriendTask": {// 给好友发消息任务 log.debug("websocket:msgtype=TalkToFriendTask。。。。。"); talkToFriendTaskWebsocketHandler.handleMsg(ctx, vo,contentJsonStr); break; } packag...

weixin_30715523的博客 215

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

终极微信自动化指南:Wechaty Puppet WeChat完整使用教程

想要实现微信消息自动回复、群管理、智能客服等功能吗?Wechaty Puppet WeChat是您实现微信自动化的最佳选择!这个强大的开源工具基于Puppeteer技术,让您能够轻松构建智能微信机器人。🚀 [![微信自动化工具](https://raw.gitcode.com/gh_mirrors/pu/puppet-wechat/raw/09fedb147bebee1e28ac03c50de

gitblog_00043的博客 444

高效构建智能微信机器人:Wechat-bot完整开发指南

在当今数字化办公时代,微信已成为企业沟通和个人社交的重要平台。然而,手动处理大量消息、管理群组和回复重复性咨询耗费了大量宝贵时间。Wechat-bot微信机器人工具集应运而生,为开发者提供了完整的自动化解决方案。本文将详细介绍如何使用这个强大的工具集构建高效、智能的微信机器人系统。 ## 核心功能与价值主张 Wechat-bot是一个基于PC微信的聊天机器人框架,提供了WebSocket和HT

gitblog_00929的博客 375

java 发送客服消息_java微信开发(wechat4j)——发送客服消息

微信支持主动发送客服消息。如果你要实现此功能,需要使用CustomerMsg类。 获得access_token access_token请求之后有一个过期时间,微信平台建议你使用一个中控服务器来定时刷新token,取得之后存起来不用再去请求token,因为access_token请求有次数限制。 这里建议你使用一个监听器来控制token,定时去获取一个新的存起来即可。 要获取access_toke...

weixin_42353061的博客 401

如何快速搭建智能微信机器人:Wechat-bot完整指南 [特殊字符]

想要让微信变得更加智能和自动化吗?Wechat-bot 是一款功能强大的PC微信聊天机器人,支持二次开发接口,能够帮助你实现微信消息的自动收发、智能回复和群组管理。本指南将为你详细介绍如何快速搭建和使用这款强大的微信机器人工具。 ## 🤖 什么是Wechat-bot? Wechat-bot 是一个基于PC微信的聊天机器人框架,提供了丰富的API接口,支持WebSocket和HTTP两种通信方

gitblog_00087的博客 728

使用企业微信API配置消息回调对接智能体实现AI客服开发

基于企业微信iPad协议接口的智能客服自动化解决方案,实现从消息接收、AI处理到自动回复的全链路流程。系统通过企微iPad协议API支持多账号管理、消息收发、文件传输等功能,结合RAG大模型提供智能问答能力。方案采用分层架构设计,包含协议层、消息回调层、AI处理层和调度层,通过RabbitMQ异步解耦确保稳定性。支持文本、图片、语音、引用消息等多种交互场景,具备异常处理、会话隔离、离线消息同步等生产级能力。该方案特别适用于零售连锁等行业的企微客服自动化场景,能够有效提升客服效率,同时满足内容合规和

WXID_Mrzhu0107的博客 919

微信公众号开发(152)——使用客服消息发送微信卡券

本文介绍如何使用微信公众平台客服消息发送接口来发送卡券给用户。 一、卡券格式 卡券的json格式如下 { "touser":"OPENID", "msgtype":"wxcard", "wxcard":{ "card_id":"123dsdajkasd231jhksad" } } 其中,msgtype为wxcard,...

weixin_30881367的博客 216

10个实用的wechat-api应用场景:从客服机器人到群管理

wechat-api是基于Java7开发的微信API工具包,为开发者提供了丰富的接口来构建各类微信应用。本文将介绍10个实用的应用场景,帮助你充分利用这个强大的工具包,从自动化客服到智能群管理,轻松实现多样化的微信功能扩展。 ## 1. 智能客服机器人:7x24小时自动响应客户咨询 客服机器人是wechat-api最常见的应用场景之一。通过实现消息监听和自动回复功能,你可以构建一个7x24小时

gitblog_00626的博客 937

如何用Java打造你的第一个微信机器人:wechat-api终极指南

还在手动回复微信消息吗?想不想让代码帮你处理日常聊天?今天我要向你介绍一个神奇的Java工具——wechat-api,它能让你用Java轻松构建微信个人号自动化机器人!😊 想象一下:每天早上,你的微信机器人自动回复客户咨询;工作期间,它帮你收集群聊重要信息;晚上,它还能整理一天的消息记录。这一切,只需要几行Java代码就能实现! ## 🚀 为什么选择wechat-api? 让我用一个简单

gitblog_00173的博客 524

5步搞定Wechaty微信机器人:从零开始的完整指南

想要打造一个智能微信机器人,自动回复消息、管理好友、处理群聊吗?Wechaty Puppet WeChat正是你需要的终极解决方案!这个强大的开源项目让你能够基于微信Web协议快速构建功能丰富的微信机器人应用,无需复杂的底层开发工作。 Wechaty Puppet WeChat是Wechaty生态系统的核心组件,专门为微信平台提供Puppet(傀儡)服务。通过这个模块,你可以轻松实现微信消息收发

gitblog_00370的博客 675

解决微信管理效率难题的智能方案:WeChat Toolbox全功能自动化工具

在数字化社交日益频繁的今天,个人与企业用户都面临着微信联系人管理繁琐、群成员信息整理耗时、消息回复不及时等痛点。WeChat Toolbox(微信工具箱)作为一款开源的全功能微信管理工具,通过自动化技术彻底革新微信操作流程,让用户从重复劳动中解放出来,专注于更有价值的沟通与决策。 ## 核心价值:重新定义微信管理效率 WeChat Toolbox以"本地数据安全+功能模块化+操作简易化"为核心

gitblog_00716的博客 266
上一篇: 微信开发之带参二维码的使用
下一篇: java微信消息加解密
青蛙小王子
博客等级 码龄16年 239粉丝 311原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值