微信小程序推送

微信公众平台 添加模板消息

小程序端

提交按钮必须是form提交

wxml页

<form bind:submit="testSubmit" report-submit>
  <button formType="submit" class="weui-btn" id='tixian' bindtap="tixianComfirm" disabled='{{IsCanClick}}' hover-class="none">
    确定提现
  </button>
</form>

 js页

//发送推送消息
var touser = that.data.openid;//接收者的openid
dataS.touser = touser;
dataS.template_id = "Qv3x9PsGlIJ5IUsfKxzFn_g4e97dRf5hhRok9CCOJps";//模板ID
dataS.page = "pages/my/my";//跳转页面
dataS.form_id = fId;//formID
var datav1 = new Object();
datav1.value = wx.getStorageSync('ShopName');
var datav2 = new Object();
datav2.value = that.data.Banlance +"元";
var datav3 = new Object();
datav3.value = that.data.inputMoney + "元";
var datav4 = new Object();
datav4.value = parseFloat(that.data.Fee) * 100 + "%";
var datav5 = new Object();
var date =new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
var hour = date.getHours() > 9 ? date.getHours() : "0" + date.getHours();
var minute = date.getMinutes() > 9 ? date.getMinutes() : "0" + date.getMinutes();
var datetime = year.toString()+"年"+month.toString()+"月"+day.toString()+"日 "+hour.toString()+":"+minute.toString()+"";
console.log(datetime);
datav5.value = datetime;
var data1 = new Object();
data1.keyword1 = new Object();
data1.keyword2 = new Object();
data1.keyword3 = new Object();
data1.keyword4 = new Object();
data1.keyword5 = new Object();
data1.keyword1 = datav1;
data1.keyword2 = datav2;
data1.keyword3 = datav3;
data1.keyword4 = datav4;
data1.keyword5 = datav5;
dataS.data = data1;
var ss = JSON.stringify(dataS);
var param1 = {
action: "PushWx",
msg: ss
}
  wx.request({
            method: 'GET',
            dataType: "json",
            header: {
              'content-type': 'application/json' // 默认值
            },
            data: param1,
            url: app.data.https,
            success: function (res) {
              if (res.data.Status > 0) {
              }
            }
          });

服务器端

private void PushWx(HttpContext context)
        {
            string msg = "";
            if (!string.IsNullOrEmpty(context.Request["msg"])) { msg = Hxzs.Common.ParemConverter.ObjectToString(context.Request["msg"]); }
            new Honszeal.Business.classes.spacelife.PushWx().Send(1, msg);
        }
View Code
public void Send(int Type, string pd)
        {
            Hxzs.Common.LogUtil.WriteLog(pd);
            var l = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=" + getaccess_token();
            StringBuilder result = Hxzs.Common.HttpRequest.PostPageContent(l, "", pd, "UTF-8");
            if (!string.IsNullOrEmpty(result.ToString()))
            {
                returnjson json = JsonConvert.DeserializeObject<returnjson>(result.ToString());
                Hxzs.Common.LogUtil.WriteLog(result.ToString());
            }

            //var result = pd.ToJson(); //Newtonsoft.Json.JsonConvert.SerializeObject(tempData);

        }
View Code

获取access_token

         /// <summary>
        /// 获取access_token
        /// </summary>
        /// <returns></returns>
        public static string getaccess_token()
        {
            string access_token = "";
            string url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx49ebae7d3a19117f&secret=a3ed5d2fd9ff30cddf55bc37ecf85832";
            WebRequest wReq = WebRequest.Create(url);
            WebResponse wResp = wReq.GetResponse();
            Stream respStream = wResp.GetResponseStream();
            using (StreamReader reader = new StreamReader(respStream, Encoding.GetEncoding("UTF-8")))
            {
                var result = reader.ReadToEnd(); //result就是返回值
                try
                {
                    GetWxModel m = Newtonsoft.Json.JsonConvert.DeserializeObject<GetWxModel>(result);
                    access_token = m.access_token;
                }
                catch (Exception ex)
                {
                    Hxzs.Common.LogUtil.WriteLog(ex.Message);
                }
            }
            Hxzs.Common.LogUtil.WriteLog("access_token:" + access_token);
            return access_token;
        }
View Code

 

转载于:https://www.cnblogs.com/qq9493/p/10135792.html

### uniCloud 中实现向微信小程序推送消息的方法 #### 配置云开发环境 为了使uniCloud能够成功向微信小程序推送消息,需先完成一系列基础设置。这包括创建并配置好小程序的云开发环境,在微信公众平台上为小程序设定服务器域名等必要操作[^3]。 #### 获取订阅消息模板ID 在准备推送前,开发者应前往微信公众平台申请所需的订阅消息模板,并记录下所获得的消息模板ID。这一过程对于后续调用API接口发送具体通知至关重要[^2]。 #### 编写云函数用于处理消息发送逻辑 通过编写特定于业务需求的云函数来封装实际执行推送动作的相关代码。下面是一个简单的例子展示怎样构建这样一个云函数: ```javascript // 定义云函数入口文件 index.js 的部分片段 const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV // 使用当前云环境 }) exports.main = async (event, context) => { try{ const result = await cloud.openapi.subscribeMessage.send({ touser: event.openId, page: 'pages/index/index', data: { thing1: { value: "您的订单已发货" }, phrase2: { value: "预计三天内送达"} }, templateId: event.templateId, miniprogramState:'trial' }) console.log(result); return result; }catch(e){ console.error(e.message); throw new Error(`Failed to send message ${e.message}`); } } ``` 此段JavaScript代码展示了如何利用`wx-server-sdk`库中的方法发起一次订阅消息请求。其中`touser`, `page`, 和其他参数均依据实际情况调整以满足不同场景下的应用需求。 #### 设置定时任务触发器(可选) 如果希望定期自动发送某些类型的通知给用户,则可以考虑设立cron表达式的计划任务来周期性地激活上述定义好的云函数实例。例如,每天凌晨两点整运行该函数来进行批量的信息传递工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值