开发指南

内存操作

sms_malloc

功能:

申请分配指定大小的内存空间。

原型:

void* SMS_API sms_malloc(int size);

参数:

int size: 输入参数,指定需要分配的内存大小。

返回值:

内存地址指针,返回NULL代表分配内存失败。

sms_free

功能:

释放由sms_malloc分配的内存空间。

原型:

void SMS_API sms_free(void* mem);

参数:

void* mem: 输入参数,需要释放的内存地址指针。

返回值:

鉴权配置

sms_config

功能:

配置短信SDK认证信息,包括百度智能云Access Key ID/Secret Access Key和百度智能云短信服务地址。

原型:

bool SMS_API sms_config(const char ak, const char sk, const char* host);

参数:

  • const char* ak: 输入参数,百度智能云Access Key ID,从管理控制台中获取。
  • const char* sk: 输入参数,百度智能云Secret Access Key,从管理控制台中获取。
  • const char* host: 输入参数,百度智能云短信服务地址,例如:sms.bj.baidubce.com。

返回值:

返回true,配置成功; false,配置失败。

注意:配置操作不保证AK、SK以及服务地址正确性,只有调用服务时,才会对AK/SK进行验证。

以下代码演示如何配置AK/SK:

const char* ak = "963d07ecfe484299b0107e07********";
    const char* sk = "4a9a8f4d7bbb4ebb8d15260c********";
    const char* host = "http://sms.bj.baidubce.com";

    sms_config(ak, sk, host);

日志

sms_log_get_level

功能:

获取sdk模块的日志级别。

原型:

SMS_LOG_LEVEL SMS_API sms_log_get_level();

参数:

返回值:

返回sdk模块当前的日志级别。

sms_log_set_level

功能:

设置sdk模块的日志级别。

原型:

SMS_LOG_LEVEL SMS_API sms_log_set_level(SMS_LOG_LEVEL new_level);

参数:

SMS_LOG_LEVEL new_level: 输入参数,指定新的日志级别

返回值:

返回旧的日志级别。

sms_log_set_callback

功能:

设置日志回调函数,sdk模块默认将日志输出到日志文件中,如果设置了回调函数后,日志通过回调将日志输出到函数中,不再记录到文件。

原型:

sms_log_callback_t SMS_API sms_log_set_callback(sms_log_callback_t callback);

参数:

sms_log_callback_t callback: 输入参数,指定新的日志回调函数。

返回值:

返回旧的日志回调函数。

错误信息

sms_get_last_error

功能:

获取最后一次失败的错误信息。

原型:

const char* SMS_API sms_get_last_error();

参数:

返回值:

返回错误信息,返回值为全局变量,在调用任何其它sdk接口后将失效;不需要关心返回值的内存释放问题。

发送短信


请使用sms_send_message_2发送短消息,不建议使用sms_send_message。

sms_send_message_request_2_alloc

功能:

分配一个短信发送请求对象。

原型:

sms_send_message_request_2_t SMS_API sms_send_message_request_2_alloc();

参数:

返回值:

返回短信发送请求对象,如果返回NULL,代表分配失败。

sms_send_message_request_2_free

功能:

释放一个短信发送请求对象。

原型:

void SMS_API sms_send_message_request_2_free(sms_send_message_request_2_t request);

参数:

sms_send_message_request_2_t request: 输入参数,表示需要释放的短信发送请求对象。

返回值:

sms_send_message_request_2_set_invokeid

功能:

设置短信放送请求对象的签名id

原型:

void SMS_API sms_send_message_request_2_set_invokeid(sms_send_message_request_2_t request, const char* invokeid);

参数:

  • sms_send_message_request_2_t request: 输入参数,表示需要设置签名id的短信发送请求对象。
  • const char* invokeid: 输入参数,代表签名id。

返回值:

sms_send_message_request_2_get_invokeid

功能:

获取短信发送请求对象的签名id。

原型:

const char* SMS_API sms_send_message_request_2_get_invokeid(const sms_send_message_request_2_t request);

参数:

const sms_send_message_request_2_t request:输入参数,表示获取此短信发送请求对象的签名id。

返回值:

返回短信发送请求对象的签名id,如果请求对象没有设置签名,返回空字符串。

sms_send_message_request_2_set_template

功能:

设置短信发送请求对象的模板。

原型:

void SMS_API sms_send_message_request_2_set_template(sms_send_message_request_2_t request, const char* template_id);

参数:

  • sms_send_message_request_2_t request: 输入参数,表示需要设置模板的短信发送请求对象。
  • const char* template_id: 输入参数,代表短信模板ID。

