Skip to content

Latest commit

 

History

History
81 lines (62 loc) · 3.12 KB

README.md

File metadata and controls

81 lines (62 loc) · 3.12 KB

qcloudsms_cpp

腾讯云短信的C++sdk实现版

基于asio和Simple-Web-Server实现的腾讯短信云的C++版本SDK,支持non-boost asio库

使用cmake编译工程时要引入asio和Simple-Web-Server,只需在CMakeLists.txt文件加入如下几行:

add_definitions(-DASIO_STANDALONE)

add_definitions(-DUSE_STANDALONE_ASIO)

include_directories(../deps/asio/include)

include_directories(../deps/Simple-Web-Server)

(假设deps目录是第三方库的存放目录)

使用例子如下:

#include "SmsSingleSender.hpp"
#include "SmsMultiSender.hpp"
#include <string>
#include <asio.hpp>

int main() {
    auto io_context = std::make_shared<asio::io_service>();

    int appid = [填自己的];
    std::string appkey = [填自己的];
    std::string nationcode("86");
    std::string phoneNumber([填自己的];);
    int type = 0;

    std::string msg0([填自己的];);
#if ( defined(WIN32) || defined(WIN64) )
        std::string msg = SmsSenderUtil::gbk2utf8(msg0);
#else
        std::string msg(std::move(msg0));
#endif
    SmsSingleSender sender(io_context, appid, appkey);
    sender.sendWithParam(nationcode, phoneNumber, 113462, { "654321","1" }, "", "", "",[](std::shared_ptr<SimpleWeb::Client<SimpleWeb::HTTPS>::Response> response, const SimpleWeb::error_code &ec) {
            if (!ec)
            {
                SmsSingleSenderResult result(response);
                std::cout << "result:" << result.getResult() << std::endl;
                std::cout << "errMsg:" << result.getErrMsg() << std::endl;
                std::cout << "ext:" << result.getExt() << std::endl;
                std::cout << "sid:" << result.getSid() << std::endl;
                std::cout << "fee:" << result.getFee() << std::endl;
            }
    });


    sender.send(type, nationcode, phoneNumber, msg, "", "", [](std::shared_ptr<SimpleWeb::Client<SimpleWeb::HTTPS>::Response> response, const SimpleWeb::error_code &ec) {
            if (!ec)
            {
                SmsSingleSenderResult result(response);
                std::cout << "result:" << result.getResult() << std::endl;
                std::cout << "errMsg:" << result.getErrMsg() << std::endl;
                std::cout << "ext:" << result.getExt() << std::endl;
                std::cout << "sid:" << result.getSid() << std::endl;
                std::cout << "fee:" << result.getFee() << std::endl;
            }
    });

    SmsMultiSender msender(io_context, appid, appkey);
    msender.sendWithParam(nationcode, { phoneNumber }, 113462, { "567894","10" }, "", "", "", [](std::shared_ptr<SimpleWeb::Client<SimpleWeb::HTTPS>::Response> response, const SimpleWeb::error_code &ec) {
            if (!ec)
            {
                SmsMultiSenderResult result(response);
                std::cout << "result:" << result.getResult() << std::endl;
                std::cout << "errMsg:" << result.getErrMsg() << std::endl;
                std::cout << "ext:" << result.getExt() << std::endl;
            }
    });
    io_context->run();
}