短微信公众号 短信验证是如何发送的?

流米之外再造流信,首推短信公众号引关注_山东新闻_大众网
近日,流米频繁亮相深圳高交会、梅花网传播业大展等盛会,出色表现引起业内人士关注。然而,流米只是深圳腾畅科技有限公司的一个品牌。近期,深圳腾畅科技又有大动作,推出“流信”,并重磅首推“流信短信公众号”,为企业打造一个全新的流量入口。
洞察:流米之外,为何再造流信?
短短两年时间,流米从手机流量奖励营销成功转型为一站式数字奖励营销专家,成长速度之快,让业内惊叹。深圳腾畅科技在流米发展迅猛之际,为何再造流信?这是很多人心中的疑问。据了解,流信与流米有不同的市场定位,流信专注企业数据服务,并推出“流信短信公众号”。
为何有“短信公众号”的问世?事实上,与目前流量的现状有关。如今,流量之贵,已是业内共识。有人更断言,“流量对于任何一家互联网公司来说都是命脉,没有流量,一切商业模式都是空谈。”在流量价格不断攀升的今天,有没有一些渠道,是曾经发挥过巨大威力,而现在逐渐式微?有没有办法让它重新发挥威力?短信两字呼之欲出。
或许有人认为,微信、QQ早已取代短信,现在谈短信还有什么意义?确实,点对点的短信沟通大幅度下降,然而数据显示,B端对C端的短信却是每年呈现25%的增长。这说明,对于B端企业用户来说,短信仍有巨大威力。
当然,对于传统短信来说,有着不可忽视的硬伤。传统短信,单向的信息通知,枯燥的文字表述,互动效果差。而流信,推出“短信公众号”,提出了有效的解决方案,重新定义短信。
  解析:短信公众号 新流量入口