返回值:

sms_send_message_request_2_get_template

功能:

获取短信发送请求对象的模板。

原型:

const char* SMS_API sms_send_message_request_2_get_template(const sms_send_message_request_2_t request);

参数:

const sms_send_message_request_2_t request:输入参数,表示获取此短信发送请求对象的模板。

返回值:

返回短信发送请求对象的模板ID,如果请求对象没有设置模板,返回空字符串。

sms_send_message_request_2_set_phone_number

功能:

设置短信发送请求对象的接收号码。

原型:

void SMS_API sms_send_message_request_2_set_phone_number(sms_send_message_request_2_t request, const char* phone);

参数:

  • sms_send_message_request_2_t request: 输入参数,表示需要设置接收号码的短信发送请求对象。
  • const char* phone: 输入参数,代表接收号码。

返回值:

sms_send_message_request_2_get_phone_number

功能:

获取短信发送请求对象的接收号码。

原型:

const char* SMS_API sms_send_message_request_2_get_phone_number(const sms_send_message_request_2_t request);

参数:

const sms_send_message_request_2_t request:输入参数,表示获取此短信发送请求对象的接收号码。

返回值:

返回短信发送请求对象的接收号码,如果请求对象没有设置接收号码,返回空字符串。

sms_send_message_request_2_set_content_var

功能:

设置短信发送请求对象中内容变量字符串。

原型:

bool SMS_API sms_send_message_request_2_set_content_var(sms_send_message_request_2_t request, const char* content);

参数:

  • sms_send_message_request_2_t request:输入参数,表示需要设置变量的短信发送请求对象。
  • const char* content:输入参数,短信内容变量,用于替换短信模板中定义的变量,采用json字符串格式传递。形如:{"key1" : "val1", "key2" : "val2"}。

返回值:

返回true,表示设置成功;false,表示设置失败。调用sms_get_last_error可以获取错误信息。

sms_send_message_request_2_get_content_var

功能:

获取短信发送请求对象的内容变量字符串。

原型:

const char* SMS_API sms_send_message_request_2_get_content_var(const sms_send_message_request_2_t request);

参数:

const sms_send_message_request_2_t request:输入参数,表示从该短信发送请求对象中获取变量字符串。

返回值:

返回对象中的内容变量字符串,如果没有设置,返回空字符串。

sms_send_message_2

功能:

发送短信。

原型:

sms_send_message_response_2_t SMS_API sms_send_message_2(sms_send_message_request_2_t request);

参数:

sms_send_message_request_2_t request:输入参数,短信发送请求对象,发送前需要设置签名id,模板,内容变量字符串,接收手机号码等。

返回值:

返回短信发送响应对象,里面包含了发送状态信息。

 sms_send_message_response_2_get_message_id

功能:

从短信发送响应对象中获取消息ID。

原型:

const char* SMS_API sms_send_message_response_2_get_message_id(const sms_send_message_response_2_t response);

参数:

const sms_send_message_response_2_t response:输入参数,指定短信发送响应对象。

返回值:

返回响应对象中的消息ID。

sms_send_message_response_2_get_code

功能:

从短信发送响应对象中获取调用API的状态码。

原型:

const char* SMS_API sms_send_message_response_2_get_code(const sms_send_message_response_2_t response);

参数:

const sms_send_message_response_2_t response:输入参数,指定短信发送响应对象。

返回值:

返回响应对象中的状态码。

sms_send_message_response_2_get_message

功能:

从短信发送响应对象中获取调用API的状态描述。

原型:

const char* SMS_API sms_send_message_response_2_get_message(const sms_send_message_response_2_t response);

参数:

const sms_send_message_response_2_t response:输入参数,指定短信发送响应对象。

返回值:

返回响应对象中的状态描述。

sms_send_message_response_2_free

功能:

释放短信发送响应对象

原型:

void SMS_API sms_send_message_response_2_free(sms_send_message_response_2_t response);

参数:

sms_send_message_response_2_t request:输入参数,指定需要释放的短信发送响应对象。

返回值:

sms_send_message_request_alloc

功能:

分配一个短信发送请求对象。

原型:

sms_send_message_request_t SMS_API sms_send_message_request_alloc();

参数:

返回值:

返回短信发送请求对象,如果返回NULL,代表分配失败。

sms_send_message_request_free

功能:

释放一个短信发送请求对象。

原型:

void SMS_API sms_send_message_request_free(sms_send_message_request_t request);

参数:

