mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-02 19:30:48 +08:00
增加ucloud短信发送通道
This commit is contained in:
98
app/services/sms/ucloud_service.rb
Normal file
98
app/services/sms/ucloud_service.rb
Normal file
@@ -0,0 +1,98 @@
|
||||
class Sms::UcloudService < ApplicationService
|
||||
attr_reader :phone, :code
|
||||
|
||||
def initialize(phone, code)
|
||||
@phone = phone
|
||||
@code = code
|
||||
end
|
||||
|
||||
def call
|
||||
public_key = EduSetting.get("ucloud_public_key") || "4Z7QYDY0SumplMtmNmd9PERgPPFiMpR1R"
|
||||
private_key = EduSetting.get("ucloud_private_key") || "7wxMoGoaQ1DtcQjDxgJrOGOXnIiZq4amEWvmi7eBtm2d"
|
||||
|
||||
project_id = "org-3ozbh2"
|
||||
sign_params = {
|
||||
"Action" => "SendUSMSMessage",
|
||||
"ProjectId" => project_id,
|
||||
"TemplateId" => "UTA221114S2MGTY",
|
||||
"PublicKey" => public_key,
|
||||
"PhoneNumbers.0" => @phone,
|
||||
"TemplateParams.0" => "#{@code}",
|
||||
"SigContent" => "GitLink确实开源"
|
||||
}
|
||||
sequence = sign_params.sort.map { |k, v| "#{k}#{v}" }.join('')
|
||||
# Rails.logger.info("create_signature=========#{sequence}#{private_key}")
|
||||
req_params = sign_params.merge("Signature" => Digest::SHA1.hexdigest("#{sequence}#{private_key}"))
|
||||
uri = URI("https://api.ucloud.cn")
|
||||
uri.query = req_params.map { |k, v| "#{k}=#{URI.escape(v.to_s)}" }.join('&')
|
||||
# Rails.logger.info("uri.query=========#{uri.query}")
|
||||
|
||||
Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |http|
|
||||
req = Net::HTTP::Get.new uri.request_uri
|
||||
|
||||
response = http.request(req)
|
||||
# Rails.logger.info("ucloud sms response.body=========#{response.body}")
|
||||
result = ActiveSupport::JSON.decode(response.body)
|
||||
result['RetCode']
|
||||
end
|
||||
end
|
||||
|
||||
def send_by_params(opt={})
|
||||
public_key = "4Z7QYDY0SumplMtmNmd9PERgPPFiMpRR"
|
||||
private_key = "7wxMoGoaQ1DtcQjDxgJrOGOXnIiZq4amEWvmi7eBtmd"
|
||||
|
||||
project_id = "org-3ozbh2"
|
||||
sign_params = {
|
||||
"Action" => "SendUSMSMessage",
|
||||
"ProjectId" => project_id,
|
||||
"TemplateId" => "#{opt[:TemplateId]}",
|
||||
"PublicKey" => public_key,
|
||||
"PhoneNumbers.0" => "#{opt[:PhoneNumbers]}",
|
||||
"TemplateParams.0" => "#{opt[:TemplateParams]}",
|
||||
"SigContent" => "GitLink确实开源"
|
||||
}
|
||||
sequence = sign_params.sort.map { |k, v| "#{k}#{v}" }.join('')
|
||||
# Rails.logger.info("create_signature=========#{sequence}#{private_key}")
|
||||
req_params = sign_params.merge("Signature" => Digest::SHA1.hexdigest("#{sequence}#{private_key}"))
|
||||
uri = URI("https://api.ucloud.cn")
|
||||
uri.query = req_params.map { |k, v| "#{k}=#{URI.escape(v.to_s)}" }.join('&')
|
||||
# Rails.logger.info("uri.query=========#{uri.query}")
|
||||
|
||||
Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |http|
|
||||
req = Net::HTTP::Get.new uri.request_uri
|
||||
|
||||
response = http.request(req)
|
||||
# Rails.logger.info("ucloud sms response.body=========#{response.body}")
|
||||
ActiveSupport::JSON.decode(response.body)
|
||||
end
|
||||
end
|
||||
|
||||
def send_sms(template_id)
|
||||
|
||||
end
|
||||
|
||||
def GetProjectList
|
||||
public_key = "4Z7QYDY0SumplMtmNmd9PERgPPFiMpRR"
|
||||
private_key = "7wxMoGoaQ1DtcQjDxgJrOGOXnIiZq4amEWvmi7eBtmd"
|
||||
|
||||
sign_params = {
|
||||
"Action" => "GetProjectList",
|
||||
"PublicKey" => public_key
|
||||
}
|
||||
sequence = sign_params.sort.map { |k, v| "#{k}#{v}" }.join('')
|
||||
Rails.logger.info("create_signature=========#{sequence}#{private_key}")
|
||||
req_params = sign_params.merge("Signature" => Digest::SHA1.hexdigest("#{sequence}#{private_key}"))
|
||||
uri = URI("https://api.ucloud.cn")
|
||||
uri.query = req_params.map { |k, v| "#{k}=#{URI.escape(v.to_s)}" }.join('&')
|
||||
Rails.logger.info("uri.query=========#{uri.query}")
|
||||
|
||||
Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |http|
|
||||
req = Net::HTTP::Get.new uri.request_uri
|
||||
|
||||
response = http.request(req)
|
||||
Rails.logger.info("ucloud sms response.body=========#{response.body}")
|
||||
response.body
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user