什么是短信公众号?顾名思义,短信公众号,即直接在短信界面提供类似微信公众号的服务。拿最近引发热议的“小程序”来说,在“微信之父”张小龙看来,小程序是一种不需要下载安装即可安装使用的应用,它实现了“触手可及”和“用完即走”的理念。
无独有偶。短信公众号,方便快捷,触手可及,是它最大的卖点。短信公众号,用户接收信息,无需下载安装,就可直接在短信页面进行充值,跳转页面。在用户需求场景中,同时具备刚需和高频两个特点,互动场景更高效,有效提升用户体验。
流信短信公众号,让短信具备公众号的功能,是对短信的轻应用,直接链接企业和用户服务,提升企业价值。这种形式,相当于再造一个新的流量入口,为用户体验提供了更多的选择。
短信公众号,对于抓住机会的人来说,是个不小的红利。短信公众号的推出,对用户和企业来说都是双赢,短信的商业化,或许能进一步触动短信的生态布局。
本稿件所含文字、图片和音视频资料,版权均属齐鲁晚报
初审编辑:
责任编辑:system
1日,记者从山东省政府办公厅获悉,《山东省事业单位机构编制管理规定》(省政府令第305号)已经日省政府第91次常务会议通过,自日起施行。新规明确,公益三类事业单位逐步转制为企业或者不纳入编制管理,实行经费自理。
12-02 07-12生活日报
近年来,我省检察机关严格执行刑事诉讼法,不断强化侦查监督,2013年至今年10月份,全省共批准逮捕各类刑事犯罪嫌疑人156612人,不批准逮捕61580人。
12-02 07-12新锐大众
《通告》规定,城市道路内停放机动车应当按照施划泊位有序停放。不按规定停放的,由停车管理员劝导至规定地点停放;驾驶人不在现场的,停车管理员粘贴《机动车停放提示单》,并通过拍照、摄像等方式留存证据。留存证据经公安机关交通管理部门审查核实后,依法对违法...
12-02 07-12济南日报
“醉驾入刑”5年多来(日至日),济南市累计查处酒驾27914起、醉驾3921起,因醉酒驾驶、二次酒驾及涉酒发生重大交通事故吊销驾驶证3600余个。酒驾高发时段为21:00-24:00,涉酒事故多发时段00:00-02:00,其中男性占比97%,多为无固定职业人员。
12-02 07-12生活日报
自北京地区中小学VR课堂如火如荼的开展以来。据了解,应用到教学中的每堂VR课,均由一台老师用Pad主控端、多套学生用VR眼镜和“IES沉浸式教学软件系统”构成。随着首堂VR课在天津正式落地,必将吸引地区更多中小学跟进,带动天津地区VR教学进入实质应用阶段。
12-02 16-12枣庄新闻网
12-02 16-12新浪娱乐
Copyright (C)
& dzwww.com. All Rights Reserved
山东省互联网传媒集团主办 Email: &
违法不良信息举报电话:0多线程设置
package cloud.app.prod.home.
import java.util.ArrayL
import java.util.L
import java.util.concurrent.BlockingQ
import java.util.concurrent.CountDownL
import java.util.concurrent.LinkedBlockingQ
import java.util.concurrent.ThreadPoolE
import java.util.concurrent.TimeU
import org.apache.log4j.L
* Author : YongBo Xie &/br&
* File Name: DSHMessageAndSmsSendThreadUtil.java &/br&
* Created Date: 日 下午2:59:46 &/br&
* Modified Date: 日 下午2:59:46 &/br&
* Version: 1.0 &/br&
public class DSHWechatMsgAndSmsSendThreadUtil {
private static Logger logger = Logger.getLogger(DSHWechatMsgAndSmsSendThreadUtil.class);
public static void main(String[] args) {
List&String& mobileList = new ArrayList&&();
mobileList.add("");
mobileList.add("");
String content = "SCRM 多线程发送短信测试";
sendSMS(mobileList, content);
} catch (Exception e) {
e.printStackTrace();
* 发送短信
* @param mobileList
* @param content
* @throws Exception
public static void sendSMS(List&String& mobileList, String content) throws Exception {
logger.info("send message start...");
long startTime = System.currentTimeMillis();
BlockingQueue&Runnable& queue = new LinkedBlockingQueue&Runnable&(20000);
ThreadPoolExecutor executors = new ThreadPoolExecutor(5, 10, 60000, TimeUnit.SECONDS, queue);
// 要推送的用户总数
int count = mobileList.size();
logger.info("message all count=" + count);
// 初始每个线程处理的用户数量
final int eveLength = 5;
// 计算处理所有用户需要的线程数量
int eveBlocks = count / eveLength + (count % eveLength != 0 ? 1 : 0);
logger.info("need thread's count=" + eveBlocks);
// 线程计数器
CountDownLatch doneSignal = new CountDownLatch(eveBlocks);
// 开启线程处理
int doneCount = 0;
for (int page = 0; page & eveB page++) { /* blocks太大可以再细分重新调度 */
content = content + ",线程" + (page + 1);
SmsSendThread ms = new SmsSendThread(mobileList, content, page, eveLength, doneSignal);
executors.execute(ms);
// logger.info("start thread =&{}",page+1);
doneCount++;
doneSignal.await();// 等待所有计数器线程执行完
long endTime = System.currentTimeMillis();
logger.info("send message all thread ends!time(s)=" + (startTime - endTime) / 1000);
logger.info("all thread count=" + doneCount);
} catch (Exception e) {
logger.error("send message error=&{}", e);
* 微信公众号推送消息
* @param accessToken 公众号token
* @param openIdList 微信OpenID列表
* @param content 消息内容
* @throws Exception
public static void sendWechatMsg(String accessToken, List&String& openIdList, String content) throws Exception {
logger.info("send message start...");
long startTime = System.currentTimeMillis();
BlockingQueue&Runnable& queue = new LinkedBlockingQueue&Runnable&(20000);
ThreadPoolExecutor executors = new ThreadPoolExecutor(5, 10, 60000, TimeUnit.SECONDS, queue);
// 要推送的用户总数
int count = openIdList.size();
logger.info("message all count=" + count);
// 初始每个线程处理的用户数量
final int eveLength = 2000;
// 计算处理所有用户需要的线程数量
int eveBlocks = count / eveLength + (count % eveLength != 0 ? 1 : 0);
logger.info("need thread's count=" + eveBlocks);
// 线程计数器
CountDownLatch doneSignal = new CountDownLatch(eveBlocks);
// 开启线程处理
int doneCount = 0;
for (int page = 0; page & eveB page++) { /* blocks太大可以再细分重新调度 */
WachatMagSendThread ms = new WachatMagSendThread(accessToken, openIdList, content, page, eveLength, doneSignal);
executors.execute(ms);
// logger.info("start thread =&{}",page+1);
doneCount++;
doneSignal.await();// 等待所有计数器线程执行完
long endTime = System.currentTimeMillis();
logger.info("send message all thread ends!time(s)=" + (startTime - endTime) / 1000);
logger.info("all thread count=" + doneCount);
} catch (Exception e) {
logger.error("send message error=&{}", e);
发送短信线程
package cloud.app.prod.home.
import java.util.L
import java.util.concurrent.CountDownL
import org.apache.log4j.L
* Author : YongBo Xie &/br&
* File Name: SmsSendThreadUtils.java &/br&
* Created Date: 日 下午2:17:42 &/br&
* Modified Date: 日 下午2:17:42 &/br&
* Version: 1.0 &/br&
public class SmsSendThread implements Runnable {
private static Logger logger = Logger.getLogger(SmsSendThread.class);
private List&String& mobileL//手机号码
private S//短信内容
private int currentI//当前索引
private int//处理数据条数
private CountDownLatch doneS//处理线程条数
public SmsSendThread(List&String& mobileList, String content, int currentIndex, int rows, CountDownLatch doneSignal) {
this.mobileList = mobileL
this.content =
this.currentIndex = currentI
this.rows =
this.doneSignal = doneS
public void run() {
// 查询当前的block范围内的发送的手机号=&筛选目标客户群手机号---------
String mobiles = filterPhones(mobileList, currentIndex, rows);
DSHSendMessageUtil.postSendMsg(content, mobiles);
} catch (Exception e) {
logger.error("send message thread exception=&{" + mobiles + "}{" + e.getMessage() + "}");
e.printStackTrace();
} finally {
doneSignal.countDown();//工人完成工作,计数器减一
* 筛选目标客户群手机号
* @param mobileList 手机号码
* @param currentIndex 当前索引
* @param rows 处理数据条数
private String filterPhones(List&String& mobileList, int currentIndex, int rows) {
int startIndex = currentIndex *
int endIndex = (currentIndex + 1) *
if (endIndex & mobileList.size()) {
endIndex = mobileList.size();
String mobiles = "";
for (int i = startI i & endI i++) {
mobiles = mobileList.get(i) + "," +
package cloud.app.prod.home.
import java.io.BufferedR
import java.io.InputStreamR
import java.io.OutputS
import java.io.UnsupportedEncodingE
import java.net.HttpURLC
import java.net.URL;
import java.net.URLE
* File Name: DSHSendMessageUtil.java&br&
* Created Date: 日 上午9:54:12&br&
* Modified Date: 日 上午9:54:12&br&
* Version: 1.0&br&
public class DSHSendMessageUtil {
private static final String OPER_ID = "ceshfj2";
private static final String OPER_PASS = "jcUiROHM";
private static final String SEND_URL = "http://qxtsms.guodulink.net:8000/QxtSms/QxtFirewall";
private static final String SEND_TIME = "";
private static final String VALID_TIME = "";
private static final String APPEND_ID = "888";
* @param args
* @throws Exception
public static void main(String args[]) throws Exception {
String content = "http://news.sina.com.cn/o//doc-ifyshvuy1243084.shtml";
String mobiles = ",";
/* post方式发送消息 */
boolean postResponse = DSHSendMessageUtil.postSendMsg(content, mobiles);
System.out.println("post方式返回的响应为:" + postResponse);
} catch (Exception e) {
// TODO: handle exception
* 发送短信
* @param content 短信内容
* @param mobiles 手机号,多个手机号可用&,&隔开
* @return boolean
public static boolean postSendMsg(String content, String mobiles) throws Exception {
boolean flag = false;
/* 将内容用URLEncoder编一次GBK */
String encoderContent = "";
encoderContent = URLEncoder.encode(content, "GBK");
/* 消息参数 */
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("OperID=").append(OPER_ID)
.append("&OperPass=").append(OPER_PASS)
.append("&SendTime=").append(SEND_TIME)
.append("&ValidTime=").append(VALID_TIME)
.append("&AppendID=").append(APPEND_ID)
.append("&DesMobile=").append(mobiles.trim())
.append("&Content=").append(encoderContent)
.append("&ContentType=").append("8");
/* 使用post方式发送消息 */
String response = postURL(stringBuilder.toString(), SEND_URL);
if (response.indexOf("&code&01&/code&") &= 0) {
flag = true;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
* @param commString 需要发送的url参数串
* @param address 需要发送的url地址
* @return 国都返回的XML格式的串
* @catch Exception
public static String postURL(String commString, String address) {
String rec_string = "";
URL url = null;
HttpURLConnection urlConn = null;
/* 得到url地址的URL类 */
url = new URL(address);
/* 获得打开需要发送的url连接 */
urlConn = (HttpURLConnection) url.openConnection();
/* 设置连接超时时间 */
urlConn.setConnectTimeout(30000);
/* 设置读取响应超时时间 */
urlConn.setReadTimeout(30000);
/* 设置post发送方式 */
urlConn.setRequestMethod("POST");
/* 发送commString */
urlConn.setDoOutput(true);
urlConn.setDoInput(true);
OutputStream out = urlConn.getOutputStream();
out.write(commString.getBytes());
out.flush();
out.close();
/* 发送完毕 获取返回流,解析流数据 */
BufferedReader rd = new BufferedReader(new InputStreamReader(urlConn.getInputStream(), "GBK"));
StringBuffer sb = new StringBuffer();
while ((ch = rd.read()) & -1) {
sb.append((char) ch);
rec_string = sb.toString().trim();
rd.close();
} catch (Exception e) {
rec_string = "-107";
} finally {
if (urlConn != null) {
urlConn.disconnect();
return rec_
微信公众号推送消息线程
package cloud.app.prod.home.
import java.util.L
import java.util.concurrent.CountDownL
import org.apache.log4j.L
import cloud.app.prod.home.wechat.DSHWechatAPIH
import net.sf.json.JSONA
import net.sf.json.JSONO
* Author : YongBo Xie &/br&
* File Name: WachatMagSendThread.java &/br&
* Created Date: 日 下午4:11:23 &/br&
* Modified Date: 日 下午4:11:23 &/br&
* Version: 1.0 &/br&
public class WachatMagSendThread implements Runnable {
private static Logger logger = Logger.getLogger(WachatMagSendThread.class);
private String accessT//公众号token
private List&String& openIdL//微信OpenID列表
private S//消息内容
private int currentI//当前索引
private int//处理数据条数
private CountDownLatch doneS//处理线程条数
public WachatMagSendThread(String accessToken, List&String& openIdList, String content, int currentIndex, int rows, CountDownLatch doneSignal) {
this.accessToken = accessT
this.openIdList = openIdL
this.content =
this.currentIndex = currentI
this.rows =
this.doneSignal = doneS
public void run() {
// 查询当前的block范围内的发送的OpenID---------
JSONArray openIdArray = filterOpenIds(openIdList, currentIndex, rows);
// 设置发送消息的参数
JSONObject msgJson = new JSONObject();
msgJson.put("touser", openIdArray);
msgJson.put("msgtype", "text");
JSONObject contentJson = new JSONObject();
contentJson.put("content", content);
msgJson.put("text", contentJson);
DSHWechatAPIHander.sendMessage(accessToken, msgJson.toString());
} catch (Exception e) {
logger.error("send message thread exception=&{" + openIdArray.toString() + "}{" + e.getMessage() + "}");
e.printStackTrace();
} finally {
doneSignal.countDown();//工人完成工作,计数器减一
* 筛选目标客户群OpenID
* @param openIdList OpenID
* @param currentIndex 当前索引
* @param rows 处理数据条数
private JSONArray filterOpenIds(List&String& openIdList, int currentIndex, int rows) {
int startIndex = currentIndex *
int endIndex = (currentIndex + 1) *
if (endIndex & openIdList.size()) {
endIndex = openIdList.size();
JSONArray openIdArray = new JSONArray();
for (int i = startI i & endI i++) {
openIdArray.add(openIdList.get(i));
return openIdA
微信公众号推送消息
package cloud.app.prod.home.
import java.io.IOE
import java.io.UnsupportedEncodingE
import java.text.MessageF
import java.util.ArrayL
import java.util.HashM
import java.util.L
import java.util.M
import java.util.S
import org.apache.http.HttpE
import org.apache.http.HttpH
import org.apache.http.HttpR
import org.apache.http.NameValueP
import org.apache.http.client.ClientProtocolE
import org.apache.http.client.HttpC
import org.apache.http.client.config.RequestC
import org.apache.http.client.methods.CloseableHttpR
import org.apache.http.client.methods.HttpP
import org.apache.http.client.methods.HttpUriR
import org.apache.http.client.methods.RequestB
import org.apache.http.conn.routing.HttpR
import org.apache.http.entity.StringE
import org.apache.http.impl.client.CloseableHttpC
import org.apache.http.impl.client.HttpClientB
import org.apache.http.impl.client.HttpC
import org.apache.http.impl.conn.PoolingHttpClientConnectionM
import org.apache.http.message.BasicNameValueP
import org.apache.http.util.EntityU
import org.apache.log4j.L
* Author : YongBo Xie &/br&
* File Name: WechatAPIHander.java &/br&
* Created Date: 日 下午6:29:00 &/br&
* Modified Date: 日 下午6:29:00 &/br&
* Version: 1.0 &/br&
public class DSHWechatAPIHander {
private static Logger logger = Logger.getLogger(DSHWechatAPIHander.class);
* 主动推送信息接口(群发)
private static String SEND_MSG_URL = "https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token={0}";
private static PoolingHttpClientConnectionManager connectionManager = null;
private static HttpClientBuilder httpBuilder = null;
private static RequestConfig requestConfig = null;
private static int MAXCONNECTION = 10;
private static int DEFAULTMAXCONNECTION = 5;
private static String IP = "127.0.0.1";
private static int PORT = 8888;
// 设置http的状态参数
requestConfig = RequestConfig.custom().setSocketTimeout(5000).setConnectTimeout(5000).setConnectionRequestTimeout(5000).build();
HttpHost target = new HttpHost(IP, PORT);
connectionManager = new PoolingHttpClientConnectionManager();
connectionManager.setMaxTotal(MAXCONNECTION);// 客户端总并行链接最大数
connectionManager.setDefaultMaxPerRoute(DEFAULTMAXCONNECTION);// 每个主机的最大并行链接数
connectionManager.setMaxPerRoute(new HttpRoute(target), 20);
httpBuilder = HttpClients.custom();
httpBuilder.setConnectionManager(connectionManager);
public static CloseableHttpClient getConnection() {
CloseableHttpClient httpClient = httpBuilder.build();
return httpC
public static HttpUriRequest getRequestMethod(Map&String, String& map, String url, String method) {
List&NameValuePair& params = new ArrayList&NameValuePair&();
Set&Map.Entry&String, String&& entrySet = map.entrySet();
for (Map.Entry&String, String& e : entrySet) {
String name = e.getKey();
String value = e.getValue();
NameValuePair pair = new BasicNameValuePair(name, value);
params.add(pair);
HttpUriRequest reqMethod = null;
if ("post".equals(method)) {
reqMethod = RequestBuilder.post().setUri(url).addParameters(params.toArray(new BasicNameValuePair[params.size()])).setConfig(requestConfig).build();
} else if ("get".equals(method)) {
reqMethod = RequestBuilder.get().setUri(url).addParameters(params.toArray(new BasicNameValuePair[params.size()])).setConfig(requestConfig).build();
return reqM
* @desc 推送信息
* @param token
* @param msg
public static void sendMessage(String token, String msg) {
logger.info("\n\nsendMessage start.token:" + token + ",msg:" + msg);
String url = MessageFormat.format(SEND_MSG_URL, token);
// 创建默认的httpClient实例.
CloseableHttpClient httpclient = HttpClients.createDefault();
// 创建httppost
HttpPost httppost = new HttpPost(url);
// 设置发送消息的参数
// 这里必须是一个合法的json格式数据,每个字段的意义可以查看上面连接的说明,content后面的test是要发送给用户的数据,这里是群发给所有人
msg = "{\"filter\":{\"is_to_all\":true},\"text\":{\"content\":\"test\"},\"msgtype\":\"text\"}\"";
StringEntity sE
sEntity = new StringEntity(msg);
// 解决中文乱码的问题
sEntity.setContentEncoding("UTF-8");
sEntity.setContentType("application/json");
httppost.setEntity(sEntity);
System.out.println("executing request " + httppost.getURI());
// 发送请求
CloseableHttpResponse response = httpclient.execute(httppost);
HttpEntity hEntity = response.getEntity();
if (hEntity != null) {
System.out.println("--------------------------------------");
System.out.println("Response content: " + EntityUtils.toString(hEntity, "UTF-8"));
System.out.println("--------------------------------------");
} finally {
response.close();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭连接,释放资源
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
logger.error("get user info exception", e);
public static void main(String args[]) throws IOException {
Map&String, String& map = new HashMap&String, String&();
map.put("account", "");
map.put("password", "");
HttpClient client = getConnection();
HttpUriRequest post = getRequestMethod(map, "http://baidu.com", "post");
HttpResponse response = client.execute(post);
if (response.getStatusLine().getStatusCode() == 200) {
HttpEntity entity = response.getEntity();
String message = EntityUtils.toString(entity, "utf-8");
System.out.println(message);
System.out.println("请求失败");
阅读(...) 评论()一个神奇的短信(微信)拜年公众号
每年春节到的时候大家会在网上花很多时间寻找特色的过年短信,要不就是一个人闷头苦想半天憋出一条很一般的祝福信息,小编自己包括身边亲戚朋友也都是这样子的。
如今,越来越多的人活跃在微信上,微信俨然已经成为人们平时沟通聊天互动的主要平台了。比如说2014年元旦,小编自己就在微信上收到大量新年快乐的祝福,其中包括文字的,静态或动态图片的,还有微视频的。很多不错的小编自己也转发给亲朋好友了,收到了很多赞,同时也有人问,这些那么好的资源都是从哪来的?不能是你自己创作的吧!确实,小编仔细想想这些都是怎么出现的?网上转载的?那我自己想发一些有创意的都去哪找?于是,小编在网上和微信上疯狂的搜索,终于功夫不负有心人,发现了一个非常好的微信公众平台,里面的内容丰富到小编都没有想到过,真心是过年的大福利啊,现在送给大家。
这个微信公众号的名称叫做快联科技,小编实在是因为看到logo才加关注的。大家可以进入微信应用程序中,点击通讯录,里面右上角的添加,查找公众号,输入快联科技,点击搜索,就能看到一个送祝福logo的公众号,加为关注。
关注后会发现快联科技推送了一个信息,原来是他们做了个迎接马年新春的送祝福活动,当然小编也注意到下面会有三个菜单:文字祝、马上拜年和特色拜年,这些都是有什么用途,小编挨个试了一遍,发现内容好多,下面慢慢介绍:
小编强迫症的按照从左到右的顺序开始尝试,先点开文字拜年,里面有五部分内容:马年祝福语,朋友祝福语,父母祝福语,亲戚祝福语和领导祝福语(这不就是小编多年以来一直寻找的祝福短信嘛,想到这里不知怎的留下的两行泪水为什么你没有早一点出现)。选择马年祝福语点击,会出现一条主题是马年的祝福,多次点击同一个,发现每次出来的信息都不一样。于是小编开始疯狂点击这五个按钮,真的是每次内容都不一样啊,这真是太好了,小编在也不用担心自己的短信会和别人有重复的了。
接着,小编点开了了马上拜年,发现里面也有五个内容:马上有钱,马上结婚,马上有车,马上有房和马上更多(看到这里,小编又留下了两行眼泪,难道是预示小编马年都会拥有这些嘛!)。随便点开一个发现竟然出现的是图片,而且图面的内容真是太萌了啊。同样多次点击发现里面的图片,每次出现的图片还都不一样啊,这是要萌死小编自己么。
最后点开特色祝福,也是分为五个内容:使用说明,上门拜年,美图祝福,图片定制和文字定制,点开里面的内容真是让小编开了眼界啊。首先看看使用说明:
其中祝福方式2和3介绍了图片定制和文字定制的使用方法,具体的小编自己已经尝试了多次,真是太好玩了,具体呈现小编在这里就不多说了,有兴趣的可以去关注下,亲自尝试会带来不一样的效(笑)果哦~.~。
接着我们看下上门拜年,这个怎么玩啊,限于小编智商有限,半天才研究明白,具体的大家亲自试试就会发现很有意思了啊。
最后点开美图祝福,会立即出现一个图文信息,图片优美,文字有意境,每次点开,内容不一样,真是在节日中呈现出另一番祝福的味道,让人回味无穷。
写到最后,小编自己发现快联科技推出的马年新春送祝福的活动真是帮助了像小编这样的大部分人在春节的切实需求,传统文字祝福,应景图片祝福与创意十足的上门拜年,美图祝福,可以定制的文字、图片祝福相互结合,真是会让大家挑花了眼。小编强烈推荐大家加关注,去尝试一下!
没有更多推荐了,

我要回帖

更多关于 公众号加入 短信验证 的文章

 

随机推荐