public ActionResult MeterRecharge(string totalfee) { object objResult = ""; string strTotal_fee = totalfee; string strFee = (double.Parse(strTotal_fee) * 100).ToString(); //若传递了相关参数,则调统一下单接口,获得后续相关接口的入口参数 jsApiPay.openid = Session["openid"].ToString(); jsApiPay.total_fee = int.Parse(strFee); //JSAPI支付预处理 try { string strBody = "菲爱仕支付"; //商品描述 WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult(strBody); WxPayData wxJsApiParam = jsApiPay.GetJsApiParameters2(); //获取H5调起JS API参数,注意,这里引用了官方的demo的方法,由于原方法是返回string的,所以,要对原方法改为下面的代码,代码在下一段 ModelForOrder aOrder = new ModelForOrder() { appId = wxJsApiParam.GetValue("appId").ToString(), nonceStr = wxJsApiParam.GetValue("nonceStr").ToString(), packageValue = wxJsApiParam.GetValue("package").ToString(), paySign = wxJsApiParam.GetValue("paySign").ToString(), timeStamp = wxJsApiParam.GetValue("timeStamp").ToString(), msg = "成功下单,正在接入微信支付." }; objResult = aOrder; } catch (Exception ex) { ModelForOrder aOrder = new ModelForOrder() { appId = "", nonceStr = "", packageValue = "", paySign = "", timeStamp = "", msg = "下单失败,请重试,若多次失败,请联系管理员." }; objResult = aOrder; } return(Json(objResult)); }
public ActionResult MeterRecharge(string orderNo) { object objResult = ""; if (string.IsNullOrWhiteSpace(orderNo)) { ModelForOrder aOrder = new ModelForOrder() { appId = "", nonceStr = "", packageValue = "", paySign = "", timeStamp = "", msg = "下单失败,请重试,若多次失败,请联系管理员." }; objResult = aOrder; return(Json(objResult)); } var checkSession = RediToLogin(1); if (checkSession.Code == 110) { return(Json(checkSession)); } int userId = 0; int.TryParse(Session[SessionKeys.USERID].ToString(), out userId); var user = MembershipService.GetUserById(userId); if (user == null) { ModelForOrder aOrder = new ModelForOrder() { appId = "", nonceStr = "", packageValue = "", paySign = "", timeStamp = "", msg = "下单失败,请重试,若多次失败,请联系管理员1." }; objResult = aOrder; return(Json(objResult)); } var account = AccountService.GetByUserId(user.Id); if (account == null) { ModelForOrder aOrder = new ModelForOrder() { appId = "", nonceStr = "", packageValue = "", paySign = "", timeStamp = "", msg = "下单失败,请重试,若多次失败,请联系管理员2." }; objResult = aOrder; return(Json(objResult)); } var orderNoRec = IOrderService.GetOrderNo(orderNo); if (orderNoRec == null) { ModelForOrder aOrder = new ModelForOrder() { appId = "", nonceStr = "", packageValue = "", paySign = "", timeStamp = "", msg = "下单失败,请重试,若多次失败,请联系管理员3." }; objResult = aOrder; return(Json(objResult)); } //if (orderNoRec.amount + orderNoRec.freight != totalfee) //{ // ModelForOrder aOrder = new ModelForOrder() // { // appId = "", // nonceStr = "", // packageValue = "", // paySign = "", // timeStamp = "", // msg = "下单失败,金额不正确,请重试,若多次失败,请联系管理员." // }; // objResult = aOrder; // return Json(objResult); //} //若传递了相关参数,则调统一下单接口,获得后续相关接口的入口参数 if (string.IsNullOrWhiteSpace(account.openID)) { ModelForOrder aOrder = new ModelForOrder() { appId = "", nonceStr = "", packageValue = "", paySign = "", timeStamp = "", msg = "你还没有授权,请重新登录授权" }; objResult = aOrder; return(Json(objResult)); } jsApiPay.openid = account.openID; jsApiPay.total_fee = (int)(orderNoRec.amount + orderNoRec.freight * 100); //JSAPI支付预处理 try { WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult(orderNo); WxPayData wxJsApiParam = jsApiPay.GetJsApiParameters2();//获取H5调起JS API参数,注意,这里引用了官方的demo的方法,由于原方法是返回string的,所以,要对原方法改为下面的代码,代码在下一段 ModelForOrder aOrder = new ModelForOrder() { appId = wxJsApiParam.GetValue("appId").ToString(), nonceStr = wxJsApiParam.GetValue("nonceStr").ToString(), packageValue = wxJsApiParam.GetValue("package").ToString(), paySign = wxJsApiParam.GetValue("paySign").ToString(), timeStamp = wxJsApiParam.GetValue("timeStamp").ToString(), msg = "成功下单,正在接入微信支付." }; objResult = aOrder; WxPayAPI.Log.Debug(this.GetType().ToString(), "wxJsApiParam : " + wxJsApiParam + ",openid:" + jsApiPay.openid + ",orderNo:" + orderNo + ",appId:" + aOrder.appId + ",nonceStr:" + aOrder.nonceStr + ",packageValue:" + aOrder.packageValue + ",paySign:" + aOrder.paySign + ",timeStamp:" + aOrder.timeStamp); } catch (Exception ex) { WxPayAPI.Log.Error(this.GetType().ToString(), ex.Message.ToString()); ModelForOrder aOrder = new ModelForOrder() { appId = "", nonceStr = "", packageValue = "", paySign = "", timeStamp = "", msg = "下单失败,请重试,若多次失败,请联系管理员." }; objResult = aOrder; } return(Json(objResult)); }