This commit is contained in:
2025-10-13 18:34:48 +08:00
commit 37865d041f
116 changed files with 31168 additions and 0 deletions

46
common/dms.hpp Normal file
View File

@ -0,0 +1,46 @@
#pragma once
#include <cstdlib>
#include <iostream>
#include <memory>
#include <alibabacloud/core/AlibabaCloud.h>
#include <alibabacloud/core/CommonRequest.h>
#include <alibabacloud/core/CommonClient.h>
#include <alibabacloud/core/CommonResponse.h>
#include "logger.hpp"
namespace bite_im{
class DMSClient {
public:
using ptr = std::shared_ptr<DMSClient>;
DMSClient(const std::string &access_key_id,
const std::string &access_key_secret) {
AlibabaCloud::InitializeSdk();
AlibabaCloud::ClientConfiguration configuration( "cn-chengdu" );
configuration.setConnectTimeout(1500);
configuration.setReadTimeout(4000);
AlibabaCloud::Credentials credential(access_key_id, access_key_secret);
_client = std::make_unique<AlibabaCloud::CommonClient>(credential, configuration);
}
~DMSClient() { AlibabaCloud::ShutdownSdk(); }
bool send(const std::string &phone, const std::string &code) {
AlibabaCloud::CommonRequest request(AlibabaCloud::CommonRequest::RequestPattern::RpcPattern);
request.setHttpMethod(AlibabaCloud::HttpRequest::Method::Post);
request.setDomain("dysmsapi.aliyuncs.com");
request.setVersion("2017-05-25");
request.setQueryParameter("Action", "SendSms");
request.setQueryParameter("SignName", "bitejiuyeke");
request.setQueryParameter("TemplateCode", "SMS_465324787");
request.setQueryParameter("PhoneNumbers", phone);
std::string param_code = "{\"code\":\"" + code + "\"}";
request.setQueryParameter("TemplateParam", param_code);
auto response = _client->commonResponse(request);
if (!response.isSuccess()) {
LOG_ERROR("短信验证码请求失败:{}", response.error().errorMessage());
return false;
}
return true;
}
private:
std::unique_ptr<AlibabaCloud::CommonClient> _client;
};
}