public Task<ActionResult> TemplateMessageTest(string checkcode)
        {
            return Task.Factory.StartNew<ActionResult>(() =>
            {
                var openId = CustomMessageHandler.TemplateMessageCollection.ContainsKey(checkcode)
                    ? CustomMessageHandler.TemplateMessageCollection[checkcode]
                    : null;



                if (openId == null)
                {
                    return Content("验证码已过期或不存在!请在“盛派网络小助手”公众号输入“tm”获取验证码。");
                }
                else
                {
                    CustomMessageHandler.TemplateMessageCollection.Remove(checkcode);


                       var templateId = "cCh2CTTJIbVZkcycDF08n96FP-oBwyMVrro8C2nfVo4";
                    var testData = new //TestTemplateData()
                    {
                        first = new TemplateDataItem("【异步模板消息测试】"),
                        keyword1 = new TemplateDataItem(openId),
                        keyword2 = new TemplateDataItem("网页测试"),
                        keyword3 = new TemplateDataItem(DateTime.Now.ToString("O")),
                        remark = new TemplateDataItem("更详细信息,请到Senparc.Weixin SDK官方网站(http://sdk.weixin.senparc.com)查看!")
                    };

                    var result = TemplateApi.SendTemplateMessageAsync(appId, openId, templateId, null, testData).Result;
                    return Content("异步模板消息已经发送到【盛派网络小助手】公众号,请查看。此前的验证码已失效,如需继续测试,请重新获取验证码。");
                }
            }).ContinueWith<ActionResult>(task => task.Result);
        }
Example #2
0
        /// <summary>
        /// 微信发送模板消息
        /// </summary>
        public void SendTemplateMessageTest_hg()
        {
            //            您好,已为您成功预约上门服务。
            //项目:高级美甲
            //时间:2015年10月1日14:00~16:00
            //技师:志玲
            //费用:98元
            //地址:西安市雁塔区曲江金地湖城大境
            //2015年9月28日 16:36
            //            {{first.DATA}}
            //客户姓名:{{keyword1.DATA}}
            //联系电话:{{keyword2.DATA}}
            //上门时间:{{keyword3.DATA}}
            //支付信息:{{keyword4.DATA}}
            //服务地址:{{keyword5.DATA}}
            //{{remark.DATA}}
            //            你好,你收到一个新订单
            //客户姓名:张三丰
            //联系电话:13515812621
            //上门时间:2015年5月26日 12:00
            //支付信息:微信支付  ¥200.00
            //服务地址:上海市浦东新区环林西路
            //请联系你的客户,并及时提供服务  int number = int.Parse(Request.QueryString["kk"]);
            BLL.HG.Hg_list          bb    = new BLL.HG.Hg_list();
            Model.HG.A_HG_new_order modle = bb.getorder_(Request.QueryString["order"]);



            var openId      = modle.Openid_;                                 //换成已经关注用户的openId
            var templateId  = "6oFH4updt21Zfwbks6O7erhZRlOI6jS3Yju8l9qFsw4"; //换成已经在微信后台添加的模板Id
            var accessToken = Token();
            var testData    = new                                            //TestTemplateData()
            {
                first    = new TemplateDataItem("护理服务支付成功"),
                keyword1 = new TemplateDataItem(modle.Name_),
                keyword2 = new TemplateDataItem(modle.Tel_),
                keyword3 = new TemplateDataItem(modle.Time_),
                keyword4 = new TemplateDataItem("微信支付:" + (modle.total).ToString() + "元"),
                keyword5 = new TemplateDataItem(modle.Adress),
                remark   = new TemplateDataItem("请保持电话通畅,服务人员会和您取得联系,提供快捷舒心的服务!")
            };

            var result = Senparc.Weixin.MP.AdvancedAPIs.TemplateApi.SendTemplateMessage(accessToken, openId, templateId, "http://www.hugongll.com/hugongll/order.aspx", testData);

            var openIds = "oZg9IwiZ4xGUBDtjT3lvrB4JV9Vo";                //换成已经关注用户的openId

            templateId  = "6oFH4updt21Zfwbks6O7erhZRlOI6jS3Yju8l9qFsw4"; //换成已经在微信后台添加的模板Id
            accessToken = Token();
            testData    = new                                            //TestTemplateData()
            {
                first    = new TemplateDataItem("新订单提醒(管理通知)"),
                keyword1 = new TemplateDataItem(modle.Name_),
                keyword2 = new TemplateDataItem(modle.Tel_),
                keyword3 = new TemplateDataItem(modle.Time_),
                keyword4 = new TemplateDataItem("微信支付:" + (modle.total).ToString() + "元"),
                keyword5 = new TemplateDataItem(modle.Adress),
                remark   = new TemplateDataItem("请与以上用户联系,并回访")
            };
            result = Senparc.Weixin.MP.AdvancedAPIs.TemplateApi.SendTemplateMessage(accessToken, openIds, templateId, "http://www.hugongll.com/hugongll/order.aspx", testData);
        }