sms_send_message_request_t request: 输入参数,表示需要释放的短信发送请求对象。

返回值:

sms_send_message_request_set_template

功能:

设置短信发送请求对象的模板。

原型:

void SMS_API sms_send_message_request_set_template(sms_send_message_request_t request, const char* template_id);

参数:

  • sms_send_message_request_t request: 输入参数,表示需要设置模板的短信发送请求对象。
  • const char* template_id: 输入参数,代表短信模板ID。

返回值:

sms_send_message_request_get_template

功能:

获取短信发送请求对象的模板。

原型:

const char* SMS_API sms_send_message_request_get_template(const sms_send_message_request_t request);

参数:

const sms_send_message_request_t request:输入参数,表示获取此短信发送请求对象的模板。

返回值:

返回短信发送请求对象的模板ID,如果请求对象没有设置模板,返回空字符串。

sms_send_message_request_add_receiver

功能:

向短信发送请求对象中添加接收手机号码。

原型:

bool SMS_API sms_send_message_request_add_receiver(sms_send_message_request_t request, const char* phone);

参数:

- sms_send_message_request_t request:输入参数,表示向此短信发送请求对象添加接收手机号码。
- const char* phone:输入参数,需要添加的手机号码。

返回值:

返回true,表示添加成功;false,表示添加失败。调用sms_get_last_error可以获取错误信息。

sms_send_message_request_remove_receiver

功能:

从短信发送请求对象中删除接收手机号码。

原型:

bool SMS_API sms_send_message_request_remove_receiver(sms_send_message_request_t request, const char* phone);

参数:

- sms_send_message_request_t request:输入参数,表示从此短信发送请求对象中删除接收手机号码。
- const char* phone:输入参数,需要删除的手机号码。

返回值:

返回true,表示删除成功;false,表示删除失败。调用sms_get_last_error可以获取错误信息。

sms_send_message_request_get_receiver_count

功能:

获取短信发送请求对象中接收手机号码数量。

原型:

const int SMS_API sms_send_message_request_get_receiver_count(const sms_send_message_request_t request);

参数:

const sms_send_message_request_t request:输入参数,表示获取此短信发送请求对象的手机号码数量。

返回值:

返回短信发送请求对象中接收手机号码数量。

sms_send_message_request_get_receiver

功能:

通过索引值获取短信发送请求对象中的接收手机号码。

原型:

const char* SMS_API sms_send_message_request_get_receiver(const sms_send_message_request_t request, const int index);

参数:

  • const sms_send_message_request_t request:输入参数,表示获取此短信发送请求对象的手机号码。
  • const int index:输入参数,表示手机号码的索引值。

返回值:

返回index指定的手机号码,返回NULL表示失败,调用sms_get_last_error可以获取错误信息。

sms_send_message_request_set_content_var

功能:

设置短信发送请求对象中内容变量字符串。

原型:

bool SMS_API sms_send_message_request_set_content_var(sms_send_message_request_t request, const char* content);

参数:

- sms_send_message_request_t request:输入参数,表示需要设置变量的短信发送请求对象。
- const char* content:输入参数,短信内容变量,用于替换短信模板中定义的变量,采用json字符串格式传递。形如:{"key1" : "val1", "key2" : "val2"}。

返回值:

返回true,表示设置成功;false,表示设置失败。调用sms_get_last_error可以获取错误信息。

sms_send_message_request_get_content_var

功能:

获取短信发送请求对象的内容变量字符串。

原型:

const char* SMS_API sms_send_message_request_get_content_var(const sms_send_message_request_t request);

参数:

const sms_send_message_request_t request:输入参数,表示从该短信发送请求对象中获取变量字符串。

返回值:

返回对象中的内容变量字符串。

sms_send_message

功能:

发送短信。

原型:

sms_send_message_response_t SMS_API sms_send_message(sms_send_message_request_t request);

参数:

sms_send_message_request_t request:输入参数,短信发送请求对象,发送前需要设置模板,内容变量字符串,接收手机号码等。

返回值:

返回短信发送响应对象,里面包含了发送状态信息。

sms_send_message_response_get_message_id

功能:

从短信发送响应对象中获取消息ID。

原型:

const char* SMS_API sms_send_message_response_get_message_id(const sms_send_message_response_t response);

参数:

const sms_send_message_response_t response:输入参数,指定短信发送响应对象。

返回值:

返回响应对象中的消息ID。

sms_send_message_response_get_send_count

功能:

从短信发送响应对象中获取接收者数量。

原型:

const int SMS_API sms_send_message_response_get_send_count(const sms_send_message_response_t response);

