注意:以下文档只适用于TOP接口,请谨慎使用!

文档中心 > 聚石塔

开通聚石塔短信服务

    登录聚石塔(cloud.tmall.com)产品中心,选择短信服务,进入短信服务页面(需要先登录),点击“马上使用”

    请完整填写申请信息,并提交审核,提交申请信息后,审核人员会在三个工作日内完成审核;

开通接口权限

    登录聚石塔(cloud.tmall.com),进入控制台->应用管理->点击您需要申请短信权限的appkey的应用管理->进入appkey应用管理概览页面,查看相应appkey的权限能力列表中——“聚石塔短信服务权限包”权限的获取情况。

    如果已经获取“聚石塔短信服务权限包”,则可以直接调用接口进行短信发送;如果未获得“聚石塔短信服务权限包”权限,则申请权限;若您在appkey的权限能力列表中没有发现“聚石塔短信服务权限包”,请联系聚石塔阿里通信运营小二

下载SDK包

    获得“聚石塔短信服务权限包”权限之后可以登录聚石塔控制台->应用管理->进入相应的appkey下的应用管理页面->选择SDK下载,进行相应开发平台的sdk下载,也可以下载以下SDK(以下SDK中仅包含短信接口jar包,强烈建议您下载自己的SDK包)

短信模板申请

您在调用聚石塔短信接口时,需要输入相应的短信模板参数,申请短信模板有两种途径:

第一、登录聚石塔控制台-资源管理-电商业务组件-短信发送服务-短信模板管理,申请需要的短信模板,并提交审核,您的申请不会超过2个工作日。

第二、如果您需要对短信内容进行自定义,并且您的公司配有专人对短信内容进行审核,您可以申请全变量模板,全变量模板申请需要走线下流量,请联系聚石塔阿里通信运营小二;

短信签名申请

针对系统短信,您可以自定义签名发送短信,聚石塔不对短信签名进行管控。

针对营销短信,您需要进行签名报备,先联系聚石塔运营小二:花茗、牧绅,开通营销短信签名权限后,再采用以下两种方式进行签名报备:

第一、登录聚石塔控制台-资源管理-电商业务组件-短信发送服务-短信签名管理,申请需要的短信签名,并提交审核,您的申请不会超过2个工作日即可完成审核。

第二、如果客户需要报备的签名数量较多,可以通过线下邮件的方式,进行报备,线下发送邮件给wb-mzl204519@alibaba-inc.com(邮件中需要提交模板id),短信签名应符合短信签名规则,否则不予报备。

短信发送

申请聚石塔短信服务权限包后,下载最新sdk,并调用聚石塔短信发送接口alibaba.aliqin.ta.sms.num.send(短信发送),批量发送多个号码,以英文逗号分隔,最大支持200个手机号码,点击查看接口文档以及调用示例代码

字段描述:

A:extend_code为短信发送扩展码字段,如用户需要精确定义短信发送扩展码,则可与聚石塔小二联系(花茗、牧绅、亮香),聚石塔将为用户设置扩展码字段,用户根据需求自定义扩展码发送短信。使用场景:当用户有上行短行需求时,可用于误别不同发送代码的上行短信内容,若对上行短信没有需求,则可不加此字估;

B:extend_name为店铺nick字段,聚石塔发现有非法分子在淘宝开店,然后利用其店铺在服务市场购买服务商营销软件发送非法言诈骗短信,针对这类情况,一方面需要服务商配合做好严格的内容审核与把控,另一方面阿里也需要收集证据对这部分非法开设的店铺进行处罚。因此,需要服务商在发送短信时,增加"店铺nick"字段,以便聚石塔在收到用户投诉时,能快速识别非法店铺并启动处罚措施。同时,部分服务商反馈,在拦截非法店铺的短信时,经常会被差评处理,针对这类情况,聚石塔也可以依据非法店铺的nick信息来维护服务商的正当权益。非阿里系的店铺,也请填入其店铺NICK;

为了提升商家发送短信店铺转化率,建议申请“ECRM短链服务权限包”,在短信内容中加入淘短链推广地址,调用taobao.crm.service.channel.shortlink.create(创建店铺淘短链),点击查看接口文档以及调用示例代码

用户调用短信发送接口后,可以通过短信记录查询或者接收消息状态报告等方式查看短信发送状态,推荐使用消息推送方式接收消息状态报告:

短信记录查询

调用alibaba.aliqin.ta.sms.num.query接口查询某一条短信发送是否成功及其发送状态情况,帮助服务商运营同学及时了解每一条短信的状态,点击查看接口文档以及调用示例代码

接收消息状态报告

用户调用短信发送接口成功后,阿里通信会将短信发送状态报告通过消息同步服务实时推送到用户的消息队列ons,用户可订阅消息同步服务接收阿里通信实时推送的消息状态报告.未获取到聚石塔短信服务权限包,需要先申请权限包后才能进行订阅.

短信上行数据结构

短信发送结果报告数据结构

