- C/C++ DEMO
C/C++ DEMO
功能说明:该接口要求提前在云片后台添加模板,提交短信时,系统会自动匹配审核通过的模板,匹配成功任意一个模板即可发送。系统已提供的默认模板添加签名后可以直接使用。
#include <stdio.h>#include <curl/curl.h>#include <stdarg.h>#include <stdlib.h>#include <string.h>#define MAXPARAM 2048CURL *curl;CURLcode res;/**bingone本样例依赖libcurl库下载地址 https://curl.haxx.se/download.html*/// 修改为您的apikey(https://www.yunpian.com)登录官网后获取char *apikey = "xxxxxxxxxxxxxxxx";// 修改为您要发送的手机号char *mobile = "xxxxxxxxxxxxxxxx";// 设置您要发送的内容char *text = "【云片网】您的验证码是1234";// 指定发送的模板idint tpl_id = 1;// 指定发送模板内容char *tpl_data[4] = {"#code#","1234","#company#","云片网"};// 发送语音验证码内容int code = 1234;// 获取user信息urlchar *url_get_user = "https://sms.yunpian.com/v2/user/get.json";// 智能模板发送短信urlchar *url_send_sms = "https://sms.yunpian.com/v2/sms/single_send.json";// 指定模板发送短信urlchar *url_tpl_sms = "https://sms.yunpian.com/v2/sms/tpl_single_send.json";// 发送语音验证码短信urlchar *url_send_voice = "https://voice.yunpian.com/v2/voice/send.json";void send_data(char *url,char *data){// specify the urlcurl_easy_setopt(curl, CURLOPT_URL, url);// specify the POST datacurl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);// get response datacurl_easy_perform(curl);printf("\n\n");}/*** 查账户信息*/void get_user(char *apikey){char params[MAXPARAM + 1];char *cp = params;sprintf(params,"apikey=%s", apikey);send_data(url_get_user, params);}/*** 使用智能匹配模板接口发短信*/void send_sms(char *apikey, char *mobile, char *text){char params[MAXPARAM + 1];char *cp = params;sprintf(params,"apikey=%s&mobile=%s&text=%s", apikey, mobile, text);send_data(url_send_sms, params);}/*** 指定模板单发*/void send_tpl_sms(char *apikey, char *mobile, int tpl_id, char *tpl_value){char params[MAXPARAM + 1];char *cp = params;sprintf(params, "apikey=%s&mobile=%s&tpl_id=%d&tpl_value=%s", apikey, mobile,tpl_id, tpl_value);send_data(url_tpl_sms, params);}/*** 发送语音验证码*/void send_voice(char *apikey, char *mobile, int code){char params[MAXPARAM + 1];char *cp = params;sprintf(params,"apikey=%s&mobile=%s&code=%d", apikey, mobile, code);send_data(url_send_voice, params);}int main(void){curl = curl_easy_init();mobile = curl_easy_escape(curl,mobile,strlen(mobile));if(NULL == curl) {perror("curl open fail\n");}// 获取用户信息get_user(apikey);// 发送短信send_sms(apikey,mobile,text);// 发送语音验证码send_voice(apikey,mobile,code);char *tmp;char *tpl_value = (char *)malloc(sizeof(char) * 500);bzero(tpl_value, sizeof(char)*500);// 模板短信发送需要编码两次,第一次URL编码转换int len = 0;tmp = curl_easy_escape(curl,tpl_data[0],strlen(tpl_data[0]));memcpy(tpl_value+len,tmp,strlen(tmp));len += strlen(tmp);tpl_value[len++] = '=';tmp = curl_easy_escape(curl,tpl_data[1],strlen(tpl_data[1]));memcpy(tpl_value+len,tmp,strlen(tmp));len += strlen(tmp);tpl_value[len++] = '&';tmp = curl_easy_escape(curl,tpl_data[2],strlen(tpl_data[2]));memcpy(tpl_value+len,tmp,strlen(tmp));len += strlen(tmp);tpl_value[len++] = '=';tmp = curl_easy_escape(curl,tpl_data[3],strlen(tpl_data[3]));memcpy(tpl_value+len,tmp,strlen(tmp));len += strlen(tmp);tmp=tpl_value;// 第二次URL编码tpl_value = curl_easy_escape(curl,tpl_value,strlen(tpl_value));send_tpl_sms(apikey,mobile,tpl_id,tpl_value);free(tmp);curl_easy_cleanup(curl);return 0;}