参数:

const sms_send_message_response_t response:输入参数,指定短信发送响应对象。

返回值:

返回短信发送响应对象中接收者的数量。

sms_send_message_response_get_success_count

功能:

从短信发送响应对象中获取成功发送短信的数量。

原型:

const int SMS_API sms_send_message_response_get_success_count(const sms_send_message_response_t response);

参数:

const sms_send_message_response_t response:输入参数,指定短信发送响应对象。

返回值:

返回短信发送响应对象中成功发送短信的数量。

sms_send_message_response_get_failed_count

功能:

从短信发送响应对象中获取发送失败的数量。

原型:

const int SMS_API sms_send_message_response_get_failed_count(const sms_send_message_response_t response);

参数:

const sms_send_message_response_t response:输入参数,指定短信发送响应对象。

返回值:

返回短信发送响应对象中发送失败的数量。

sms_send_message_response_get_failed_receiver

功能:

通过索引值从短信发送响应对象中获取发送失败的手机号码。

原型:

const char* SMS_API sms_send_message_response_get_failed_receiver(const sms_send_message_response_t response, const int index);

参数:

  • const sms_send_message_response_t response:输入参数,指定短信发送响应对象。
  • const int index:输入参数,需求获取的发送失败者的索引值。

返回值:

返回index指定的发送失败的手机号码。

sms_send_message_response_free

功能:

释放短信发送响应对象

原型:

void SMS_API sms_send_message_response_free(sms_send_message_response_t request);

参数:

sms_send_message_response_t request:输入参数,指定需要释放的短信发送响应对象。

返回值:

以下代码演示如何使用SDK发送短消息:

sms_send_message_request_2_t request;
    sms_send_message_response_2_t resp;

    request = sms_send_message_request_2_alloc();

    if (!request) {
        printf("allocate request object failed: %s\r\n", sms_get_last_error());
        return;
    }

    sms_send_message_request_2_set_invokeid(request, "dkwL6mUT-7JNv-H5Z3");
    sms_send_message_request_2_set_phone_number(request, "13800000000");
    sms_send_message_request_2_set_template(request, "smsTpl:6c96f891-e42a-4fc3-b615-a56b21d6d464");    
    sms_send_message_request_2_set_content_var(request, "{\"KEY\": \"123\"}");

    resp = sms_send_message_2(request);

    if (!resp) {
        sms_send_message_request_2_free(request);
        printf("send message failed: %s\r\n", sms_get_last_error());
        return;
    }

    printf("msgid: %s\r\n", sms_send_message_response_2_get_message_id(resp));

    sms_send_message_request_2_free(request);
    sms_send_message_response_2_free(resp);

查询短信

sms_send_message_result

功能:

通过消息ID查询消息发送情况。

原型:

sms_send_message_result_t SMS_API sms_send_message_result(const char* message_id);

参数:

const char* message_id:输入参数,指定需要查询消息的消息ID。

返回值:

返回message_id对就的消息对象。如果返回NULL,表示查询失败。调用sms_get_last_error可以获取错误信息。

sms_send_message_result_get_message_id

功能:

从消息对象中获取消息ID。

原型:

const char* SMS_API sms_send_message_result_get_message_id(const sms_send_message_result_t result);

参数:

const sms_send_message_result_t result:输入参数,表示获取此消息对象的消息ID。

返回值:

返回消息对象的消息ID。

sms_send_message_result_get_content

功能:

从消息对象中获取消息内容。

原型:

const char* SMS_API sms_send_message_result_get_content(const sms_send_message_result_t result);

参数:

const sms_send_message_result_t result:输入参数,表示获取此消息对象的消息内容。

返回值:

返回消息对象的消息内容。

sms_send_message_result_get_receiver_count

功能:

获取消息对象中消息接收者数量。

原型:

const int SMS_API sms_send_message_result_get_receiver_count(const sms_send_message_result_t result);

参数:

const sms_send_message_result_t result:输入参数,表示获取此消息对象的接收者数量。

返回值:

返回消息对象中消息接收者的数量。

sms_send_message_result_get_receiver

功能:

通过索引值获取消息对象中消息接收者手机号码。

原型:

const char* SMS_API sms_send_message_result_get_receiver(const sms_send_message_result_t result, const int index);

参数:

  • const sms_send_message_result_t result:输入参数,表示获取此消息对象的接收者手机号码。
  • const int index:输入参数,指定接收者的索引值

返回值:

返回index指定的接收者手机号码。

sms_send_message_result_get_send_time

功能:

获取消息对象中消息发送时间。

原型:

const char* SMS_API sms_send_message_result_get_send_time(const sms_send_message_result_t result);

参数:

const sms_send_message_result_t result:输入参数,表示获取此消息对象中的消息发送时间。

返回值:

返回消息发送的时间字符串。

sms_send_message_result_free

功能:

释放消息对象。

原型:

void SMS_API sms_send_message_result_free(sms_send_message_result_t result);

参数:

sms_send_message_result_t result:输入参数,需要释放的消息对象。

返回值:

以下代码演示如何作用SDK查询短消息状态:

sms_send_message_result_t result;
    int receiver_count;
    int i;
    char* msgid;

    msgid= "380d97b6-016a-4e23-aa6b-8d059eb5e9f3";
    result = sms_send_message_result(msgid);

    if (!result) {
        printf("query message failed: %s\r\n", sms_get_last_error());
        return;
    }

    printf("msg detail:\r\n\tid: %s,\r\n\tcontent:%s, "
           "\r\n\treceiver count:%d ,\r\b\n\tsendtime: %s\r\n",
           sms_send_message_result_get_message_id(result),
           sms_send_message_result_get_content(result),
           receiver_count = sms_send_message_result_get_receiver_count(result),
           sms_send_message_result_get_send_time(result));

    for (i = 0; i < receiver_count; i ++) {
        printf("\treceiver %d: %s\r\n", i, sms_send_message_result_get_receiver(result, i));
    }

    sms_send_message_result_free(result);

创建短信模板

sms_create_template_request_alloc

功能:

申请分配一个模板创建请求对象。

原型:

sms_create_template_request_t SMS_API sms_create_template_request_alloc();

参数:

返回值:

返回模板创建请求对象。如果返回NULL,表示分配失败。

sms_create_template_request_free

功能:

释放模板创建请求对象,请求对象使用后,必须释放,否则造成内存泄露。

原型:

void SMS_API sms_create_template_request_free(sms_create_template_request_t request);

参数:

sms_create_template_request_t request:输入参数,需要释放的模板创建请求对象。

返回值:

sms_create_template_request_set_name

功能:

设置模板创建请求对象中模板的名称。

原型:

void SMS_API sms_create_template_request_set_name(sms_create_template_request_t request, const char* name);

参数:

- sms_create_template_request_t request:输入参数,需要设置模板名称的模板创建请求对象。
- const char* name:输入参数,新的模板名称,长度限定在32字符以内,不可重复。

返回值:

sms_create_template_request_get_name

功能:

获取模板创建请求对象中模板名称。

原型:

const char* SMS_API sms_create_template_request_get_name(const sms_create_template_request_t request);

参数:

const sms_create_template_request_t request:输入参数,指定模板创建请求对象。

返回值:

返回对象中模板的名称。

sms_create_template_request_set_content

功能:

设置模板创建请求对象的模板内容。

原型:

void SMS_API sms_create_template_request_set_content(sms_create_template_request_t request, const char* content);

参数:

- sms_create_template_request_t request:输入参数,需要设置模板内容的模板创建请求对象。
- const char* content:输入参数,短信模板内容,长度限定在70字符以内,变量采用如下格式描述:${KEY}。其中KEY是变量名称,可以根据需要自行设定,要简短。

返回值:

sms_create_template_request_get_content

功能:

获取模板创建请求对象中模板内容。

原型:

const char* SMS_API sms_create_template_request_get_content(const sms_create_template_request_t request);

参数:

const sms_create_template_request_t request:输入参数,指定模板创建请求对象。

返回值:

返回对象中模板内容。

sms_create_template_request_set_invokeid

功能:

设置模板创建请求对象的签名id。

原型:

void SMS_API sms_create_template_request_set_invokeid(sms_create_template_request_t request, const char* invokeid);

参数:

- sms_create_template_request_t request:输入参数,需要设置签名id的模板创建请求对象。
- const char* invokeid:输入参数,签名id

返回值:

sms_create_template_request_get_invokeid

功能:

获取模板创建请求对象中签名id。

原型:
const char* SMS_API sms_create_template_request_get_invokeid(const sms_create_template_request_t request);

参数:

const sms_create_template_request_t request:输入参数,指定模板创建请求对象。

返回值:

返回对象中签名id。

sms_create_template_request_set_profileid

功能:

设置模板创建请求对象的签名场景id,如果签名下只有一个场景,可以不设置。

原型:

void SMS_API sms_create_template_request_set_profileid(sms_create_template_request_t request, const char* profileid);

参数:

- sms_create_template_request_t request:输入参数,需要设置签名场景id的模板创建请求对象。
- const char* profileid:输入参数,签名场景id

返回值:

sms_create_template_request_get_profileid

功能:

获取模板创建请求对象中签名场景id。

原型:

const char* SMS_API sms_create_template_request_get_profileid(const sms_create_template_request_t request);

参数:

const sms_create_template_request_t request:输入参数,指定模板创建请求对象。

返回值:

返回对象中签名场景id。

sms_create_template

功能:

创建模板。

原型:

sms_create_template_response_t SMS_API sms_create_template(sms_create_template_request_t request);

参数:

sms_create_template_request_t request:输入参数,模板创建请求对象,需要先设置好名称,内容等。

返回值:

返回模板创建响应对象,包含创建结果信息。如果返回NULL,表示创建失败。

sms_create_template_response_get_template_id

功能:

获取模板创建响应对象中的模板ID。

原型:

const char* SMS_API sms_create_template_response_get_template_id(const sms_create_template_response_t response);

参数:

const sms_create_template_response_t response:输入参数,模板创建响应对象。

返回值:

返回对象中模板ID。

sms_create_template_response_get_request_id

功能:

获取模板创建响应对象中调用API的请求id。

原型:

const char* SMS_API sms_create_template_response_get_request_id(const sms_create_template_response_t response);

参数:

const sms_create_template_response_t response:输入参数,模板创建响应对象。

返回值:

返回对象中调用API的请求id。

sms_create_template_response_get_code

功能:

获取模板创建响应对象中调用API的状态码。

原型:

const char* SMS_API sms_create_template_response_get_code(const sms_create_template_response_t response);

参数:

const sms_create_template_response_t response:输入参数,模板创建响应对象。

返回值:

返回对象中调用API的状态码。

sms_create_template_response_get_message

功能:

获取模板创建响应对象中调用API的状态描述。

原型:

const char* SMS_API sms_create_template_response_get_message(const sms_create_template_response_t response);

参数:

const sms_create_template_response_t response:输入参数,模板创建响应对象。

返回值:

返回对象中调用API的状态描述。

sms_create_template_response_free

功能:

释放模板创建响应对象,创建模板成功后,必须调用此函数释放响应对象,否则会内存泄露。

原型:

void SMS_API sms_create_template_response_free(sms_create_template_response_t response);

参数:

sms_create_template_response_t response:输入参数,由sms_create_template返回的响应对象。

返回值:

以下代码演示如何使用SDK创建短消息模板:

sms_create_template_request_t request;
    sms_create_template_response_t response;

    request = sms_create_template_request_alloc();

    if (!request) {
        printf("allocate request object failed: %s\r\n", sms_get_last_error());
        return;
    }

    sms_create_template_request_set_invokeid(request, "dkwL6mUT-7JNv-H5Z3");
    sms_create_template_request_set_profileid(request, "dkwL6mUT-7JNv-H5Z3-g9vI");
    sms_create_template_request_set_name(request, "smstest");
    sms_create_template_request_set_content(request, "This is your code: ${CODE}");

    response = sms_create_template(request);
    sms_create_template_request_free(request);

    if (!response) {
        printf("create template failed: %s\r\n", sms_get_last_error());
        return ;
    }

    printf("template id: %s\r\n", sms_create_template_response_get_template_id(response));

    sms_create_template_response_free(response);

删除短信模板

sms_delete_template

功能:

通过模板ID删除短信模板。

原型:

bool SMS_API sms_delete_template(const char* template_id);

参数:

const char* template_id:输入参数,需要删除的模板ID。

返回值:

返回true,表示删除成功,false表示删除失败,调用sms_get_last_error获取错误信息。

以下代码演示如何使用SDK删除指定的模板:

const char* temp_id = "smsTpl:aef9c28e-336e-4685-afc3-21308c718568";
    if (sms_delete_template(temp_id)) {
        printf("delete template succeeded.\n");    
    } else {
        printf("delete template failed: %s.\n", sms_get_last_error());   
    }

查询短信模板

sms_get_template

功能:

通过模板ID查询模板对象。

原型:

sms_template_t SMS_API sms_get_template(const char* template_id);

参数:

const char* template_id:输入参数,需要查询的模板ID。

返回值:

返回模板ID对应的模板对象。如果返回NULL,表示查询失败,调用sms_get_last_error获取错误信息。

sms_template_get_template_id

功能:

获取模板对象中的模板ID。

原型:

const char* SMS_API sms_template_get_template_id(const sms_template_t temp);

