public ActionResult Index() { Com.WxPayAPI.Log.Info(this.GetType().ToString(), "WxPayController Index"); string wxJsApiParam = ""; ErrorMessage errorMessage = ErrorMessage.失败; int payType = 0; string orderId = ""; int money = 0; int userType = 0; if (PayContext.VerifyPayOrderInfo(1, out errorMessage, out payType, out orderId, out money, out userType)) { string host = StringHelper.GetHost(); string path = Request.Path; string queryString = Request.Url.Query; Com.WxPayAPI.JsApiPay jsApiPay = new Com.WxPayAPI.JsApiPay(host, path, queryString); string openid = UrlParameterHelper.GetParams("openid"); //检测是否给当前页面传递了相关参数 if (string.IsNullOrEmpty(openid) || money <= 0) { Response.Write("<span style='color:#FF0000;font-size:20px'>" + "页面传参出错,请返回重试" + "</span>"); Com.WxPayAPI.Log.Error(this.GetType().ToString(), "This page have not get params, cannot be inited, exit..."); return(View()); } //若传递了相关参数,则调统一下单接口,获得后续相关接口的入口参数 jsApiPay.OpenId = openid; jsApiPay.Total_Fee = money; //JSAPI支付预处理 try { string body = string.Concat(SiteSection.Html.SiteName, "-", SiteSection.Html.FeeName); Com.WxPayAPI.WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult(body, orderId); wxJsApiParam = jsApiPay.GetJsApiParameters();//获取H5调起JS API参数 Com.WxPayAPI.Log.Debug(this.GetType().ToString(), "wxJsApiParam : " + wxJsApiParam); //在页面上显示订单信息 //Response.Write("<span style='color:#00CD00;font-size:20px'>订单详情:</span><br/>"); //Response.Write("<span style='color:#00CD00;font-size:20px'>" + unifiedOrderResult.ToPrintStr() + "</span>"); } catch { Response.Write("<span style='color:#FF0000;font-size:20px'>" + "下单失败,请返回重试" + "</span>"); } } ViewData.Model = wxJsApiParam; return(View()); }
private bool GetOrderToken(int payType, string merId, int money, out string otn, int feeConfigId = 0, string brief = "", int userType = 0) { otn = ""; string orderId = ""; if (GetOrderId(payType, merId, money, out orderId, feeConfigId, brief, userType)) { otn = PayContext.EncryptOrderId(orderId, money); } return(!string.IsNullOrEmpty(otn)); }
public ActionResult Index1() { Com.WxPayAPI2.Log.Info(this.GetType().ToString(), "Native pay mode 2 url is producing..."); string url = ""; ErrorMessage errorMessage = ErrorMessage.失败; int payType = 0; string orderId = ""; int money = 0; int userType = 0; if (PayContext.VerifyPayOrderInfo(1, out errorMessage, out payType, out orderId, out money, out userType)) { Com.WxPayAPI2.WxPayData data = new Com.WxPayAPI2.WxPayData(); data.SetValue("body", string.Concat(SiteSection.Html.SiteName, "-", SiteSection.Html.FeeName)); //商品描述 data.SetValue("attach", ""); //附加数据 data.SetValue("out_trade_no", orderId); //随机字符串 data.SetValue("total_fee", money); //总金额 data.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss")); //交易起始时间 data.SetValue("time_expire", DateTime.Now.AddMinutes(10).ToString("yyyyMMddHHmmss")); //交易结束时间 data.SetValue("goods_tag", ""); //商品标记 data.SetValue("trade_type", "NATIVE"); //交易类型 data.SetValue("product_id", "1"); //商品ID Com.WxPayAPI2.WxPayData result = Com.WxPayAPI2.WxPayApi.UnifiedOrder(data); //调用统一下单接口 if (string.Compare(result.GetValue("return_code").ToString(), "SUCCESS", true) == 0) { string code_url = result.GetValue("code_url").ToString();//获得统一下单接口返回的二维码链接 Com.WxPayAPI2.Log.Info(this.GetType().ToString(), "Get native pay mode 2 url : " + code_url); if (!string.IsNullOrEmpty(code_url)) { url = "/WxPay/MakeQRCode?data=" + HttpUtility.UrlEncode(code_url); } } } ViewData.Model = url; ViewBag.OrderId = orderId; return(View()); }
public AccountRpository(PayContext dbContext) : base(dbContext) { }
public CustomerLoginLogRpository(PayContext dbContext) : base(dbContext) { }
public RefundOrderRpository(PayContext dbContext) : base(dbContext) { }
public AdminLoginLogRpository(PayContext dbContext) : base(dbContext) { }
public void Index() { ErrorMessage errorMessage = ErrorMessage.失败; string url = StringHelper.GetHost(); if (string.IsNullOrEmpty(url)) { errorMessage = ErrorMessage.订单初始化失败; return; } int payType = 0; string orderId = ""; int money = 0; int userType = 0; if (PayContext.VerifyPayOrderInfo(1, out errorMessage, out payType, out orderId, out money, out userType)) { //支付宝网关地址 string GATEWAY_NEW = "http://wappaygw.alipay.com/service/rest.htm?"; #region //返回格式, 必填,不需要修改 string format = "xml"; //返回格式, 必填,不需要修改 string v = "2.0"; //请求号, 必填,须保证每次请求都是唯一 string req_id = DateTime.Now.ToString("yyyyMMddHHmmss"); //req_data详细信息 //服务器异步通知页面路径 ,需http://格式的完整路径,不允许加?id=123这类自定义参数 string notify_url = string.Format("http://{0}/alipay/notify", url); //页面跳转同步通知页面路径, 需http://格式的完整路径,不允许加?id=123这类自定义参数 string call_back_url = string.Format("http://{0}/alipay/result", url); //操作中断返回地址, 用户付款中途退出返回商户的地址。需http://格式的完整路径,不允许加?id=123这类自定义参数 string merchant_url = string.Format("http://{0}/order/recharge", url); //卖家支付宝帐户 string seller_email = Config.SellerEmail; //商户网站订单系统中唯一订单号,必填 //订单名称 必填 string subject = GetName(money); //付款金额(单位:元) 必填 string total_fee = GetFee(money); //请求业务参数详细 必填 string req_dataToken = "<direct_trade_create_req><notify_url>" + notify_url + "</notify_url><call_back_url>" + call_back_url + "</call_back_url><seller_account_name>" + seller_email + "</seller_account_name><out_trade_no>" + orderId + "</out_trade_no><subject>" + subject + "</subject><total_fee>" + total_fee + "</total_fee><merchant_url>" + merchant_url + "</merchant_url></direct_trade_create_req>"; //把请求参数打包成数组 Dictionary <string, string> sParaTempToken = new Dictionary <string, string>(); sParaTempToken.Add("partner", Config.Partner); sParaTempToken.Add("_input_charset", Config.Input_charset.ToLower()); sParaTempToken.Add("sec_id", Config.Sign_type.ToUpper()); sParaTempToken.Add("service", "alipay.wap.trade.create.direct"); sParaTempToken.Add("format", format); sParaTempToken.Add("v", v); sParaTempToken.Add("req_id", req_id); sParaTempToken.Add("req_data", req_dataToken); //建立请求 string sHtmlTextToken = Submit.BuildRequest(GATEWAY_NEW, sParaTempToken); //URLDECODE返回的信息 Encoding code = Encoding.GetEncoding(Config.Input_charset); sHtmlTextToken = HttpUtility.UrlDecode(sHtmlTextToken, code); //解析远程模拟提交后返回的信息 Dictionary <string, string> dicHtmlTextToken = Submit.ParseResponse(sHtmlTextToken); //获取token string request_token = dicHtmlTextToken["request_token"]; #endregion //业务详细 必填 string req_data = "<auth_and_execute_req><request_token>" + request_token + "</request_token></auth_and_execute_req>"; //把请求参数打包成数组 Dictionary <string, string> sParaTemp = new Dictionary <string, string>(); sParaTemp.Add("partner", Config.Partner); sParaTemp.Add("_input_charset", Config.Input_charset.ToLower()); sParaTemp.Add("sec_id", Config.Sign_type.ToUpper()); sParaTemp.Add("service", "alipay.wap.auth.authAndExecute"); sParaTemp.Add("format", format); sParaTemp.Add("v", v); sParaTemp.Add("req_data", req_data); //建立请求 string sHtmlText = Submit.BuildRequest(GATEWAY_NEW, sParaTemp, "get", "确认"); Response.Write(sHtmlText); } }
public DFSettingRpository(PayContext dbContext) : base(dbContext) { }
public MerchantExtendRpository(PayContext dbContext) : base(dbContext) { }
public IncomeRepository(PayContext dbContext) { _dbContext = dbContext; }
public FindPaymentDao(PayContext testContext) : base(testContext) { }
public ActionResult Index() { ErrorMessage errorMessage = ErrorMessage.失败; string url = StringHelper.GetHost(); if (string.IsNullOrEmpty(url)) { errorMessage = ErrorMessage.订单初始化失败; return(Redirect(string.Format("/error/index?errCode={0}&returnUrl=", (int)errorMessage).GetChannelRouteUrl(RouteChannelId))); } int payType = 0; string orderId = ""; int money = 0; int userType = 0; if (PayContext.VerifyPayOrderInfo(10, out errorMessage, out payType, out orderId, out money, out userType)) { string appId = NowPayConfig.AppId; string appKey = NowPayConfig.AppKey; string callbackUrl = NowPayConfig.CallbackUrl; string notifyUrl = string.Format("http://{0}/user/order/paynow/notify", url); string frontNotifyUrl = string.Format("http://{0}/user/order/paynow/result", url); SortedDictionary <string, string> dict = new SortedDictionary <string, string>(); dict.Add("funcode", "WP001"); //功能码(定值:WP001)(必填) dict.Add("appId", appId); //商户应用唯一标识(字符,长度1-40)(必填) dict.Add("mhtOrderNo", orderId); //商户订单号(字符,长度1-40)(必填) dict.Add("mhtOrderName", GetName(money)); //商户商品名称(字符,长度1-40)(必填) dict.Add("mhtOrderType", "01"); //商户交易类型(01普通消费)(字符,长度1-40)(必填) dict.Add("mhtCurrencyType", "156"); //商户订单币种类型(156人民币)(字符,长度3)(必填) dict.Add("mhtOrderAmt", StringHelper.ToString(money)); //商户订单交易金额(单位(人民币):分)(数字,长度22)(必填) dict.Add("mhtOrderDetail", "充值"); //商户订单详情(字符,长度0-200)(必填) dict.Add("mhtOrderTimeOut", "3600"); //商户订单超时时间(60~3600秒,默认3600)(数字,长度4)(必填) dict.Add("mhtOrderStartTime", DateTime.Now.ToString("yyyyMMddHHmmss")); //商户订单开始时间 yyyyMMddHHmmss(字符,长度14)(必填) dict.Add("notifyUrl", notifyUrl); //商户后台通知URL(HTTP协议或者HTTPS协议,POST方式提交报文)(字符,长度1-200)(必填) dict.Add("frontNotifyUrl", frontNotifyUrl); //商户前台通知URL(HTTP协议或者HTTPS协议,POST方式提交报文)(字符,长度1-200)(必填) dict.Add("mhtCharset", "UTF-8"); //商户字符编码(字符,长度1-16)(必填) dict.Add("deviceType", "06"); //设备类型(06手机网页)(字符,长度2)(必填) #region 支付宝 if (payType == 12) { bool isMicromessenger = StringHelper.GetUserAgent().ToLower().Contains("micromessenger"); if (isMicromessenger) { dict.Add("outputType", "4"); //微信 } else { dict.Add("outputType", "0"); //手机网页 } callbackUrl = NowPayConfig.NewCallbackUrl; } #endregion dict.Add("payChannelType", payType.ToString()); //用户所选渠道类型(如果为空则直接使用现在支付收银台页面,如果不为空则直接跳转至支付渠道(银联或者支付宝等))(字符,长度2) dict.Add("mhtReserved", ""); //商户保留域(给商户使用的字段,商户可以对交易进行标记,现在支付将原样返回)(字符,长度100) dict.Add("consumerId", StringHelper.ToString(currentUser.UserId)); //消费者ID(消费者在商户系统的ID,非必填,但是推荐填写,以便于辅助数据分析)(字符,长度40) dict.Add("consumerName", ""); //消费者名称(消费者在商户系统的名称,非必填,但是推荐填写,以便于辅助数据分析)(字符,长度40) dict.Add("mhtSignType", "MD5"); //商户签名方法(定值:MD5)(必填) dict.Add("mhtSignature", GetSign(appKey, dict)); //商户数据签名(MAX64TEXT)(必填) return(Redirect(string.Concat(callbackUrl, "?", GetPostData(dict)))); } return(Redirect(string.Format("/error/index?errCode={0}&returnUrl=", (int)errorMessage).GetChannelRouteUrl(RouteChannelId))); }
public ActionResult Index3() { string result = ""; ErrorMessage errorMessage = ErrorMessage.失败; string url = StringHelper.GetHost(); if (string.IsNullOrEmpty(url)) { errorMessage = ErrorMessage.订单初始化失败; return(Redirect(string.Format("/error/index?errCode={0}&returnUrl=", (int)errorMessage).GetChannelRouteUrl(RouteChannelId))); } int payType = 0; string orderId = ""; int money = 0; int userType = 0; if (PayContext.VerifyPayOrderInfo(10, out errorMessage, out payType, out orderId, out money, out userType) && payType == 13 && StringHelper.GetUserAgent().ToLower().Contains("micromessenger")) { string OpenId = UrlParameterHelper.GetParams("OpenId"); if (!string.IsNullOrEmpty(OpenId)) { string appId = NowPayConfig.WeChatQrCodeAppId; string appKey = NowPayConfig.WeChatQrCodeAppKey; string callbackUrl = NowPayConfig.NewCallbackUrl; string notifyUrl = string.Format("http://{0}/user/order/paynow/notify", url); string frontNotifyUrl = string.Format("http://{0}/user/order/paynow/result", url); SortedDictionary <string, string> dict = new SortedDictionary <string, string>(); dict.Add("funcode", "WP001"); //功能码(定值:WP001)(必填) dict.Add("appId", appId); //商户应用唯一标识(字符,长度1-40)(必填) dict.Add("mhtOrderNo", orderId); //商户订单号(字符,长度1-40)(必填) dict.Add("mhtOrderName", GetName(money)); //商户商品名称(字符,长度1-40)(必填) dict.Add("mhtOrderType", "01"); //商户交易类型(01普通消费)(字符,长度1-40)(必填) dict.Add("mhtCurrencyType", "156"); //商户订单币种类型(156人民币)(字符,长度3)(必填) dict.Add("mhtOrderAmt", StringHelper.ToString(money)); //商户订单交易金额(单位(人民币):分)(数字,长度22)(必填) dict.Add("mhtOrderDetail", "充值"); //商户订单详情(字符,长度0-200)(必填) dict.Add("mhtOrderTimeOut", "3600"); //商户订单超时时间(60~3600秒,默认3600)(数字,长度4)(必填) dict.Add("mhtOrderStartTime", DateTime.Now.ToString("yyyyMMddHHmmss")); //商户订单开始时间 yyyyMMddHHmmss(字符,长度14)(必填) dict.Add("notifyUrl", notifyUrl); //商户后台通知URL(HTTP协议或者HTTPS协议,POST方式提交报文)(字符,长度1-200)(必填) dict.Add("frontNotifyUrl", frontNotifyUrl); //商户前台通知URL(HTTP协议或者HTTPS协议,POST方式提交报文)(字符,长度1-200)(必填) dict.Add("mhtCharset", "UTF-8"); //商户字符编码(字符,长度1-16)(必填) dict.Add("deviceType", "08"); //设备类型(06手机网页)(字符,长度2)(必填) dict.Add("outputType", "1"); //输出类型(二维码 = 1) dict.Add("payChannelType", payType.ToString()); //用户所选渠道类型(如果为空则直接使用现在支付收银台页面,如果不为空则直接跳转至支付渠道(银联或者支付宝等))(字符,长度2) dict.Add("mhtReserved", ""); //商户保留域(给商户使用的字段,商户可以对交易进行标记,现在支付将原样返回)(字符,长度100) dict.Add("consumerId", StringHelper.ToString(currentUser.UserId)); //消费者ID(消费者在商户系统的ID,非必填,但是推荐填写,以便于辅助数据分析)(字符,长度40) dict.Add("consumerName", ""); //消费者名称(消费者在商户系统的名称,非必填,但是推荐填写,以便于辅助数据分析)(字符,长度40) dict.Add("mhtSignType", "MD5"); //商户签名方法(定值:MD5)(必填) dict.Add("mhtSignature", GetSign(appKey, dict)); //商户数据签名(MAX64TEXT)(必填) HttpSendInfo sendInfo = new HttpSendInfo(); sendInfo.Method = "POST"; sendInfo.Url = callbackUrl; sendInfo.Data = GetPostData(dict); HttpReceiveInfo receiveInfo = new HttpReceiveInfo(); if (HttpHelper.Send(sendInfo, out receiveInfo)) { //报文日志 //Log(this.Server.UrlDecode(sendInfo.Data)); result = GetTnUrl3(receiveInfo.Result); } } } ViewData.Model = result; ViewBag.OrderId = orderId; return(View()); }
public MerchantChannelRpository(PayContext dbContext) : base(dbContext) { }
public ExpenseRepository(PayContext dbContext) { _dbContext = dbContext; }
public BaseDao(PayContext testContext) { _testContext = testContext; }
public FailureOrderRpository(PayContext dbContext) : base(dbContext) { }
public CardRepository(PayContext dbContext) { _dbContext = dbContext; }
public PercentageRpository(PayContext dbContext) : base(dbContext) { }
public PostPaymentDao(PayContext testContext) : base(testContext) { }
public AdminLoginDao(PayContext testContext) : base(testContext) { }
public RegisterPatientDao(PayContext testContext) : base(testContext) { }
public DFOrderRpository(PayContext dbContext) : base(dbContext) { }
public AdminOperationLogRpository(PayContext dbContext) : base(dbContext) { }