예제 #1
0
        public void OnMessage(IMessage message)
        {
            object data        = CreateDataObject(message);
            bool   isPermKeyOk = false;

            //Israel 11/20/2015 -- Added support for permission keys.
            if (message.NMSType.ToUpper() == "SUMMARY")
            {
                SummaryData summaryData = data as SummaryData;
                isPermKeyOk = (String.IsNullOrEmpty(summaryData.PermissionKey)) ||
                              (v_PermKeyList.IndexOf(summaryData.PermissionKey) > -1);
                if (isPermKeyOk || v_IsSuperUser)
                {
                    callback.Invoke(this, data);
                }
            }
            //Israel 12/16/2015 -- Message publisher was escaping the : character-- this removes it.
            else if (message.NMSType.ToUpper() == "CONFIRM")
            {
                TradeRqmtConfirm confirmData = data as TradeRqmtConfirm;
                if (!String.IsNullOrEmpty(confirmData.XmitAddr))
                {
                    confirmData.XmitAddr = confirmData.XmitAddr.Replace(@"\", "");
                }
                callback.Invoke(this, data);
            }
            else
            {
                callback.Invoke(this, data);
            }

            message.Acknowledge();
            //string testMessage = DateTime.Now.ToShortDateString() + ":" + DateTime.Now.ToLongTimeString() + ": " + message.ToString();
            //File.AppendAllText(@"_MessageDump.txt", testMessage + Environment.NewLine);
        }
예제 #2
0
        /// <summary>
        /// 使用指定的处理过程来处理微信支付结果通知的回调
        /// </summary>
        /// <param name="callBack">设置处理方法,该方法需返回一个布尔值来指示处理是否成功</param>
        public static void NotifyCall(NotifyCallBack callBack)
        {
            bool flag = true;
            OrderPayResultParameters results = OrderPayResultParameters.RequestPares();
            if (callBack != null)
                flag = callBack.Invoke(results);

            WxParameters paras = new WxParameters();
            paras.SetValue("return_code", (flag ? "SUCCESS" : "FAIL"));
            paras.SetValue("return_msg", (flag ? "OK" : "UNIFIED ORDER ERROR"));
            HttpContext.Current.Response.Write(paras.ToXML());
        }