参数:

const sms_template_t temp:输入参数,指定模板对象。

返回值:

返回对象的模板ID。

sms_template_get_name

功能:

获取模板对象中的模板名称。

原型:

const char* SMS_API sms_template_get_name(const sms_template_t temp);

参数:

const sms_template_t temp:输入参数,指定模板对象。

返回值:

返回对象中的模板名称。

sms_template_get_content

功能:

获取模板对象中的模板内容。

原型:

const char* SMS_API sms_template_get_content(const sms_template_t temp);

参数:

const sms_template_t temp:输入参数,指定模板对象。

返回值:

返回对象中的模板内容。

sms_template_get_status

功能:

获取模板对象中的模板状态。

原型:

const char* SMS_API sms_template_get_staus(const sms_template_t temp);

参数:

const sms_template_t temp:输入参数,指定模板对象。

返回值:

短信模板状态,可选值包括:processing(审核中)、valid(审核成功)、unvalid(审核失败)。

sms_template_get_create_time

功能:

获取模板对象中模板的创建时间

原型:

const char* SMS_API sms_template_get_create_time(const sms_template_t temp);

参数:

const sms_template_t temp:输入参数,指定模板对象。

返回值:

返回对象中模板创建时间字符串,形如:2014-06-12T10:08:22Z。

sms_template_get_update_time

功能:

获取模板对象中模板的最后更新时间。

原型:

const char* SMS_API sms_template_get_update_time(const sms_template_t temp);

参数:

const sms_template_t temp:输入参数,指定模板对象。

返回值:

返回对象中模板更新时间字符串,形如:2014-06-12T10:08:22Z。

sms_template_free

功能:

释放模板对象。通过sms_get_template获取到的模板对象,必须调用此函数释放,否则会内存泄露。

原型:

void SMS_API sms_template_free(sms_template_t temp);

参数:

const sms_template_t temp:输入参数,指定需要释放的模板对象。

返回值:

以下代码演示如何使用SDK查询指定模板:

const char* temp_id = "smsTpl:aef9c28e-336e-4685-afc3-21308c718568";

    sms_template_t temp = sms_get_template(temp_id);

    if (temp) {
        printf("id:%s, \r\n\tname:%s, \r\n\tcontent:%s, \r\n\tstatus: %s, "
               "\r\n\tcreate time:%s, \r\n\tupdate time:%s\r\n\r\n",
               sms_template_get_template_id(temp),
               sms_template_get_name(temp),
               sms_template_get_content(temp),
               sms_template_get_status(temp),
               sms_template_get_create_time(temp),
               sms_template_get_update_time(temp));
        sms_template_free(temp);
    } else {
        printf("get template failed: %s\r\n", sms_get_last_error());
    }

查询模板列表

sms_get_template_list

功能:

查询短信模板列表对象,包含系统中所有短信模板。

原型:

sms_template_list_t SMS_API sms_get_template_list();

参数:

返回值:

返回模板列表对象,必须调用sms_template_list_free释放。如果返回NULL,表示查询失败,调用sms_get_last_error获取错误信息。

sms_template_list_get_count

功能:

获取模板列表对象中模板数量。

原型:

int SMS_API sms_template_list_get_count(const sms_template_list_t list);

参数:

const sms_template_list_t list:输入参数,需要查询的模板列表对象。

返回值:

返回模板列表对象中模板数量。

sms_template_list_get_template

功能:

通过索引值获取模板列表对象中的模板对象。

原型:

const sms_template_t SMS_API sms_template_list_get_template(const sms_template_list_t list, const int index);

参数:

  • const sms_template_list_t list:输入参数,指定模板列表对象。
  • const int index:输入参数,模板列表对象中模板对象的索引值。

返回值:

返回index指定的模板对象,如果返回NULL表示获取失败,调用sms_get_last_error获取错误信息。

sms_template_list_free

功能:

释放模板列表对象。

原型:

void SMS_API sms_template_list_free(sms_template_list_t list);

参数:

sms_template_list_t list:输入参数,需要释放的模板列表对象。

返回值:

以下代码演示如何使用SDK查询模板列表:

int ntemp;
    int i;
    sms_template_list_t tlist= sms_get_template_list();

    if (tlist) {
        ntemp = sms_template_list_get_count(tlist);

        for (i = 0; i < ntemp; i ++) {
            const sms_template_t temp = sms_template_list_get_template(tlist, i);

            printf("%d,\r\n\tid:%s, \r\n\tname:%s, \r\n\tcontent:%s, \r\n\tstatus: %s, "
                "\r\n\tcreate time:%s, \r\n\tupdate time:%s\r\n\r\n", 
                i, 
                sms_template_get_template_id(temp),
                sms_template_get_name(temp),
                sms_template_get_content(temp),
                sms_template_get_status(temp),
                sms_template_get_create_time(temp),
                sms_template_get_update_time(temp));
        }

        sms_template_list_free(tlist);
    } else {
        printf("list templates failed: %s\r\n", sms_get_last_error());
    }

查询系统配额

sms_get_quota

功能:

查询系统配额信息

原型:

sms_quota_t SMS_API sms_get_quota();

参数:

返回值:

返回系统配额对象,使用完毕必须调用sms_quota_free释放。

sms_quota_get_max_send_per_day

功能:

获取用户在单日内发送短信数目上限,按自然日计时。

原型:

const int SMS_API sms_quota_get_max_send_per_day(const sms_quota_t quota);

参数:

const sms_quota_t quota:输入参数,指定配额对象。

返回值:

返回单日内发送短信数目上限。

sms_quota_get_max_receive_per_phone_number_day

功能:

获取单终端用户在单日内允许接收的最大短信数,按自然日计时。

原型:

const int SMS_API sms_quota_get_max_receive_per_phone_number_day(const sms_quota_t quota);

参数:

const sms_quota_t quota:输入参数,指定配额对象。

返回值:

返回单终端用户在单日内允许接收的最大短信数。

sms_quota_get_sent_today

功能:

获取用户在最近当天内已发送的短信数目,按自然日计时。

原型:

const int SMS_API sms_quota_get_sent_today(const sms_quota_t quota);

参数:

const sms_quota_t quota:输入参数,指定配额对象。

返回值:

返回用户在最近当天内已发送的短信数目。

sms_quota_free

功能:

释放配额对象

原型:

void SMS_API sms_quota_free(sms_quota_t quota);

参数:

const sms_quota_t quota:输入参数,需要释放的配额对象。

返回值:

收下代码演示如何使用SDK查询系统配额:

sms_quota_t quota = sms_get_quota();

    if (quota) {
        printf("quota detail: \r\n\tmax_send_per_day:%d\r\n\t"
            "max_receive_per_phone_number_day:%d\r\n\tsent_today:%d\r\n\r\n",
            sms_quota_get_max_send_per_day(quota),
            sms_quota_get_max_receive_per_phone_number_day(quota),
            sms_quota_get_sent_today(quota));

        sms_quota_free(quota);
    } else {
        printf("query quota failed: %s\r\n", sms_get_last_error());
    }

查询号码配额

sms_phone_stat

功能:

查询单终端用户接收的短信信息。使用完毕必须调用sms_phone_stat_free释放。

原型:

sms_phone_stat_t SMS_API sms_phone_stat(const char* phone);

参数:

const char* phone:输入参数,指定需要查询的手机号码。

返回值:

返回手机号码对应的配额对象。

sms_phone_stat_get_max_receive_per_phone_number_day

功能:

获取单号码在单日内允许接收的最大短信数,按自然日计时。

原型:

const int SMS_API sms_phone_stat_get_max_receive_per_phone_number_day(const sms_phone_stat_t stat);

参数:

const sms_phone_stat_t stat:输入参数,单号码配额对象。

返回值:

返回单号码在单日内允许接收的最大短信数。

sms_phone_stat_get_received_today

功能:

获取单号码今日已经接收的短信数量。

原型:

const int SMS_API sms_phone_stat_get_received_today(const sms_phone_stat_t stat);

参数:

const sms_phone_stat_t stat:输入参数,单号码配额对象。

返回值:

返回单号码今日已经接收的短信数量。

sms_phone_stat_free

功能:

释放单号码配额对象。

原型:

void SMS_API sms_phone_stat_free(sms_phone_stat_t stat);

参数:

sms_phone_stat_t stat:输入参数,需要释放的配额对象。

返回值:

以下代码演示如何使用SDK查询单终端用户接收的短信信息:

const char* phone= "13800000000";
    sms_phone_stat_t stat = sms_phone_stat(phone);

    if (stat) {
        printf("phone stat detail:\r\n\tmax_receive_per_phone_number_day: %d,\r\n\t"
            "received_today:%d\r\n\r\n",
            sms_phone_stat_get_max_receive_per_phone_number_day(stat),
            sms_phone_stat_get_received_today(stat));

            sms_phone_stat_free(stat);
    } else {
        printf("query phone status failed: %s\r\n", sms_get_last_error());
    }