Example #3
0
        public void SendTemplateMessageAsyncTest()
        {
            var openId     = base._testOpenId;
            var templateId = "cCh2CTTJIbVZkcycDF08n96FP-oBwyMVrro8C2nfVo4";

            base.TestAyncMethod(2, base._testOpenId, () =>
            {
                /*
                 * 详细内容
                 * {{first.DATA}}
                 * 用户名:{{keyword1.DATA}}
                 * 标题:{{keyword2.DATA}}
                 * 时间:{{keyword3.DATA}}
                 * {{remark.DATA}}
                 */
                var testData = new //TestTemplateData()
                {
                    first    = new TemplateDataItem(string.Format("【模板消息测试-{0}】您好,审核通过。", DateTime.Now.ToString("T"))),
                    keyword1 = new TemplateDataItem(openId),
                    keyword2 = new TemplateDataItem("单元测试"),
                    keyword3 = new TemplateDataItem(DateTime.Now.ToString("O")),
                    remark   = new TemplateDataItem("更详细信息,请到Senparc.Weixin SDK官方网站(http://zs.sasu.edu.cn)查看!\r\n运行线程:" + Thread.CurrentThread.GetHashCode())
                };

                var result = TemplateApi.SendTemplateMessageAsync(base._appId, openId, templateId, null, testData).Result;
                Console.WriteLine("线程{0},结果:{1}", Thread.CurrentThread.GetHashCode(), result.errmsg);

                base.AsyncThreadsCollection.Remove(Thread.CurrentThread);//必须要加
            });
        }
Example #4
0
        /// <summary>
        /// 使用异步Action测试异步模板消息接口
        /// </summary>
        /// <param name="checkcode"></param>
        /// <returns></returns>
        public async Task <ActionResult> TemplateMessageTest(string checkcode)
        {
            var openId = CustomMessageHandler.TemplateMessageCollection.ContainsKey(checkcode)
                ? CustomMessageHandler.TemplateMessageCollection[checkcode]
                : null;

            if (openId == null)
            {
                return(Content("验证码已过期或不存在!请在“盛派网络小助手”公众号输入“tm”获取验证码。"));
            }
            else
            {
                CustomMessageHandler.TemplateMessageCollection.Remove(checkcode);


                var templateId = "cCh2CTTJIbVZkcycDF08n96FP-oBwyMVrro8C2nfVo4";
                var testData   = new //TestTemplateData()
                {
                    first    = new TemplateDataItem("【异步模板消息测试】"),
                    keyword1 = new TemplateDataItem(openId),
                    keyword2 = new TemplateDataItem("网页测试"),
                    keyword3 = new TemplateDataItem(DateTime.Now.ToString("O")),
                    remark   = new TemplateDataItem("更详细信息,请到Senparc.Weixin SDK官方网站(http://zs.sasu.edu.cn)查看!")
                };

                var result = await TemplateApi.SendTemplateMessageAsync(appId, openId, templateId, null, testData);

                return(Content("异步模板消息已经发送到【盛派网络小助手】公众号,请查看。此前的验证码已失效,如需继续测试,请重新获取验证码。"));
            }
        }
