腾讯CMQ封装

CMQ.js

var Ksort = require("../lib/ksort.js");
var CryptoJS_hmacSHA1 = require("../lib/hmac-sha1.js")
var CryptoJS_Base64Encode = require("../lib/enc-base64-min.js")
/**************************************
GetURL('CreateQueue','queueName')
GetURL('ListQueue',‘searchWord’)
GetURL('DeleteQueue')
GetURL('SendMessage','queueName','msgBody')
GetURL('ReceiveMessage','queueName')
************************************** */
function GetURL() {
  var Nonce = Math.round(Math.random() * 65535)
  var Timestamp = Math.round(new Date().getTime() / 1000)
  var SecretId = 'AKIDObYFgsbTs1uXv36bxxxxxxxxxxxx'
    var SecretKey = 'pQoxsZ2QaXFk01oNxxxxxxxxxxxxxx'
      var data = [{
        Action: 'CreateQueue',
        Nonce: Nonce,
        SecretId: SecretId,
        Timestamp: Timestamp,
        maxMsgSize: 65536,
        msgRetentionSeconds: 300,//24Hours后无论消费与否都被删除
        pollingWaitSeconds: 10,
        queueName: arguments[1],
        visibilityTimeout: 1,
      }, {
        Action: 'ListQueue',
        Nonce: Nonce,
        SecretId: SecretId,
        Timestamp: Timestamp,
        searchWord: arguments[1]
      }, {
        Action: 'DeleteQueue',
        Nonce: Nonce,
        SecretId: SecretId,
        Timestamp: Timestamp,
      }, {
        Action: 'SendMessage',
        Nonce: Nonce,
        SecretId: SecretId,
        Timestamp: Timestamp,
        queueName: arguments[1],
        msgBody: arguments[2]
      }, {
        Action: 'ReceiveMessage',
        Nonce: Nonce,
        SecretId: SecretId,
        Timestamp: Timestamp,
        queueName: arguments[1],
        pollingWaitSeconds: 5
      }, {
        Action: 'DeleteMessage',
        Nonce: Nonce,
        SecretId: SecretId,
        Timestamp: Timestamp,
        queueName: arguments[1],
          receiptHandle: arguments[2]
      }]

  var dataTemp, temp = ''
  if (arguments[0] == 'CreateQueue') {
    dataTemp = Ksort.ksort(data[0]);
  } else if (arguments[0] == 'ListQueue') {
    dataTemp = Ksort.ksort(data[1])
  } else if (arguments[0] == 'DeleteQueue') {
    dataTemp = Ksort.ksort(data[2])
  } else if (arguments[0] == 'SendMessage') {
    dataTemp = Ksort.ksort(data[3])
  } else if (arguments[0] == 'ReceiveMessage') {
    dataTemp = Ksort.ksort(data[4])
  }




  for (var item in dataTemp) {
    if (item == 'Action') {
      temp += '?' + item + '=';
    } else {
      temp += '&' + item + '=';
    }
    temp += dataTemp[item]
  }
  var StrTemp = 'GETcmq-queue-gz.api.qcloud.com/v2/index.php'
  StrTemp += temp;
  var result = CryptoJS_Base64Encode.enc.Base64.stringify(CryptoJS_hmacSHA1.HmacSHA1(StrTemp, SecretKey))
  var resultStr = 'https://cmq-queue-gz.api.qcloud.com/v2/index.php' + temp + '&Signature=' + encodeURIComponent(result)
  console.log(resultStr)
  return resultStr
}
module.exports = {
  GetURL: GetURL
}

使用说明:

1.填入自己对应的SecretId、Secretkey

2.引入的外部js在前边文章中已经列出:ksort.js、hmac-sha1.js、enc-base64-min.js

3.记得将此接口暴漏,在要使用的js文件中直接引用

4.使用方法已在代码中的注释中了

你可能感兴趣的:(微信小程序)