/// <summary> /// 订单查询 /// </summary> /// <returns></returns> public ActionResult OrderQuery() { string nonceStr = TenPayV3Util.GetNoncestr(); //RequestHandler packageReqHandler = new RequestHandler(null); ////设置package订单参数 //packageReqHandler.SetParameter("appid", TenPayV3Info.AppId); //公众账号ID //packageReqHandler.SetParameter("mch_id", TenPayV3Info.MchId); //商户号 //packageReqHandler.SetParameter("transaction_id", ""); //填入微信订单号 //packageReqHandler.SetParameter("out_trade_no", ""); //填入商家订单号 //packageReqHandler.SetParameter("nonce_str", nonceStr); //随机字符串 //string sign = packageReqHandler.CreateMd5Sign("key", TenPayV3Info.Key); //packageReqHandler.SetParameter("sign", sign); //签名 //string data = packageReqHandler.ParseXML(); var requestData = new TenPayV3OrderQueryRequestData(TenPayV3Info.AppId, TenPayV3Info.MchId, "", nonceStr, "", TenPayV3Info.Key, "MD5"); //var result = TenPayV3.OrderQuery(data); //var res = XDocument.Parse(result); var result = TenPayV3.OrderQuery(requestData); var res = XDocument.Parse(result.ResultXml); string openid = res.Element("xml").Element("sign").Value; return(Content(openid)); }
public ActionResult OrderQuery(string transactionId, string orderNumber) { string nonceStr = TenPayV3Util.GetNoncestr(); ////设置订单参数 TenPayV3OrderQueryRequestData data = new TenPayV3OrderQueryRequestData(WxOpenAppId, TenPayV3_MchId, transactionId, nonceStr, orderNumber, TenPayV3_Key); OrderQueryResult result = TenPayV3.OrderQuery(data); return(new JsonResult(HttpResult.Success(result))); }
public ActionResult OrderQuery() { string nonceStr = TenPayV3Util.GetNoncestr(); TenPayV3OrderQueryRequestData data = new TenPayV3OrderQueryRequestData(TenPayV3Info.AppId, TenPayV3Info.MchId, "微信订单号", nonceStr, "商家订单号", TenPayV3Info.Key); var result = TenPayV3.OrderQuery(data); string openid = result.openid; return(Content(openid)); }
public async Task <OrderQueryResult> OrderQueryAsync(string WXPayBillno, SystemConfigs tencentparam) { TenPayV3Info TenPayV3Info = new TenPayV3Info(tencentparam.AppID, tencentparam.AppSecret, tencentparam.TenPayMchId, tencentparam.TenPayKey, tencentparam.TenPayNotify, tencentparam.TenPayWxOpenNotify); string nonceStr = TenPayV3Util.GetNoncestr(); TenPayV3OrderQueryRequestData querydata = new TenPayV3OrderQueryRequestData(TenPayV3Info.AppId, TenPayV3Info.MchId, "", nonceStr, WXPayBillno, TenPayV3Info.Key); var tencentpayresult = await TenPayV3.OrderQueryAsync(querydata); return(tencentpayresult); }
private void OrderQueryTest(string sandBoxKey, string nonceStr, string transactionId, string outTradeNo) { var dataInfo = new TenPayV3OrderQueryRequestData(base._appId, base._mchId, transactionId, nonceStr, outTradeNo, sandBoxKey); var result = TenPayV3.OrderQuery(dataInfo); Console.WriteLine(result.ResultXml); Assert.IsTrue(result.IsReturnCodeSuccess()); //下载对账单 DownloadBillTest(sandBoxKey, nonceStr); }
public async Task <IActionResult> OrderQueryGet([FromQuery] OrderQueryModel orderQuery) { if (string.IsNullOrWhiteSpace(orderQuery.NonceStr)) { orderQuery.NonceStr = TenPayV3Util.GetNoncestr(); } if (string.IsNullOrWhiteSpace(orderQuery.OutTradeNo) && string.IsNullOrWhiteSpace(orderQuery.TransactionId)) { return(BadRequest("需要OutTradeNo,TransactionId之一")); } orderQuery.SignType = "MD5"; TenPayV3OrderQueryRequestData datainfo = new TenPayV3OrderQueryRequestData( TenPyConfigRead.AppId, TenPyConfigRead.MchId, orderQuery.TransactionId, orderQuery.NonceStr, orderQuery.OutTradeNo, TenPyConfigRead.Key); var result = await TenPayV3.OrderQueryAsync(datainfo); var log = _logger.CreateLogger("订单查询"); if (result.return_code == "FAIL") { log.LogError($"商家订单号(OutTradeNo):{orderQuery.OutTradeNo} 通讯标记(return_code):{result.return_code} {result.return_msg}"); } if (result.result_code == "FAIL") { log.LogError($"商家订单号(OutTradeNo):{orderQuery.OutTradeNo} 业务结果(result_code):{result.result_code}\n{result.err_code}:{result.err_code_des}"); } //string openid = res.Element("xml").Element("sign").Value; return(Ok(new { respond = result, request = orderQuery })); }
public HttpResponseMessage Notify() { var respData = new Dictionary <string, string>(); try { // 读取微信支付返回结果 var resp = ReadFromInputStream(); var dict = ReadXml(resp); LogHelper.Info("\n\nnotify 接收内容:\n" + JsonHelper.Serialize(dict)); // 微信订单号 string transactionId, tradeNo; dict.TryGetValue("transaction_id", out transactionId); dict.TryGetValue("out_trade_no", out tradeNo); #region 1. 检查支付结果中transaction_id是否存在 if (string.IsNullOrEmpty(transactionId)) { //若transaction_id不存在,则立即返回结果给微信支付后台 respData.Add("return_code", "FAIL"); respData.Add("return_msg", "支付结果中微信订单号不存在"); var xml = DictToXml(respData); LogHelper.Info("\n\nnotify 响应内容:\n" + xml); return(RetMessage(xml)); } #endregion #region 2. 同步查询订单,判断订单真实性 var appId = ConfigurationManager.AppSettings["appId"]; var mchId = ConfigurationManager.AppSettings["mchId"]; var key = ConfigurationManager.AppSettings["appKey"]; var reqData = new TenPayV3OrderQueryRequestData(appId, mchId, transactionId, TenPayV3Util.GetNoncestr(), "", key); var queryData = TenPayV3.OrderQuery(reqData); if (queryData.result_code == "SUCCESS" && queryData.result_code == "SUCCESS") {//查询订单成功 // 业务逻辑:更新订单状态 if (_orderService.UpdateOrderStatus(tradeNo, (int)Enums.OrderStatus.未发货)) { respData.Add("return_code", "SUCCESS"); respData.Add("return_msg", "OK"); var xml = DictToXml(respData); LogHelper.Info("\n\nnotify 响应内容:\n" + xml); return(RetMessage(xml)); } else { respData.Add("return_code", "FAIL"); respData.Add("return_msg", "订单状态修改失败"); var xml = DictToXml(respData); LogHelper.Info("\n\nnotify 响应内容:\n" + xml); return(RetMessage(xml)); } } else {//若订单查询失败,则立即返回结果给微信支付后台 respData.Add("return_code", "FAIL"); respData.Add("return_msg", "订单查询失败"); var xml = DictToXml(respData); LogHelper.Info("\n\nnotify 响应内容:\n" + xml); return(RetMessage(xml)); } #endregion } catch (Exception ex) { LogHelper.Info("\n\nnotify 异常:\n", ex); respData.Add("return_code", "FAIL"); respData.Add("return_msg", "系统异常:" + ex.Message); var xml = DictToXml(respData); return(RetMessage(xml)); } }
/// <summary> /// 订单查询 /// </summary> /// <param name="requestDto"></param> /// <returns></returns> public async Task <OrderQueryResult> OrderQuery(GetWeiXinPaymentBeforeRequestDto requestDto) { TenPayV3OrderQueryRequestData data = new TenPayV3OrderQueryRequestData(AppID, MerchantNumber, "wx0818171559664608e39c01920461325676", GetRandomString(16, false, true, true, false, string.Empty), "GDSPDD_IKJRMNLCCJ20190408181709", MerchantSecret); return(TenPayV3.OrderQuery(data)); }
/// <summary> /// 微信支付的结果校验 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void timerDo2_Tick(object sender, ElapsedEventArgs e) { t2.Enabled = false; Console.WriteLine("开始支付查询"); LogHelper.WriteLog(typeof(string), "开始支付查询"); try { var time = DateTime.Now; if (time.Second % 3 == 0) { context_m2.Dispose(); context_m2 = new MSZ(); //t.Enabled = false; var list = context_m2.BillState.Where(x => x.State == 0).ToList(); if (list.Count == 0) { LogHelper.WriteLog(typeof(string), "无数据跳出支付查询"); t2.Enabled = true; return; } else { LogHelper.WriteLog(typeof(FrmMain), "进行支付遍历"); for (int i = 0; i < list.Count; i++) { var entity = list[i]; string nonceStr = TenPayV3Util.GetNoncestr(); TenPayV3OrderQueryRequestData order = new TenPayV3OrderQueryRequestData(entity.Appid, entity.Mch_id, null, nonceStr, entity.BillNum, entity.Key, "MD5"); var result = TenPayV3.OrderQuery(order); LogHelper.WriteLog(typeof(FrmMain), "返回结果:" + JsonConvert.SerializeObject(result)); var bill = context_m2.BillState.FirstOrDefault(x => x.BillNum == entity.BillNum); if (result.return_code == "SUCCESS" && result.result_code == "SUCCESS" && result.trade_state == "SUCCESS") { LogHelper.WriteLog(typeof(FrmMain), "金额:" + result.cash_fee); if (result.trade_state == "SUCCESS") { Console.WriteLine("SUCCESS"); bill.State = 1; Console.WriteLine("保存:" + context_m2.SaveChanges()); var sbill = context_m2.StudentBill.FirstOrDefault(x => x.StudentBillUUID == bill.SBillUUID.Value); LogHelper.WriteLog(typeof(FrmMain), "钱:" + sbill.OrderMoney); LogHelper.WriteLog(typeof(FrmMain), "钱2:" + (decimal.Parse(result.cash_fee))); LogHelper.WriteLog(typeof(FrmMain), "愿订单时间:" + DateTime.Parse(sbill.OederTime)); if ((string.IsNullOrEmpty(sbill.OrderNum)) || ((!string.IsNullOrEmpty(sbill.OrderNum)) && sbill.OrderNum != result.out_trade_no && DateTime.Parse(sbill.OederTime) < DateTime.ParseExact(result.time_end, "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture))) { LogHelper.WriteLog(typeof(string), "进入条件,修改数据"); sbill.OrderMoney = sbill.OrderMoney + (decimal.Parse(result.cash_fee) / 100); sbill.OrderNum = result.out_trade_no; sbill.OederTime = DateTime.ParseExact(result.time_end, "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture).ToString("yyyy-MM-dd HH:mm:ss"); sbill.SystemUserUUID = context_m2.SystemUser.FirstOrDefault(x => x.Wechat == result.openid).SystemUserUUID; } } else if (result.trade_state == "REFUND") { Console.WriteLine("REFUND"); bill.State = 2; } else if (result.trade_state == "NOTPAY") { Console.WriteLine("NOTPAY"); bill.State = 3; } else if (result.trade_state == "CLOSED") { Console.WriteLine("CLOSED"); bill.State = 4; } else if (result.trade_state == "REVOKED") { Console.WriteLine("REVOKED"); bill.State = 5; } else if (result.trade_state == "USERPAYING") { Console.WriteLine("USERPAYING"); bill.State = 0; } else if (result.trade_state == "PAYERROR") { Console.WriteLine("PAYERROR"); bill.State = 6; } var num = context_m2.SaveChanges(); Console.WriteLine("保存" + num); } //else //{ // bill.State = -1; // context_m.SaveChanges(); //} } } } else { LogHelper.WriteLog(typeof(string), "非时段跳出"); t2.Enabled = true; return; } } catch (Exception ex) { Console.WriteLine(ex.Message); LogHelper.WriteLog(typeof(string), "支付查询错误:" + ex.Message); } finally { t2.Enabled = true; } }