Example #5
0
        /// <summary>
        /// 微信发送模板消息
        /// </summary>
        public void SendTemplateMessageTest()
        {
//            您好,已为您成功预约上门服务。
//项目:高级美甲
//时间:2015年10月1日14:00~16:00
//技师:志玲
//费用:98元
//地址:西安市雁塔区曲江金地湖城大境
//2015年9月28日 16:36
            BLL.HG.Hg_list    order_T = new BLL.HG.Hg_list();
            Model.HG.HG_order model   = order_T.Getorder(Request.QueryString["order"]);
            var openId      = HttpContext.Current.Request.Cookies["open_id"].Value; //换成已经关注用户的openId
            var templateId  = "D_WYLHdtug59Q-e1DhPQHrQGB8MurmOhABo44y6qahQ";        //换成已经在微信后台添加的模板Id
            var accessToken = Token();
            var testData    = new                                                   //TestTemplateData()
            {
                first    = new TemplateDataItem("您好,预约通知", "#F70D12"),
                keyword1 = new TemplateDataItem("医院护理"),
                keyword2 = new TemplateDataItem(model.Service_time),
                keyword3 = new TemplateDataItem(model.Hg_name, "#0AD690"),
                keyword4 = new TemplateDataItem((model.Total).ToString() + "元"),
                keyword5 = new TemplateDataItem(model.By_adress),
                remark   = new TemplateDataItem(DateTime.Now.ToString())
            };
            var result = Senparc.Weixin.MP.AdvancedAPIs.TemplateApi.SendTemplateMessage(accessToken, openId, templateId, "http://www.hugongll.com/templates/Doc/order.aspx", testData);
        }
Example #6
0
        /// <summary>
        /// 使用异步Action测试异步模板消息接口
        /// </summary>
        /// <param name="checkcode"></param>
        /// <returns></returns>
        public async Task <ActionResult> TemplateMessageTest(string checkcode)
        {
            var currentCache = CacheStrategyFactory.GetObjectCacheStrategyInstance();
            var cacheKey     = $"TestCheckCode:{checkcode}";
            var openId       = await currentCache.GetAsync(cacheKey) as string;//使用缓存,如果多台服务器可以使用分布式缓存共享

            if (openId.IsNullOrEmpty())
            {
                return(Content("验证码已过期或不存在!请在“盛派网络小助手”公众号输入“tm”获取验证码。"));
            }
            else
            {
                await currentCache.RemoveFromCacheAsync(cacheKey);

                var templateId = "cCh2CTTJIbVZkcycDF08n96FP-oBwyMVrro8C2nfVo4";
                var testData   = new //TestTemplateData()
                {
                    first    = new TemplateDataItem("【异步模板消息测试】"),
                    keyword1 = new TemplateDataItem(openId),
                    keyword2 = new TemplateDataItem("网页测试"),
                    keyword3 = new TemplateDataItem(SystemTime.Now.ToString("O")),
                    remark   = new TemplateDataItem("更详细信息,请到Senparc.Weixin SDK官方网站(http://sdk.weixin.senparc.com)查看!")
                };

                var miniProgram = new TemplateModel_MiniProgram()
                {
                    appid    = "wxfcb0a0031394a51c",//【盛派互动(BookHelper)】小程序
                    pagepath = "pages/index/index"
                };

                var result = await TemplateApi.SendTemplateMessageAsync(appId, openId, templateId, null, testData, miniProgram);

                return(Content("异步模板消息已经发送到【盛派网络小助手】公众号,请查看。此前的验证码已失效,如需继续测试,请重新获取验证码。"));
            }
        }
Example #7
0
        protected void Button1_Click(object sender, EventArgs e)
        {
            //string json = @"{
            //                 {
            //                  'value':'支持成功',
            //                        'color':'#173177'
            //                    }
            //                }
            //                订单号: {
            //                 {
            //                  'value':'order2020',
            //                        'color':'#173177'
            //                 }
            //                }
            //                订单类型: {
            //                 {
            //                 'value':'活动',
            //                        'color':'#173177'
            //                 }
            //                }
            //                商品名称: {
            //                 {
            //                  'value':'支持队员',
            //                        'color':'#173177'
            //                 }
            //                }
            //                消费金额: {
            //                 {
            //                  'value':'100.00元',
            //                        'color':'#173177'
            //                 }
            //                }
            //                消费时间: {
            //                 {
            //                  'value':'2020-1-30',
            //                        'color':'#173177'
            //                 }
            //                } {
            //                 {
            //                  'value':'感谢您的支持!',
            //                        'color':'#173177'
            //                 }
            //                }";
            var accessToken = AccessTokenContainer.GetAccessToken("wx9511a139072c5d5e");

            var testData = new //TestTemplateData()
            {
                first    = new TemplateDataItem("支持成功!"),
                keyword1 = new TemplateDataItem("order2020"),
                keyword2 = new TemplateDataItem("活动"),
                keyword3 = new TemplateDataItem("支持队员"),
                keyword4 = new TemplateDataItem("100.00元"),
                keyword5 = new TemplateDataItem("2020-1-30"),
                remark   = new TemplateDataItem("感谢您的支持!")
            };
            var result = TemplateApi.SendTemplateMessage(accessToken, "ou1fM1O00kUsfw8j2qyIoXXn1G8M", "K2WtNl3zArzx3KsKGT2e3Ph7Fud64oIhMHC4XvUFoVA", "#FF0000", "", testData);

            Response.Write(result.errcode);
        }
