示例#1
0
文件: Notify.cs 项目: lixiong24/WxSDK
        /// <summary>
        /// 查询订单,判断订单真实性。
        /// 1、判断成功返回true。
        /// 2、判断失败返回false,并主动发消息告诉微信后台。
        /// </summary>
        /// <param name="notifyData">微信支付后台发送过来的数据</param>
        /// <returns></returns>
        public bool IsTrueOrder(WxData notifyData)
        {
            //检查支付结果中transaction_id(微信支付订单号)是否存在
            if (!notifyData.IsSet("transaction_id"))
            {
                //若transaction_id不存在,则立即返回结果给微信支付后台
                ReturnErrorMsgToWx("支付结果中微信订单号不存在");
            }

            //微信支付订单号
            string transaction_id = notifyData.GetValue("transaction_id").ToString();
            WxData req            = new WxData();

            req.SetValue("transaction_id", transaction_id);
            WxData res = WxPayApi.OrderQuery(req);

            if (res.GetValue("return_code").ToString() == "SUCCESS" &&
                res.GetValue("result_code").ToString() == "SUCCESS")
            {
                return(true);
            }
            else
            {
                ReturnErrorMsgToWx("订单查询失败!判断订单不存在!");
                return(false);
            }
        }
示例#2
0
        /// <summary>
        /// 查询订单
        /// </summary>
        /// <param name="transaction_id"></param>
        /// <returns></returns>
        private bool QueryOrder(string transaction_id)
        {
            WxData req = new WxData();

            req.SetValue("transaction_id", transaction_id);
            WxData res = WxPayApi.OrderQuery(req);

            if (res.GetValue("return_code").ToString() == "SUCCESS" &&
                res.GetValue("result_code").ToString() == "SUCCESS")
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#3
0
        /// <summary>
        /// 订单查询完整业务流程逻辑,返回订单查询结果(xml格式)
        /// </summary>
        /// <param name="transaction_id">微信订单号(优先使用)</param>
        /// <param name="out_trade_no">商户订单号</param>
        /// <returns></returns>
        public static string Run(string transaction_id, string out_trade_no)
        {
            Log.Info("OrderQuery", "OrderQuery is processing...");

            WxData data = new WxData();

            if (!string.IsNullOrEmpty(transaction_id))//如果微信订单号存在,则以微信订单号为准
            {
                data.SetValue("transaction_id", transaction_id);
            }
            else//微信订单号不存在,才根据商户订单号去查单
            {
                data.SetValue("out_trade_no", out_trade_no);
            }

            WxData result = WxPayApi.OrderQuery(data);            //提交订单查询请求给API,接收返回数据

            Log.Info("OrderQuery", "OrderQuery process complete, result : " + result.ToXml());
            return(result.ToPrintStr());
        }