示例#1
0
        public string UpdateFeedback(string feedbackId, LoggingSessionInfo loggiongSessionInfo)
        {
            var wxRightOrdersBll = new WXRightOrdersBLL(loggiongSessionInfo);
            var feedbackEntity   = wxRightOrdersBll.QueryByEntity(new WXRightOrdersEntity()
            {
                FeedBackId = feedbackId
            }, null).FirstOrDefault();

            if (feedbackEntity == null)
            {
                throw new APIException("无效的维权单号")
                      {
                          ErrorCode = 122
                      };
            }
            var serder = new WApplicationInterfaceBLL(loggiongSessionInfo);
            //获取微信公众号的信息
            var appEntity = serder.QueryByEntity(new WApplicationInterfaceEntity()
            {
                CustomerId = loggiongSessionInfo.ClientID
            }, null).FirstOrDefault();

            if (appEntity == null)
            {
                throw new APIException("微信公众号信息为空")
                      {
                          ErrorCode = 121
                      };
            }
            var common = new CommonBLL();
            //获取微信的AccessToken
            var accessToken =
                common.GetAccessTokenByCache(appEntity.AppID, appEntity.AppSecret, loggiongSessionInfo).access_token;

            //{"errcode":0,"errmsg":"ok"}
            var result = common.UpdatePayFeedBack(accessToken, loggiongSessionInfo, feedbackEntity.OpenId, feedbackId);

            var data = result.DeserializeJSONTo <WxErrMessage>();

            return(data.errmsg);
        }