Example #8
0
        public void CreateAsyncTest()
        {
            var openId = base._testOpenId;

            base.TestAyncMethod(1, openId, () =>
            {
                var result = QrCodeApi.CreateAsync(base._appId, 100, 999999, QrCode_ActionName.QR_SCENE, "QrTest").Result;
                //Assert.AreEqual(ReturnCode.请求成功,result.errcode);

                Console.WriteLine("Result(T-{0}):{1}", Thread.CurrentThread.GetHashCode(), result.ToString());

                //发送消息通知生成状态
                var testData = new //TestTemplateData()
                {
                    first = new TemplateDataItem(string.Format("【测试-{0}】QrCode单元测试完成一个线程。", DateTime.Now.ToString("T"))),
                    keyword1 = new TemplateDataItem(openId),
                    keyword2 = new TemplateDataItem("QrCode测试"),
                    keyword3 = new TemplateDataItem(DateTime.Now.ToString("O")),
                    remark = new TemplateDataItem("结果:" + result.errcode.ToString())
                };

                var tmResult = TemplateApi.SendTemplateMessageAsync(base._appId, openId, "cCh2CTTJIbVZkcycDF08n96FP-oBwyMVrro8C2nfVo4",
                    (result.url)
                    , testData).Result;

                if (result.errcode == ReturnCode.请求成功)
                {
                    //下载并获得二维码
                    try
                    {

                        var fileName = Path.Combine(System.Environment.CurrentDirectory, "..\\", string.Format("qrcode-{0}.jpg", DateTime.Now.ToString("yyyy-MM-dd HH_mm_ss")));
                        using (FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate))
                        {
                            QrCodeApi.ShowQrCode(result.ticket, fs);//下载二维码
                        }

                        //下载之后,文件储存在\src\Senparc.Weixin.MP\Senparc.Weixin.MP.Test\bin目录下,
                        //打开.jpg文件之后,使用微信扫一扫查看效果。
                    }
                    catch
                    {
                    }
                }

                base.AsyncThreadsCollection.Remove(Thread.CurrentThread);//必须要加

            });
        }
Example #9
0
 //<summary>
 //微信发送模板消息
 //</summary>
 public void SendTemplateMessageTest()
 {
     var openId      = openid;                                        //换成已经关注用户的openId
     var templateId  = "eu4TmBIP5QeDjZogvL4BsWc8MoildR7lGrAG9YDwvK0"; //换成已经在微信后台添加的模板Id
     var accessToken = Token();
     var testData    = new                                            //TestTemplateData()
     {
         first    = new TemplateDataItem("您好,授权通知"),
         keyword1 = new TemplateDataItem("八月,该读书"),
         keyword2 = new TemplateDataItem(DateTime.Now.ToString()),
         keyword3 = new TemplateDataItem("信息通知"),
         remark   = new TemplateDataItem("你刚授权给了+" + MyCommFun.getWebSite() + "")
     };
     var result = Senparc.Weixin.MP.AdvancedAPIs.TemplateApi.SendTemplateMessage(accessToken, openId, templateId, "http://www.hugongll.com/hugongll/index.aspx", testData);
 }
