收藏
回答

有没有用过腾讯云短信功能的sms出现如下问题的?

我通过云函数来使用腾讯云sms功能,现在遇到的问题是调用云函数成功,但是没有返回结果,而且我的手机也接受不到信息,但是使用腾讯云的API explorer生成的代码就可以成功发短信,现在估计是我云函数写的有点问题,但是我实在看不出来,所以想求各位大神帮忙看看问题所在

以下是page页面的部分代码

wx.cloud.callFunction({
          name'messege',
          data: {
            phone"151********",//真实电话号码
            templateId"1363501",
            templateParamSet: ["1","2","3","4","5"]
          }
        }).then(res=>{
          console.log(res);
        })


这是云函数的代码

// 云函数入口文件
const cloud = require('wx-server-sdk')
const tencentcloud = require('tencentcloud-sdk-nodejs');
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
  async function sendSms(phone, templateId, templateParamSet{
    const smsClient = tencentcloud.sms.v20190711.Client
    console.log(process.env)


    /* 实例化要请求产品(以sms为例)的client对象 */
    const client = new smsClient({
      credential: {
        /* 必填:腾讯云账户密钥对secretId,secretKey。
         * 这里采用的是从环境变量读取的方式,需要在环境变量中先设置这两个值。
         * 你也可以直接在代码中写死密钥对,但是小心不要将代码复制、上传或者分享给他人,
         * 以免泄露密钥对危及你的财产安全。
         * CAM密匙查询: https://console.cloud.tencent.com/cam/capi */
        secretId: process.env.SECRETID,
        secretKey: process.env.SECRETKEY,
      },
      /* 必填:地域信息,可以直接填写字符串ap-guangzhou,或者引用预设的常量 */
      region"ap-guangzhou",
      /* 非必填:
       * 客户端配置对象,可以指定超时时间等配置 */
      profile: {
        /* SDK默认用TC3-HMAC-SHA256进行签名,非必要请不要修改这个字段 */
        signMethod"HmacSHA256",
        httpProfile: {
          /* SDK默认使用POST方法。
           * 如果你一定要使用GET方法,可以在这里设置。GET方法无法处理一些较大的请求 */
          reqMethod"POST",
          /* SDK有默认的超时时间,非必要请不要进行调整
           * 如有需要请在代码中查阅以获取最新的默认值 */
          reqTimeout30,
          /**
           * SDK会自动指定域名。通常是不需要特地指定域名的,但是如果你访问的是金融区的服务
           * 则必须手动指定域名,例如sms的上海金融区域名: sms.ap-shanghai-fsi.tencentcloudapi.com
           */
          endpoint"sms.tencentcloudapi.com"
        },
      },
    })


    /* 请求参数,根据调用的接口和实际情况,可以进一步设置请求参数
     * 属性可能是基本类型,也可能引用了另一个数据结构
     * 推荐使用IDE进行开发,可以方便的跳转查阅各个接口和数据结构的文档说明 */
    const params = {
      /* 短信应用ID: 短信SdkAppid在 [短信控制台] 添加应用后生成的实际SdkAppid,示例如1400006666 */
      SmsSdkAppid:process.env.SMS_SDKAPPID,
      /* 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 */
      Sign:process.env.SMS_SIGN,
      //'process.env.SMS_SIGN',
      /* 短信码号扩展号: 默认未开通,如需开通请联系 [sms helper] */
      ExtendCode"",
      /* 国际/港澳台短信 senderid: 国内短信填空,默认未开通,如需开通请联系 [sms helper] */
      SenderId"",
      /* 用户的 session 内容: 可以携带用户侧 ID 等上下文信息,server 会原样返回 */
      SessionContext"",
      /* 下发手机号码,采用 e.164 标准,+[国家或地区码][手机号]
       * 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号*/
      PhoneNumberSet: ["+86" + phone],
      /* 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 */
      TemplateID: templateId,
      /* 模板参数: 若无模板参数,则设置为空*/
      TemplateParamSet: templateParamSet,
    }
    // 通过client对象调用想要访问的接口,需要传入请求对象以及响应回调函数
    return client.SendSms(params);
  }
  return sendSms(event.phone, event.templateId, event.templateParamSet);
}


以下是出现的问题

  1. {errMsg: "cloud.callFunction:ok", result: null, requestID: "3df275ef-1693-4435-858e-d3037a7f15e8"}
  2. errMsg"cloud.callFunction:ok"
  3. requestID"3df275ef-1693-4435-858e-d3037a7f15e8"
  4. resultnull
  5. constructor: (...)
  6. hasOwnProperty: (...)
  7. isPrototypeOf: (...)
  8. propertyIsEnumerable: (...)
  9. toLocaleString: (...)
  10. toString: (...)
  11. valueOf: (...)
  12. __defineGetter__: (...)
  13. __defineSetter__: (...)
  14. __lookupGetter__: (...)
  15. __lookupSetter__: (...)
  16. __proto__: Object


回答关注问题邀请回答
收藏

1 个回答

  • Agony
    Agony
    2023-04-22

    请问解决了吗?

    2023-04-22
    有用 1
    回复
登录 后发表内容