示例#2
0
        /// <summary>
        /// 根据订单获取发货通知参数
        /// </summary>
        /// <param name="orderId"></param>
        /// <param name="loggiongSessionInfo"></param>
        /// <returns>result = 'ok' 为成功</returns>
        public string GetDeliverInfoByOrderId(string orderId, LoggingSessionInfo loggiongSessionInfo)
        {
            var wxDeliverInfo = new WxDeliverInfo();

            //获取交易中心的订单号
            var tranCenterOrderId = this._currentDAO.GetTranCenterOrderId(orderId, loggiongSessionInfo.ClientID);

            var serder = new WApplicationInterfaceBLL(loggiongSessionInfo);
            //获取微信公众号的信息
            var appEntity = serder.QueryByEntity(new WApplicationInterfaceEntity()
            {
                CustomerId = loggiongSessionInfo.ClientID
            }, null).FirstOrDefault();


            if (appEntity != null)
            {
                var appSecret = appEntity.AppSecret;
                wxDeliverInfo.appid = appEntity.AppID;
            }
            else
            {
                throw new APIException("微信公众号信息为空")
                      {
                          ErrorCode = 121
                      };
            }
            var wXPayNoticeBll = new WXPayNoticeBLL(loggiongSessionInfo);
            var transEntity    = wXPayNoticeBll.QueryByEntity(new WXPayNoticeEntity()
            {
                OutTradeNo = tranCenterOrderId
            }, null).FirstOrDefault();

            if (transEntity != null)
            {
                wxDeliverInfo.openid         = transEntity.OpenId;
                wxDeliverInfo.out_trade_no   = transEntity.OutTradeNo;
                wxDeliverInfo.transid        = transEntity.TransactionId;
                wxDeliverInfo.deliver_status = "1";
                wxDeliverInfo.deliver_msg    = "ok";
            }
            else
            {
                throw new APIException("支付通知信息为空")
                      {
                          ErrorCode = 122
                      };
            }
            //时间戳,验签
            wxDeliverInfo.deliver_timestamp =
                Convert.ToString((DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000);
            wxDeliverInfo.sign_method = "sha1";

            //获取微信支付的专用签名
            var appkey = this._currentDAO.GetAppKeyByAppId(wxDeliverInfo.appid);

            var tempDic = new Dictionary <string, object>
            {
                { "appid", wxDeliverInfo.appid },
                { "appkey", appkey },
                { "openid", wxDeliverInfo.openid },
                { "transid", wxDeliverInfo.transid },
                { "out_trade_no", wxDeliverInfo.out_trade_no },
                { "deliver_timestamp", wxDeliverInfo.deliver_timestamp },
                { "deliver_status", wxDeliverInfo.deliver_status },
                { "deliver_msg", wxDeliverInfo.deliver_msg }
            };

            //生成签名


            wxDeliverInfo.app_signature = Sha1(GetParametersStr(tempDic));


            var common = new CommonBLL();
            //获取微信的AccessToken
            var accessToken =
                common.GetAccessTokenByCache(appEntity.AppID, appEntity.AppSecret, loggiongSessionInfo).access_token;

            //{"errcode":0,"errmsg":"ok"}
            var result = common.DeliverNotify(accessToken, loggiongSessionInfo, wxDeliverInfo.ToJSON());

            var data = result.DeserializeJSONTo <WxErrMessage>();

            Loggers.Debug(new DebugLogInfo()
            {
                Message = "微信发货通知返回结果:" + data.ToJSON()
            });

            return(data.errmsg);
        }
示例#3
0
        public bool SetEventWXPush(LEventsEntity eventInfo, string WeiXin, string OpenId, string VipId, string msgUrl, out string strError, string AuthUrl, int iRad)
        {
            try
            {
                MarketSendLogBLL logServer = new MarketSendLogBLL(this.CurrentUserInfo);
                Random           rad       = new Random();
                if (eventInfo == null || eventInfo.ModelId == null || eventInfo.ModelId.Equals(""))
                {
                    strError = "获取信息不全,缺少模板。";
                    return(false);
                }
                #region
                WEventUserMappingBLL eventUserMapping = new WEventUserMappingBLL(CurrentUserInfo);
                int eventPersonCount = 0;
                eventPersonCount = eventUserMapping.GetEventSignInCount(eventInfo.EventID);


                #endregion
                WApplicationInterfaceBLL wAServer = new WApplicationInterfaceBLL(this.CurrentUserInfo);
                var wxArray = wAServer.QueryByEntity(new WApplicationInterfaceEntity
                {
                    WeiXinID = WeiXin
                    ,
                    IsDelete = 0
                    ,
                    CustomerId = this.CurrentUserInfo.CurrentUser.customer_id
                }, null);
                if (wxArray == null || wxArray.Length == 0 || wxArray[0].AppID == null || wxArray[0].AppID.Equals(""))
                {
                    strError = "不存在对应的微信帐号";
                    return(false);
                }
                else
                {
                    WApplicationInterfaceEntity wxInfo = wxArray[0];
                    WX.CommonBLL server = new WX.CommonBLL();
                    JIT.CPOS.BS.Entity.WX.SendMessageEntity sendMessageInfo = new Entity.WX.SendMessageEntity();

                    WMaterialTextBLL            wTextServer = new WMaterialTextBLL(this.CurrentUserInfo);
                    IList <WMaterialTextEntity> textlist    = new List <WMaterialTextEntity>();
                    textlist = wTextServer.GetMaterialTextListByModelId(eventInfo.ModelId);

                    if (textlist != null && textlist.Count > 0 && textlist[0].TextId != null)
                    {
                        #region
                        VipBLL    vipServer = new VipBLL(CurrentUserInfo);
                        VipEntity vipInfo   = vipServer.GetByID(VipId);
                        sendMessageInfo.msgtype = "news";
                        sendMessageInfo.touser  = OpenId;
                        List <JIT.CPOS.BS.Entity.WX.NewsEntity> newsList = new List <JIT.CPOS.BS.Entity.WX.NewsEntity>();
                        foreach (var info in textlist)
                        {
                            JIT.CPOS.BS.Entity.WX.NewsEntity newsInfo = new Entity.WX.NewsEntity();
                            newsInfo.title = info.Title;
                            if (vipInfo != null && !vipInfo.VIPID.Equals(""))
                            {
                                newsInfo.description = info.Author.Replace("#VIPNAME#", vipInfo.VipName);
                            }
                            else
                            {
                                newsInfo.description = info.Author;
                            }

                            newsInfo.description = newsInfo.description.Replace("#PERSONCOUNT#", Convert.ToString(eventPersonCount));
                            //string url = info.OriginalUrl;
                            //JIT.Utility.Log.Loggers.Debug(new DebugLogInfo()
                            //{
                            //    Message = string.Format("处理原文链接出错:{0},url:{1};Status:{2};",)
                            //});
                            if (info.OriginalUrl != null && !info.OriginalUrl.Equals("") && vipInfo.Status != null && !vipInfo.Status.ToString().Equals(""))
                            {
                                if (vipInfo.Status.Equals(1) && info.OriginalUrl.IndexOf("Fuxing") > 0)
                                {
                                    newsInfo.description = info.Text;
                                }
                                else
                                {
                                }
                            }

                            if (info.OriginalUrl.IndexOf("?") > 0)
                            {
                                newsInfo.url = info.OriginalUrl + "&rnd=" + rad.Next(1000, 100000) + "";
                            }
                            else
                            {
                                string goUrl = info.OriginalUrl + "?1=1&applicationId=" + wxInfo.ApplicationId + "&eventId=" + eventInfo.EventID + "&openId=" + OpenId + "&userId=" + VipId + "";
                                goUrl = HttpUtility.UrlEncode(goUrl);

                                newsInfo.url = AuthUrl + "OnlineClothing/go.htm?customerId=" + this.CurrentUserInfo.CurrentUser.customer_id
                                               + "&applicationId=" + wxInfo.ApplicationId
                                               + "&openId=" + OpenId
                                               + "&userId=" + VipId
                                               + "&backUrl=" + goUrl + "";
                            }
                            //OnlineClothing/go.htm?customerId=" + customerId + "&openId=" + OpenId + "&userId=" + vipId + "&backUrl=" + HttpUtility.UrlEncode(goUrl) + "";
                            newsInfo.picurl = info.CoverImageUrl;
                            newsList.Add(newsInfo);
                        }
                        sendMessageInfo.articles = newsList;
                        #endregion
                        #region 发送日志

                        MarketSendLogEntity logInfo1 = new MarketSendLogEntity();
                        logInfo1.LogId         = BaseService.NewGuidPub();
                        logInfo1.IsSuccess     = 1;
                        logInfo1.MarketEventId = eventInfo.EventID;
                        logInfo1.SendTypeId    = "2";
                        logInfo1.Phone         = iRad.ToString();
                        if (sendMessageInfo.ToJSON().ToString().Length > 2000)
                        {
                            logInfo1.TemplateContent = sendMessageInfo.ToJSON().ToString().Substring(1, 1999);
                        }
                        else
                        {
                            logInfo1.TemplateContent = sendMessageInfo.ToJSON().ToString();
                        }
                        logInfo1.VipId        = VipId;
                        logInfo1.WeiXinUserId = OpenId;
                        logInfo1.CreateTime   = System.DateTime.Now;
                        logServer.Create(logInfo1);
                        #endregion
                    }

                    var ResultEntity = server.SendMessage(sendMessageInfo, wxInfo.AppID, wxInfo.AppSecret, this.CurrentUserInfo, true);


                    #region Jermyn20140110 处理复星年会的座位信息,是临时的
                    //FStaffBLL staffServer = new FStaffBLL(this.CurrentUserInfo);
                    //bool bReturn = staffServer.SetStaffSeatsPush(VipId, eventInfo.EventID, out strError);
                    //MarketSendLogEntity logInfo2 = new MarketSendLogEntity();
                    //logInfo2.LogId = BaseService.NewGuidPub();
                    //logInfo2.IsSuccess = 1;
                    //logInfo2.MarketEventId = eventInfo.EventID;
                    //logInfo2.SendTypeId = "2";
                    //logInfo2.TemplateContent = strError;
                    //logInfo2.Phone = iRad.ToString();
                    //logInfo2.VipId = VipId;
                    //logInfo2.WeiXinUserId = OpenId;
                    //logInfo2.CreateTime = System.DateTime.Now;
                    //logServer.Create(logInfo2);

                    #endregion
                    strError = "ok";
                    return(true);
                }
            }
            catch (Exception ex) {
                strError = ex.ToString();
                return(false);
            }
        }