public IActionResult OnPostBuyCourse(string priceCode) { ResultObject <ECoursePrice> result = new ResultObject <ECoursePrice>(); try { var us = GetUserSession(false); if (us != null) { if (string.IsNullOrEmpty(us.Phone)) { result.IntMsg = -2; result.ErrorMsg = "请先绑定您的手机号"; return(new JsonResult(result)); } ECoursePrice eCoursePrice = _CourseSrv.GetCoursePrice(priceCode); result.Entity = eCoursePrice; } else { result.IntMsg = -1; result.ErrorMsg = "请先重新登录"; } } catch (EduException eex) { result.ErrorMsg = eex.Message; } catch (Exception ex) { result.ErrorMsg = "购买失败,请联系客服!"; NLogHelper.ErrorTxt($"购买课时[OnPostBuyCourse]:{ex.Message}"); } return(new JsonResult(result)); }
public WxPayOrder JSPay(int feeAmt, int courseTime) { WxPayOrder wxOrder = null; var us = GetUserSession(false); try { if (us != null) { string notifyUrl = "http://edu.iqiban.cn/api/wxPay/Notify"; JsApiPay jsApiPay = new JsApiPay(); jsApiPay.openid = us.OpenId; jsApiPay.total_fee = feeAmt * 100; string OrderNo = WxPayApi.GenerateOutTradeNo(); var desc = "扫码支付学费"; if (courseTime > 0) { desc += $"[{courseTime}]课时"; } /* 生成 系统订单 */ ECoursePrice eCoursePrice = _CourseSrv.GetCoursePrice("VIP"); eCoursePrice.Qty = courseTime; eCoursePrice.Price = feeAmt; var order = _BusinessSrv.PayCourseOrder(us.OpenId, eCoursePrice); WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult(desc, notifyUrl, OrderNo); WxPayData wxJsApiParam = jsApiPay.GetJsApiParameters(); wxOrder = new WxPayOrder() { appId = wxJsApiParam.GetValue("appId").ToString(), nonceStr = wxJsApiParam.GetValue("nonceStr").ToString(), package = wxJsApiParam.GetValue("package").ToString(), paySign = wxJsApiParam.GetValue("paySign").ToString(), signType = "MD5", timeStamp = wxJsApiParam.GetValue("timeStamp").ToString(), OrderNo = OrderNo, EduOrderNo = order.OrderId }; } else { wxOrder = new WxPayOrder() { IntMsg = -1, IsSuccess = false, ErrorMsg = "请重新登陆", }; } } catch (Exception ex) { NLogHelper.ErrorTxt($"JSPay:{ex.Message}"); wxOrder = new WxPayOrder() { IsSuccess = false, ErrorMsg = ex.Message, }; } return(wxOrder); }