Example #10
0
        public void CreateAsyncTest()
        {
            var openId = base._testOpenId;

            base.TestAyncMethod(1, openId, () =>
            {
                var result = QrCodeApi.CreateAsync(base._appId, 100, 999999, QrCode_ActionName.QR_SCENE, "QrTest").Result;
                //Assert.AreEqual(ReturnCode.请求成功,result.errcode);

                Console.WriteLine("Result(T-{0}):{1}", Thread.CurrentThread.GetHashCode(), result.ToString());

                //发送消息通知生成状态
                var testData = new //TestTemplateData()
                {
                    first    = new TemplateDataItem(string.Format("【测试-{0}】QrCode单元测试完成一个线程。", SystemTime.Now.ToString("T"))),
                    keyword1 = new TemplateDataItem(openId),
                    keyword2 = new TemplateDataItem("QrCode测试"),
                    keyword3 = new TemplateDataItem(SystemTime.Now.Ticks.ToString("O")),
                    remark   = new TemplateDataItem("结果:" + result.errcode.ToString())
                };

                var tmResult = TemplateApi.SendTemplateMessageAsync(base._appId, openId, "cCh2CTTJIbVZkcycDF08n96FP-oBwyMVrro8C2nfVo4",
                                                                    (result.url)
                                                                    , testData).Result;

                if (result.errcode == ReturnCode.请求成功)
                {
                    //下载并获得二维码
                    try
                    {
                        var fileName = Path.Combine(System.Environment.CurrentDirectory, "..\\", string.Format("qrcode-{0}.jpg", SystemTime.Now.ToString("yyyy-MM-dd HH_mm_ss")));
                        using (FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate))
                        {
                            QrCodeApi.ShowQrCode(result.ticket, fs);//下载二维码
                        }

                        //下载之后,文件储存在\src\Senparc.Weixin.MP\Senparc.Weixin.MP.Test\bin目录下,
                        //打开.jpg文件之后,使用微信扫一扫查看效果。
                    }
                    catch
                    {
                    }
                }

                base.AsyncThreadsCollection.Remove(Thread.CurrentThread);//必须要加
            });
        }
Example #11
0
        public void SendTemplateMessageTest()
        {
            var openId     = "olPjZjsXuQPJoV0HlruZkNzKc91E";                //换成已经关注用户的openId
            var templateId = "cCh2CTTJIbVZkcycDF08n96FP-oBwyMVrro8C2nfVo4"; //换成已经在微信后台添加的模板Id
                                                                            //var accessToken = AccessTokenContainer.GetAccessToken(_appId);
            var testData = new                                              //TestTemplateData()
            {
                first    = new TemplateDataItem("【测试】您好,审核通过。"),
                keyword1 = new TemplateDataItem(openId),
                keyword2 = new TemplateDataItem("单元测试"),
                keyword3 = new TemplateDataItem(DateTime.Now.ToString()),
                remark   = new TemplateDataItem("更详细信息,请到Senparc.Weixin SDK官方网站(http://zs.sasu.edu.cn)查看!")
            };
            var result = MP.AdvancedAPIs.TemplateApi.SendTemplateMessage(_appId, openId, templateId, "http://zs.sasu.edu.cn", testData);

            Assert.AreEqual(ReturnCode.请求成功, result.errcode);
        }
Example #12
0
        public void SendTemplateMessageTest()
        {
            var openId = "olPjZjsXuQPJoV0HlruZkNzKc91E";//换成已经关注用户的openId
            var templateId = "cCh2CTTJIbVZkcycDF08n96FP-oBwyMVrro8C2nfVo4";//换成已经在微信后台添加的模板Id
            var accessToken = AccessTokenContainer.GetAccessToken(_appId);
            var testData = new //TestTemplateData()
            {
                first = new TemplateDataItem("【测试】您好,审核通过。"),
                keyword1 = new TemplateDataItem(openId),
                keyword2 = new TemplateDataItem("单元测试"),
                keyword3 = new TemplateDataItem(DateTime.Now.ToString()),
                remark = new TemplateDataItem("更详细信息,请到Senparc.Weixin SDK官方网站(http://sdk.weixin.senparc.com)查看!")
            };
            var result = MP.AdvancedAPIs.TemplateApi.SendTemplateMessage(accessToken, openId, templateId, "http://sdk.weixin.senparc.com", testData);

            Assert.AreEqual(ReturnCode.请求成功, result.errcode);
        }
