Odoo發送短信


轉載請注明原文地址:https://www.cnblogs.com/ygj0930/p/10825951.html

 

一:阿里雲短信服務注冊

1:開通短信業務:實名認證的個人用戶是免費開通;企業用戶需要提供三證(營業執照、組織機構代碼證、稅務登記證)

 

2:創建用戶,生成AccessKey,記得下載並保存起來。只有在創建的時候可以下載!

 

3:為用戶授權

 

4:創建簽名和短信模版,一般兩小時內就可以審核通過

 

二:SDK下載

下載地址:https://help.aliyun.com/document_detail/55359.html

 

三:要用到的文件

1)api_sdk/aliyun-python-sdk-core/aliyunsdkcore

2)api_sdk/aliyun-python-sdk-dysmsapi/aliyunsdkdysmsapi

把aliyunsdkcore和aliyunsdkdysmsapi拷貝到項目中,然后在同級目錄下,新建 aliyun_sms.py文件,在里面定義短信發送和短信查詢的方法:

# -*- coding: utf-8 -*-
import sys
from aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest
from aliyunsdkdysmsapi.request.v20170525 import QuerySendDetailsRequest
from aliyunsdkcore.client import AcsClient
import uuid
import json
"""
短信業務調用接口
"""

reload(sys)
sys.setdefaultencoding('utf8')

#不要更改
REGION = "cn-hangzhou"

# ACCESS_KEY_ID/ACCESS_KEY_SECRET 根據實際申請的賬號信息進行替換
ACCESS_KEY_ID = "你創建的RAM用戶的ACCESS_KEY_ID"
ACCESS_KEY_SECRET = "你創建的RAM用戶的ACCESS_KEY_SECRET"

acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION)


class AliSMS(object):
    #發送短信
    def send_sms(self, business_id, phone_numbers, sign_name, template_code, template_param=None):
        smsRequest = SendSmsRequest.SendSmsRequest()
        #1:設置短信模板編碼
        smsRequest.set_TemplateCode(template_code)

        #2:傳遞短信模板變量參數 {"code":"值"}
        if template_param is not None:
            smsRequest.set_TemplateParam(template_param)

        #3:設置業務請求流水號,必填。
        smsRequest.set_OutId(business_id)

        #4:設置短信簽名
        smsRequest.set_SignName(sign_name);

        #5:設置短信發送的號碼列表(一個就是單發,數組就是群發)
        smsRequest.set_PhoneNumbers(phone_numbers)

        #6:調用短信發送接口,獲得返回json響應數據
        smsResponse = json.loads(acs_client.do_action_with_exception(smsRequest))

        return smsResponse

    #查詢短信
    def query_send_detail(self, biz_id, phone_number, page_size, current_page, send_date):
        queryRequest = QuerySendDetailsRequest.QuerySendDetailsRequest()

        # 查詢的手機號碼
        queryRequest.set_PhoneNumber(phone_number)
        # 流水號
        # queryRequest.set_BizId(biz_id)
        # 發送日期 支持30天內記錄查詢,格式yyyyMMdd
        queryRequest.set_SendDate(send_date)
        # 必填-當前頁碼從1開始計數
        queryRequest.set_CurrentPage(current_page)
        # 必填-頁大小
        queryRequest.set_PageSize(page_size)

        # 調用短信記錄查詢接口,返回json
        queryResponse = json.loads(acs_client.do_action_with_exception(queryRequest))

        return queryResponse

 

四:調用示例

# -*- coding: utf-8 -*-

from Ali_sms import *

class TestSMS(object):
    ali_sms = AliSMS()

    if __name__ == '__main__':
__business_id = uuid.uuid1()
params = "{\"code\":\"2222\"}"
response = ali_sms.send_sms(__business_id, "電話", "簽名Name", "模版ID", params)
BizId = response["BizId"]
detail = ali_sms.query_send_detail(BizId, "電話", 10, 1,datetime.datetime.now().strftime('%Y%m%d'))
 
        

 

五:短信發送錯誤碼和回執狀態碼

錯誤碼解讀:https://help.aliyun.com/knowledge_detail/57717.html

狀態碼:https://help.aliyun.com/document_detail/55323.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM