public void UnifiedOrder(string request) { try { var requestModel = JSONHelper.Deserialize <UnifiedOrderEntity>(request); //通过wid获取公众号的信息 var wxModel = new BLL.wx_userweixin().GetModel(requestModel.wid); var wxPayInfo = new BLL.wx_payment_wxpay().GetModelByWid(requestModel.wid); var packageReqHandler = new RequestHandler(null); //初始化 packageReqHandler.Init(); var timeStamp = TenPayV3Util.GetTimestamp(); var nonceStr = TenPayV3Util.GetNoncestr(); //设置package订单参数 packageReqHandler.SetParameter("appid", wxModel.AppId); //公众账号ID packageReqHandler.SetParameter("mch_id", wxPayInfo.mch_id); //商户号 packageReqHandler.SetParameter("nonce_str", nonceStr); //随机字符串 packageReqHandler.SetParameter("body", requestModel.body); //商品描述 packageReqHandler.SetParameter("attach", requestModel.PayModuleID.ToString()); //向微信传递系统支付模块ID packageReqHandler.SetParameter("out_trade_no", requestModel.out_trade_no); //商家订单号 //debug模式下,穿的单位为分 packageReqHandler.SetParameter("total_fee", PayHelper.IsDebug ? requestModel.total_fee.ToString() : (requestModel.total_fee * 100).ToString()); //packageReqHandler.SetParameter("spbill_create_ip", wxPayInfo); //用户的公网ip,不是商户服务器IP packageReqHandler.SetParameter("notify_url", HttpContext.Current.Request.Url.ToString().ToLower().Replace("wechatservice.asmx", "PayNotify.aspx")); //接收财付通通知的URL packageReqHandler.SetParameter("trade_type", TenPayV3Type.JSAPI.ToString()); //交易类型 packageReqHandler.SetParameter("openid", requestModel.openid); //用户的openId var sign = packageReqHandler.CreateMd5Sign("key", wxPayInfo.paykey); packageReqHandler.SetParameter("sign", sign); //签名 var data = packageReqHandler.ParseXML(); //同意下单,获取到预付订单号 var unifiedOrderResult = TenPayV3Helper.Unifiedorder(data); var rtnUnifiedOrderResult = new UnifiedOrderResponse(unifiedOrderResult); //下单成功,保存下单对象 if (rtnUnifiedOrderResult.IsSuccess) { var paymentInfo = new PaymentInfo { PaymentId = Guid.NewGuid(), Wid = requestModel.wid, CreateTime = DateTime.Now, Description = "无", ShopName = requestModel.body, ModuleName = ((PayModuleEnum)requestModel.PayModuleID).ToString(), OrderCode = requestModel.out_trade_no, OrderId = requestModel.OrderId, Pid = requestModel.openid, PayAmount = requestModel.total_fee, WXOrderCode = rtnUnifiedOrderResult.prepay_id, ModifyTime = DateTime.Now, Status = 0 }; paymentInfo.Add(); } //var jsApiParameters = rtnUnifiedOrderResult.GetJsApiParameters("4A5E7B87F3324A6DA22E55FDC12150B6"); var jsApiParameters = rtnUnifiedOrderResult.GetJsApiParameters(wxPayInfo.paykey); HttpContext.Current.Response.Write(AjaxResult.Success(jsApiParameters)); } catch (Exception exception) { HttpContext.Current.Response.Write(AjaxResult.Error(exception.Message)); } }