Example #13
0
        /// <summary>
        /// 微信发送模板消息
        /// </summary>
        public void SendTemplateMessageTest_hg()
        {
            //            您好,已为您成功预约上门服务。
            //项目:高级美甲
            //时间:2015年10月1日14:00~16:00
            //技师:志玲
            //费用:98元
            //地址:西安市雁塔区曲江金地湖城大境
            //2015年9月28日 16:36
            //            {{first.DATA}}
            //客户姓名:{{keyword1.DATA}}
            //联系电话:{{keyword2.DATA}}
            //上门时间:{{keyword3.DATA}}
            //支付信息:{{keyword4.DATA}}
            //服务地址:{{keyword5.DATA}}
            //{{remark.DATA}}
            //            你好,你收到一个新订单
            //客户姓名:张三丰
            //联系电话:13515812621
            //上门时间:2015年5月26日 12:00
            //支付信息:微信支付  ¥200.00
            //服务地址:上海市浦东新区环林西路
            //请联系你的客户,并及时提供服务  int number = int.Parse(Request.QueryString["kk"]);
            BLL.HG.Hg_list order_T   = new BLL.HG.Hg_list();
            int            Hg_number = int.Parse(Request.QueryString["kk"]);

            Model.HG.HGlist   model_hg = order_T.Getmodel(Hg_number);
            Model.HG.HG_order model    = order_T.Getorder(Request.QueryString["order"]);

            var openId      = model_hg.open_id_hg;                           //换成已经关注用户的openId
            var templateId  = "6oFH4updt21Zfwbks6O7erhZRlOI6jS3Yju8l9qFsw4"; //换成已经在微信后台添加的模板Id
            var accessToken = Token();
            var testData    = new                                            //TestTemplateData()
            {
                first    = new TemplateDataItem("您好,新订单通知"),
                keyword1 = new TemplateDataItem(model.Nursing_name),
                keyword2 = new TemplateDataItem(model.Nursing_tel),
                keyword3 = new TemplateDataItem(model.Service_time),
                keyword4 = new TemplateDataItem("微信支付:" + (model.Total).ToString() + "元"),
                keyword5 = new TemplateDataItem(model.By_adress),
                remark   = new TemplateDataItem("请联系你的客户,并及时提供服务")
            };
            var result = Senparc.Weixin.MP.AdvancedAPIs.TemplateApi.SendTemplateMessage(accessToken, openId, templateId, "http://www.hugongll.com/templates/Doc/Hugo_list/Login.aspx", testData);
        }
Example #14
0
        /// <summary>
        /// 使用异步Action测试异步模板消息接口
        /// </summary>
        /// <param name="checkcode"></param>
        /// <returns></returns>
        public async Task <ActionResult> TemplateMessageTest(string checkcode)
        {
            var openId = CustomMessageHandler.TemplateMessageCollection.ContainsKey(checkcode)
                ? CustomMessageHandler.TemplateMessageCollection[checkcode]
                : null;

            if (openId == null)
            {
                return(Content("验证码已过期或不存在!请在“盛派网络小助手”公众号输入“tm”获取验证码。"));
            }
            else
            {
                CustomMessageHandler.TemplateMessageCollection.Remove(checkcode);


                var templateId = "cCh2CTTJIbVZkcycDF08n96FP-oBwyMVrro8C2nfVo4";
                var testData   = new //TestTemplateData()
                {
                    first    = new TemplateDataItem("【异步模板消息测试】"),
                    keyword1 = new TemplateDataItem(openId),
                    keyword2 = new TemplateDataItem("网页测试"),
                    keyword3 = new TemplateDataItem(DateTime.Now.ToString("O")),
                    remark   = new TemplateDataItem("更详细信息,请到Senparc.Weixin SDK官方网站(http://sdk.weixin.senparc.com)查看!")
                };

                var miniProgram = new TempleteModel_MiniProgram()
                {
                    appid    = "wxfcb0a0031394a51c",//【盛派互动(BookHelper)】小程序
                    pagepath = "pages/index/index"
                };

                var result = await TemplateApi.SendTemplateMessageAsync(appId, openId, templateId, null, testData, miniProgram);

                return(Content("异步模板消息已经发送到【盛派网络小助手】公众号,请查看。此前的验证码已失效,如需继续测试,请重新获取验证码。"));
            }
        }
