public JsonResult GetPaySign(string openid, string revenueFee, string totalFee, Guid personVguid, Guid pushContentVguid, int revenueType) { var revenueReceivable = decimal.Parse(revenueFee); //获取司机支付应付金额 var totalFeeDouble = double.Parse(totalFee); //double totalFeeInt = tatol + driverPayfee; //包含手续费的总钱数 var totalFeeInt = (int)Math.Round(totalFeeDouble * 100); string nonceStr = WxPayApi.GenerateNonceStr(); //随机字符串,不长于32位 string outTradeNo = WxPayApi.GenerateOutTradeNo(); //订单号:32个字符内、不得重复 string spbillCreateIp = WxPayConfig.GetIP(System.Web.HttpContext.Current); //用户端IP double total_fee = totalFeeInt; //订单金额(单位:分),整数 string trade_type = "JSAPI"; //JSAPI,NATIVE,APP,WAP #region 调用统一支付接口获得prepay_id(预支付交易会话标识) WxPayData wxPayData = new WxPayData(); wxPayData.SetValue("appid", WxPayConfig.APPID); //appid wxPayData.SetValue("body", WxPayConfig.BODY); //支付描述 wxPayData.SetValue("mch_id", WxPayConfig.MCHID); //商户id wxPayData.SetValue("nonce_str", nonceStr); //随机字符串 wxPayData.SetValue("notify_url", WxPayConfig.NOTIFY_URL); //回调地址 wxPayData.SetValue("openid", openid); //openid wxPayData.SetValue("out_trade_no", outTradeNo); //订单号 wxPayData.SetValue("spbill_create_ip", spbillCreateIp); //客户端ip地址 wxPayData.SetValue("total_fee", total_fee.ToString()); //订单金额(单位:分),整数 wxPayData.SetValue("trade_type", trade_type); //交易类型 wxPayData.SetValue("sign", wxPayData.MakeSign()); //签名 string data = wxPayData.ToXml(); string prepayId = WeChatTools.UnifiedOrder(data); #endregion #region 支付参数 string timeStamp = WxPayApi.GenerateTimeStamp(); nonceStr = WxPayApi.GenerateNonceStr(); WxPayData wxPaySign = new WxPayData(); wxPaySign.SetValue("appId", WxPayConfig.APPID); wxPaySign.SetValue("timeStamp", timeStamp); wxPaySign.SetValue("nonceStr", nonceStr); wxPaySign.SetValue("package", string.Format("prepay_id={0}", prepayId)); wxPaySign.SetValue("signType", "MD5"); string paysign = wxPaySign.MakeSign(); wxPaySign.SetValue("paySign", paysign); #endregion var paymentHistoryInfo = new Business_PaymentHistory_Information(); paymentHistoryInfo.RevenueReceivable = revenueReceivable; paymentHistoryInfo.PaymentPersonnel = personVguid; paymentHistoryInfo.PaymentAmount = decimal.Parse(totalFee); paymentHistoryInfo.VGUID = Guid.NewGuid(); paymentHistoryInfo.RevenueType = revenueType; paymentHistoryInfo.WeChatPush_VGUID = pushContentVguid; paymentHistoryInfo.Remarks = outTradeNo; //商户订单号 paymentHistoryInfo.CreateDate = DateTime.Now; paymentHistoryInfo.CreateUser = "******"; paymentHistoryInfo.PayDate = DateTime.Now; paymentHistoryInfo.PaymentStatus = "3"; bool addsuccess = _weChatRevenueLogic.AddPaymentHistory(paymentHistoryInfo); return(Json(new { success = addsuccess, data = wxPaySign.GetValues() }, JsonRequestBehavior.AllowGet)); }
public JsonResult GetPaySign(string openid) { string nonceStr = WxPayApi.GenerateNonceStr(); //随机字符串,不长于32位 string outTradeNo = WxPayApi.GenerateOutTradeNo(); //订单号:32个字符内、不得重复 string spbillCreateIp = WxPayConfig.GetIP(System.Web.HttpContext.Current); //用户端IP int total_fee = 1; //订单金额(单位:分),整数 string trade_type = "JSAPI"; //JSAPI,NATIVE,APP,WAP #region 调用统一支付接口获得prepay_id(预支付交易会话标识) WxPayData wxPayData = new WxPayData(); wxPayData.SetValue("appid", WxPayConfig.APPID); //appid wxPayData.SetValue("body", WxPayConfig.BODY); //支付描述 wxPayData.SetValue("mch_id", WxPayConfig.MCHID); //商户id wxPayData.SetValue("nonce_str", nonceStr); //随机字符串 wxPayData.SetValue("notify_url", WxPayConfig.NOTIFY_URL); //回调地址 wxPayData.SetValue("openid", openid); //openid wxPayData.SetValue("out_trade_no", outTradeNo); //订单号 wxPayData.SetValue("spbill_create_ip", spbillCreateIp); //客户端ip地址 wxPayData.SetValue("total_fee", total_fee.ToString()); //订单金额(单位:分),整数 wxPayData.SetValue("trade_type", trade_type); //交易类型 wxPayData.SetValue("sign", wxPayData.MakeSign()); //签名 string data = wxPayData.ToXml(); string prepayId = WeChatTools.UnifiedOrder(data); #endregion #region 支付参数 string timeStamp = WxPayApi.GenerateTimeStamp(); nonceStr = WxPayApi.GenerateNonceStr(); WxPayData wxPaySign = new WxPayData(); wxPaySign.SetValue("appId", WxPayConfig.APPID); wxPaySign.SetValue("timeStamp", timeStamp); wxPaySign.SetValue("nonceStr", nonceStr); wxPaySign.SetValue("package", string.Format("prepay_id={0}", prepayId)); wxPaySign.SetValue("signType", "MD5"); string paysign = wxPaySign.MakeSign(); wxPaySign.SetValue("paySign", paysign); #endregion return(Json(new { data = wxPaySign.GetValues(), openid = openid }, JsonRequestBehavior.AllowGet)); }