/// <summary> /// 企业支付TEST /// </summary> /// <param name="openId">openId</param> /// <param name="orderId">订单号</param> /// <param name="amount">金额</param> /// <param name="desc">付款描述信息</param> /// <returns></returns> public ContentResult QyPayTest(string openId, string orderId, decimal amount, string desc) { //创建支付应答对象 RequestHandler packageReqHandler = new RequestHandler(null); var sp_billno = DateTime.Now.ToString("HHmmss") + TenPayV3Util.BuildRandomStr(28); var nonceStr = TenPayV3Util.GetNoncestr(); //创建请求统一订单接口参数 packageReqHandler.SetParameter("mch_appid", AppId); packageReqHandler.SetParameter("mchid", Mchid); packageReqHandler.SetParameter("nonce_str", nonceStr); packageReqHandler.SetParameter("partner_trade_no", orderId); packageReqHandler.SetParameter("openid", openId); packageReqHandler.SetParameter("check_name", "NO_CHECK");//不校验用户姓名 packageReqHandler.SetParameter("desc", desc); packageReqHandler.SetParameter("amount", (amount * 100).ToString()); packageReqHandler.SetParameter("spbill_create_ip", "101.200.233.5");//TODO:替换成可配置文件 string sign = packageReqHandler.CreateMd5Sign("key", PayKey); packageReqHandler.SetParameter("sign", sign); string data = packageReqHandler.ParseXML(); //证书相关 var cert = new X509Certificate2(SSLCERT_PATH, SSLCERT_PASSWORD); try { //调用统一订单接口 var result = TenPayV3.QYPay(data, cert); logger.Info(result); var unifiedorderRes = XDocument.Parse(result); string return_code = unifiedorderRes.Element("xml").Element("return_code").Value; return(Content(return_code)); } catch (Exception e) { logger.Error(e); return(Content("-1")); } }
/// <summary> /// 企业支付 /// </summary> /// <param name="openId">openId</param> /// <param name="payCode">支付ID,订单号+支付日志ID</param> /// <param name="amount">金额</param> /// <param name="desc">付款描述信息</param> /// <returns></returns> public static string QYPay(string openId, string payCode, decimal amount, string desc) { var payStatus = 1; //创建支付应答对象 RequestHandler packageReqHandler = new RequestHandler(null); var nonceStr = TenPayV3Util.GetNoncestr(); //创建请求接口参数 packageReqHandler.SetParameter("mch_appid", AppId); packageReqHandler.SetParameter("mchid", Mchid); packageReqHandler.SetParameter("nonce_str", nonceStr); packageReqHandler.SetParameter("partner_trade_no", payCode); packageReqHandler.SetParameter("openid", openId); packageReqHandler.SetParameter("check_name", "NO_CHECK");//不校验用户姓名 packageReqHandler.SetParameter("desc", desc); packageReqHandler.SetParameter("amount", Convert.ToInt32(amount * 100).ToString()); packageReqHandler.SetParameter("spbill_create_ip", IP); string sign = packageReqHandler.CreateMd5Sign("key", PayKey); packageReqHandler.SetParameter("sign", sign); string data = packageReqHandler.ParseXML(); //证书相关 var cert = new X509Certificate2(SSLCERT_PATH, SSLCERT_PASSWORD); var access = new WeixinPayLogDataAccess(); var weixinService = new WeiXinService(access); try { //调用企业支付接口 var result = TenPayV3.QYPay(data, cert); logger.Info("企业支付返回信息:" + result); var unifiedorderRes = XDocument.Parse(result); string return_code = unifiedorderRes.Element("xml").Element("return_code").Value; if (return_code == "SUCCESS") { payStatus = 1; } else { payStatus = 0; } return(return_code); } catch (Exception e) { logger.Error(e); //payStatus = 0; //var paylog = new WeixinPayLog() //{ // OrderId = orderId, // WxOpenId = openId, // Description = desc, // Amount = amount, // Status = payStatus, // CreateTime = DateTime.Now //}; //weixinService.InsertWeixinPayLog(paylog); return("ERROR"); } }