Example #15
0
        /// <summary>
        /// 接收从微信支付后台发送过来的数据并验证签名
        /// </summary>
        /// <returns>微信支付后台返回的数据</returns>
        public WxPayData GetNotifyData()
        {
            //接收从微信后台POST过来的数据
            System.IO.Stream s = page.Request.InputStream;
            int count          = 0;

            byte[]        buffer  = new byte[1024];
            StringBuilder builder = new StringBuilder();

            while ((count = s.Read(buffer, 0, 1024)) > 0)
            {
                builder.Append(Encoding.UTF8.GetString(buffer, 0, count));
            }
            s.Flush();
            s.Close();
            s.Dispose();

            Log.Info(this.GetType().ToString(), "Receive data from WeChat : " + builder.ToString());

            //转换数据格式并验证签名
            WxPayData data = new WxPayData();

            try
            {
                data.FromXml(builder.ToString());

                string    sql = "select support_to_openid,support_money,support_by_nickname,is_send_to_sopport,is_send_to_join,is_pay_successed,support_by_openid from action_support_people where inner_order_num = '" + data.GetValue("out_trade_no").ToString() + "'";
                DataTable dt = DTcms.DBUtility.DbHelperSQL.Query(sql).Tables[0];
                string    support_money = "0.00", support_name = "", support_to_name = "";
                string    join_id = "-1";
                string    joiner_openid = "", support_openid = "";

                bool is_send_to_sopport = false, is_send_to_join = false, is_pay_successed = false;
                if (dt != null && dt.Rows.Count > 0)
                {
                    joiner_openid = dt.Rows[0][0].ToString();
                    support_money = dt.Rows[0][1].ToString();
                    support_name  = dt.Rows[0][2].ToString();
                    if (dt.Rows[0][3].ToString() == "1")
                    {
                        is_send_to_sopport = true;
                    }
                    if (dt.Rows[0][4].ToString() == "1")
                    {
                        is_send_to_join = true;
                    }
                    if (dt.Rows[0][5].ToString() == "1")
                    {
                        is_pay_successed = true;
                    }
                    support_openid = dt.Rows[0][6].ToString();
                }
                if (!is_pay_successed)
                {
                    sql = "update action_support_people set is_pay_successed = 1 where inner_order_num = '" + data.GetValue("out_trade_no").ToString() + "' and is_pay_successed=0";
                    DTcms.DBUtility.DbHelperSQL.ExecuteSql(sql);

                    sql = "select sum(support_money) from action_support_people where support_to_openid = '" + joiner_openid + "' and is_pay_successed=1";
                    dt  = DTcms.DBUtility.DbHelperSQL.Query(sql).Tables[0];
                    if (dt != null && dt.Rows.Count > 0 && !string.IsNullOrEmpty(dt.Rows[0][0].ToString()) && Convert.ToDecimal(dt.Rows[0][0].ToString()) >= globalField.target_money)
                    {
                        sql = "update action_join_people set is_done = 1,done_date = getdate() where people_openid = '" + joiner_openid + "'";
                        DTcms.DBUtility.DbHelperSQL.ExecuteSql(sql);
                    }
                    sql = "select people_name,id from action_join_people where people_openid =  '" + joiner_openid + "'";
                    dt  = DTcms.DBUtility.DbHelperSQL.Query(sql).Tables[0];
                    if (dt != null && dt.Rows.Count > 0)
                    {
                        support_to_name = dt.Rows[0][0].ToString();
                        join_id         = dt.Rows[0][1].ToString();
                    }

                    var accessToken = AccessTokenContainer.GetAccessToken("wx9511a139072c5d5e");
                    //发送给支持者
                    if (!is_send_to_sopport)
                    {
                        var testData = new //TestTemplateData()
                        {
                            first    = new TemplateDataItem("感谢您的支持!"),
                            keyword1 = new TemplateDataItem(data.GetValue("out_trade_no").ToString()),
                            keyword2 = new TemplateDataItem("“觉醒之路”首届商界精英茶马古道挑战赛"),
                            keyword3 = new TemplateDataItem("被支持人:" + support_to_name),
                            keyword4 = new TemplateDataItem(support_money + "元"),
                            keyword5 = new TemplateDataItem(DateTime.Now.ToString("yyyy-MM-dd")),
                            remark   = new TemplateDataItem("感谢您的支持!")
                        };
                        string templateid   = "K2WtNl3zArzx3KsKGT2e3Ph7Fud64oIhMHC4XvUFoVA";
                        string redirect_url = "http://" + "www.suzhoulvtu.cn" + "/mobile/index.aspx?id=" + join_id;
                        var    result       = TemplateApi.SendTemplateMessage(accessToken, support_openid, templateid, "#FF0000", redirect_url, testData);
                        sql = "update action_support_people set is_send_to_sopport = 1 where inner_order_num = '" + data.GetValue("out_trade_no").ToString() + "'";
                        DTcms.DBUtility.DbHelperSQL.ExecuteSql(sql);
                    }
                    //发送给被支持人
                    if (!is_send_to_join)
                    {
                        var testData = new //TestTemplateData()
                        {
                            first    = new TemplateDataItem("您收到了他人的支持!"),
                            keyword1 = new TemplateDataItem(data.GetValue("out_trade_no").ToString()),
                            keyword2 = new TemplateDataItem("“觉醒之路”首届商界精英茶马古道挑战赛"),
                            keyword3 = new TemplateDataItem("支持人:" + support_name),
                            keyword4 = new TemplateDataItem(support_money + "元"),
                            keyword5 = new TemplateDataItem(DateTime.Now.ToString("yyyy-MM-dd")),
                            remark   = new TemplateDataItem("感谢您的支持!")
                        };
                        string templateid   = "K2WtNl3zArzx3KsKGT2e3Ph7Fud64oIhMHC4XvUFoVA";
                        string redirect_url = "http://" + "www.suzhoulvtu.cn" + "/mobile/index.aspx?id=" + join_id;
                        var    result       = TemplateApi.SendTemplateMessage(accessToken, joiner_openid, templateid, "#FF0000", redirect_url, testData);
                        sql = "update action_support_people set is_send_to_join = 1 where inner_order_num = '" + data.GetValue("out_trade_no").ToString() + "'";
                        DTcms.DBUtility.DbHelperSQL.ExecuteSql(sql);
                    }
                }
            }
            catch (Exception ex)
            {
                //若签名错误,则立即返回结果给微信支付后台
                WxPayData res = new WxPayData();
                res.SetValue("return_code", "FAIL");
                res.SetValue("return_msg", ex.Message);
                Log.Error(this.GetType().ToString(), "Sign check error : " + res.ToXml());
                page.Response.Write(res.ToXml());
                page.Response.End();
            }

            Log.Info(this.GetType().ToString(), "Check sign success");
            return(data);
        }