接收消息状态报告示例

 阿里通信消息订阅成功后,系统将会在ONS控制台发布管理中生成一个系统级topic.用户需要在topic管理中订阅系统级topic获取消息.系统级的topic规格为:rmp_sys_jst_应用appkey.

 

注意事项

a.使用消息同步服务的应用程序需要部署在ECS上,如果联调测试,可以创建一个公网测试环境下创建topic,在开发环境完成测试后再切换到正式环境.

b.接收消息的前提条件

     1.应用appkey订阅消息需要推送的消息.

     2.调用taobao.jushita.jms.user.add添加需要推送的用户.

     3.确保应用appkey拥有同步ONS消息权限包.

开启用户消息推送

订阅开通消息同步服务后,系统将默认为您的应用增加消息同步服务权限包,可通过api为特定的用户开通消息实时推送.

添加消息同步用户

调用taobao.jushita.jms.user.add 添加ONS消息同步用户.此api调用需要传入sessionkey【即授权码】

删除消息同步用户

调用taobao.jushita.jms.user.delete 删除ONS消息同步用户,删除后用户的消息将不会推送到聚石塔的ONS中.入参必须输入user_nick来判断删除用户是否成功.

查询消息同步用户

调用taobao.jushita.jms.user.get 查询某个用户是否同步消息.入参必须输入user_nick来判断该用户是否开通消息推送.

 

消息同步服务集群方式消费消息

Java代码:
public class ConsumerTest {  
   public static void main(String[] args) {
       Properties properties = new Properties();
       properties.put(PropertyKeyConst.ConsumerId, "CID_001");// ons控制台订阅管理中获取ConsumerID
       properties.put(PropertyKeyConst.AccessKey, "appkey");// 应用appkey,根据用户实际参数修改
       properties.put(PropertyKeyConst.SecretKey, "secretkey");// 应用密钥,根据用户实际参数修改
       properties.put(PropertyKeyConst. OnsChannel ,   "CLOUD" ); // cloud为聚石塔标识  
       properties.put(PropertyKeyConst.MessageModel,PropertyValueConst.CLUSTERING);//集群消费
       // properties.put(PropertyKeyConst.MessageModel,PropertyValueConst.BROADCASTING);广播消费模式
       Consumer consumer = ONSFactory.createConsumer(properties);
            consumer.subscribe( "TopicTestONS", "*", new MessageListener() {// 消息队列名称,根据用户实际参数修改
                  public Action consume(Message message, ConsumeContext context) {
                       String msg_body=new String(message.getBody(),Charsets.UTF-8);
                       JSONObject messageobject=JSONObject.fromObject(msg_body);
                       String usernick=messageobject.getString("user_nick");
                       System.out.println( "usernick"+ usernick);
                       return Action.CommitMessage;
                  }
             });
            consumer.start();
        System.out.println( "Consumer Started");
       }
.NET代码:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Runtime.InteropServices;

using ons;

using std;

namespace ons {

// pushconsumer拉取到消息后,会主动调用该实例的consume函数

    public class MyMsgListener : MessageListener {

        public MyMsgListener(){}

        ~MyMsgListener(){}

        public override Action consume(ref Message value){

        // 形参value是返回的消息实例,可以根据业务逻辑提取message的各个字段

        Console.WriteLine("\nCallback topic: {0}, tag:{1}, key:{2}, msgId:{3},msgbody:{4}",value.getTopic(),value.getTag(),value.getKey(),value.getMsgID(),value.getBody());

        return ons.Action.CommitMessage;

        }

     }

class onscsharp{

    static void Main(string[] args){

        // pushconsumer创建和工作需要的参数,必须输入

        ONSFactoryProperty factoryInfo = new ONSFactoryProperty();

        factoryInfo.setFactoryProperty(factoryInfo.getConsumerIdName(), "CID_xxx");// ons控制台订阅管理中获取ConsumerID

        factoryInfo.setFactoryProperty(factoryInfo.getPublishTopicsName(), "xxxxx");

        factoryInfo.setFactoryProperty(factoryInfo.getAccessKeyName(),"xxx");// 应用appkey

        factoryInfo.setFactoryProperty(factoryInfo.getSecretKeyName(), "xxxx");// 应用密钥

        // create consumerONS

        ONSFactory onsfactory = new ONSFactory();

            PushConsumer pConsumer = onsfactory.getInstance().createPushConsumer(factoryInfo);

            // register msg listener and subscribe msg topic

            MessageListener msgListener = new MyMsgListener();

            pConsumer.subscribe(factoryInfo.getPublishTopics(), "*", ref msgListener);

            // start consumer

            pConsumer.start();

             // consumer启动后,会自动拉取消息,拉取到消息后,会自动调用mymsglistener实例的consume函数

            // 确定消费完成后,调用shutdown函数,在应用退出前,必须销毁consumer对象,否则会导致内存泄露等问题

            pConsumer.shutdown();

        }

    }

FAQ

关于此文档暂时还没有FAQ
返回
顶部