Example #16
0
        public void SendTemplateMessageAsyncTest()
        {
            var openId = base._testOpenId;
            var templateId = "cCh2CTTJIbVZkcycDF08n96FP-oBwyMVrro8C2nfVo4";
            base.TestAyncMethod(2, base._testOpenId, () =>
            {
                /*
                * 详细内容
                {{first.DATA}}
                用户名:{{keyword1.DATA}}
                标题:{{keyword2.DATA}}
                时间:{{keyword3.DATA}}
                {{remark.DATA}}
                */
                var testData = new //TestTemplateData()
                {
                    first = new TemplateDataItem(string.Format("【模板消息测试-{0}】您好,审核通过。", DateTime.Now.ToString("T"))),
                    keyword1 = new TemplateDataItem(openId),
                    keyword2 = new TemplateDataItem("单元测试"),
                    keyword3 = new TemplateDataItem(DateTime.Now.ToString("O")),
                    remark = new TemplateDataItem("更详细信息,请到Senparc.Weixin SDK官方网站(http://sdk.weixin.senparc.com)查看!\r\n运行线程:" + Thread.CurrentThread.GetHashCode())
                };

                var result = TemplateApi.SendTemplateMessageAsync(base._appId, openId, templateId, null, testData).Result;
                Console.WriteLine("线程{0},结果:{1}", Thread.CurrentThread.GetHashCode(), result.errmsg);

                base.AsyncThreadsCollection.Remove(Thread.CurrentThread);//必须要加
            });
        }