/// <summary> /// 获取Web支付参数(一个from表单) /// </summary> public string GetWebPayParameter(decimal amount, string orderNo, string subject, string body, string passbackParams = null) { string parameter = string.Empty; //组装业务参数 var model = new AlipayTradeWapPayModel() { Body = body, Subject = subject, TotalAmount = amount.ToString(), OutTradeNo = orderNo, ProductCode = ProductCode, QuitUrl = QuitUrl, PassbackParams = HttpUtility.UrlEncode(passbackParams) }; var request = new AlipayTradeWapPayRequest(); request.SetBizModel(model); request.SetReturnUrl(ReturnUrl); // 支付中途退出返回商户网站地址 request.SetNotifyUrl(NotifyUrl); // 设置支付完成异步通知接收地址 AlipayTradeWapPayResponse response = aopClient.pageExecute(request, null, "post"); if (response != null && response.Code == "10000") { parameter = response.Body; } //记日志response.ToJson(); return(parameter); }
/// <summary> /// 阿里手机网页支付 /// </summary> /// <param name="totalAmount">支付金额</param> /// <param name="outTradeNo">系统订单号码</param> /// <param name="notifyUrl">订单成功返回路径</param> /// <param name="body">内容</param> /// <param name="subject">订单名称</param> /// <returns></returns> public string CreateAlipayWapOrder(string totalAmount, string outTradeNo, string notifyUrl, string body, string subject) { DefaultAopClient client = new DefaultAopClient(gatewayUrl, app_id, private_key, "json", "1.0", sign_type, alipay_public_key, charset, false); //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称如:alipay.trade.app.pay AlipayTradeWapPayModel model = new AlipayTradeWapPayModel(); model.Body = body; model.Subject = subject; model.TotalAmount = totalAmount; model.OutTradeNo = outTradeNo; model.ProductCode = "QUICK_WAP_WAY"; //订单号 model.TimeoutExpress = "30m"; AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); request.SetBizModel(model); request.SetNotifyUrl(notifyUrl); // 设置同步回调地址 request.SetReturnUrl(notifyUrl); //这里和普通的接口调用不同,使用的是sdkExecute AlipayTradeWapPayResponse response = null; try { response = client.pageExecute(request, null, "post"); return(response.Body); } catch (Exception exp) { throw exp; } }
/// <summary> /// 手机支付 /// </summary> /// <param name="info"></param> /// <returns></returns> protected virtual bool CreateByWap(PaylineEntity info) { var builder = new StringBuilder("{"); builder.AppendFormat("\"body\":\"{0}\",", info.TypeName); builder.AppendFormat("\"subject\":\"{0}\",", info.TypeName); builder.AppendFormat("\"out_trade_no\":\"{0}\",", info.Number); builder.AppendFormat("\"total_amount\":\"{0}\",", info.Amount != 0 || info.PaylineItems == null ? info.Amount : info.PaylineItems.Sum(it => it.Amount)); builder.AppendFormat("\"product_code\":\"{0}\",", "QUICK_WAP_PAY");//FAST_INSTANT_TRADE_PAY builder.Append("}"); AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); request.BizContent = builder.ToString(); var processUrl = string.Format("{0}/AliPay/Process", ConfigurationManager.GetSetting <string>("DistributedOutsidePayUrl")); var returnUrl = string.Format("{0}?returnurl={1}&returntitle={2}&autoreturnurl={3}&autoreturntitle={4}" , processUrl, HttpContext.Current.Request["returnurl"] , HttpContext.Current.Request["returntitle"] , HttpContext.Current.Request["autoreturnurl"] , HttpContext.Current.Request["autoreturntitle"]); request.SetReturnUrl(returnUrl); request.SetNotifyUrl(processUrl); AlipayTradeWapPayResponse response = AopClient.pageExecute(request); info.Request = response.Body; return(true); }
public async Task <WapPayOutput> WapPay(WapPayInput input, AlipayOptions options = null) { await Task.Yield(); // 设置产品代码 if (input.Data.ProductCode.IsNullOrWhiteSpace()) { input.Data.ProductCode = YoYoAlipayConsts.ProductCode_QUICK_WAP_WAY; } // 设置支付中途退出返回商户网站地址 if (input.Data.QuitUrl.IsNullOrWhiteSpace()) { input.Data.QuitUrl = input.QuitUrl; } var request = new AlipayTradeWapPayRequest(); // 设置同步回调地址 request.SetReturnUrl(input.SynchronizationCallbackUrl); // 设置异步通知接收地址 request.SetNotifyUrl(input.AsyncNotifyUrl); // 将业务model载入到request request.SetBizModel(input.Data); // 发起支付 var response = await this._alipayService.PageExecuteAsync(request); return(new WapPayOutput() { Response = response, Body = response.Body }); }
public static string ProcessRequest(OrderListModel orderList, long orderId, string wapSpId) { DefaultAopClient client = new DefaultAopClient(wapConfig.gatewayUrl, wapConfig.app_id, wapConfig.private_key, "json", "1.0", wapConfig.sign_type, wapConfig.alipay_public_key, wapConfig.charset, false); AlipayTradeWapPayModel model = ConvertToModel(orderList, orderId); AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); // 设置同步回调地址 string retunUrl = string.Format(wapConfig.RETURN_URL, wapSpId, orderId); request.SetReturnUrl(retunUrl); // 设置异步通知接收地址 request.SetNotifyUrl(wapConfig.NOTIFY_URL); // 将业务model载入到request request.SetBizModel(model); AlipayTradeWapPayResponse response = null; try { //因为是页面跳转类服务,使用pageExecute方法得到form表单后输出给前端跳转 response = client.pageExecute(request, null, "post"); if (response != null && !response.IsError) { return(response.Body); } } catch (Exception exp) { LogUtil.Error(exp.Message); } return(string.Empty); }
public ActionResult PayRequest(string tradeno, string subject, string totalAmout, string itemBody) { // 组装业务参数model AlipayTradeWapPayModel model = new AlipayTradeWapPayModel { Body = itemBody, Subject = subject, TotalAmount = totalAmout, OutTradeNo = tradeno, ProductCode = "QUICK_WAP_WAY", QuitUrl = "" }; AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); // 设置同步回调地址 request.SetReturnUrl($"http://{Request.Host}/Pay/Callback"); // 设置异步通知接收地址 request.SetNotifyUrl($"http://{"此处填写域名信息!!!"}/H5Pay/Notify"); // 将业务model载入到request request.SetBizModel(model); var response = _alipayService.PageExecute(request, null, "post"); Console.WriteLine($"订单支付发起成功,订单号:{tradeno}"); //跳转支付宝支付 //Response.Redirect(_alipayService.Options.Gatewayurl + "?" + response.Body); return(PartialView("SubmitForm", response.Body)); }
public ActionResult MobilePay() { //appid ,private key ,public key, //测试 url https://openapi.alipaydev.com/gateway.do //正式 url https://openapi.alipay.com/gateway.do string out_trade_no = DateTime.Now.ToString("yyyyMMddHHmmssfff"); IAopClient client = new DefaultAopClient(AliPayConfig.serverUrl, AliPayConfig.app_id, AliPayConfig.merchant_private_key, AliPayConfig.format, AliPayConfig.version, AliPayConfig.sginType, AliPayConfig.alipay_public_key, AliPayConfig.charset, AliPayConfig.keyFromsFile); AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); //支付异步回调地址 request.SetNotifyUrl("http://1x687f9296.iok.la/AliPay/Receive_notify"); request.SetReturnUrl("http://www.baidu.com"); request.BizContent = "{" + " \"body\":\"这是一个大可乐,有2.5L,大不大\"," + " \"subject\":\"大可乐\"," + " \"out_trade_no\":\"" + out_trade_no + "\"," + " \"timeout_express\":\"90m\"," + " \"total_amount\":0.01," + " \"product_code\":\"QUICK_WAP_WAY\"" + " }"; AlipayTradeWapPayResponse response = client.pageExecute(request); string form = response.Body; return(Content(form)); }
private static string GetOrderInfo(string amount) { //EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX); IAopClient client = new DefaultAopClient("https://openapi.alipaydev.com/gateway.do", APPID, APP_PRIVATE_KEY, "json", "1.0", "RSA2", ALIPAY_PUBLIC_KEY, CHARSET, false); AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); AlipayTradeWapPayModel model = new AlipayTradeWapPayModel { Body = HttpUtility.UrlEncode("门诊挂号"), //"我是测试数据", Subject = HttpUtility.UrlEncode("门诊挂号缴费"), // "App支付测试DoNet", TotalAmount = amount, //"0.01", ProductCode = "QUICK_WAP_WAY", OutTradeNo = "2020060111510", //TimeoutExpress = "120m", TimeExpire = DateTime.Now.AddMinutes(60).ToString("yyyy-MM-dd HH:mm"), QuitUrl = "http://www.taobao.com/product/113714.html", }; request.SetBizModel(model); //request.SetNotifyUrl("外网商户可以访问的异步地址"); request.SetReturnUrl("https://wwww.baidu.com"); AlipayTradeWapPayResponse response = client.pageExecute(request); return(response.Body); //HttpUtility.HtmlEncode是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题 //Response.Write(HttpUtility.HtmlEncode(response.Body)); }
public AlipayOrderCreationResult GenerateAlipayPaymentUrl(AlipayOrderModel payment) { var payModel = new AlipayTradePayModel { Subject = payment.Subject, Body = payment.Body, OutTradeNo = payment.OrderNo, TotalAmount = payment.Amount.ToString("f2"), DisablePayChannels = payment.AllowCreditCard ? null : "credit_group", ProductCode = "FAST_INSTANT_TRADE_PAY" }; var wapPayRequest = new AlipayTradeWapPayRequest(); wapPayRequest.SetNotifyUrl(payment.NotifyUrl ?? _options.DefaultNotifyUrl); wapPayRequest.SetReturnUrl(payment.ReturnUrl); wapPayRequest.SetBizModel(payModel); var wapPayResponse = _alipay.SdkExecute(wapPayRequest); var pagePayRequest = new AlipayTradePagePayRequest(); pagePayRequest.SetNotifyUrl(payment.NotifyUrl ?? _options.DefaultNotifyUrl); pagePayRequest.SetReturnUrl(payment.ReturnUrl); pagePayRequest.SetBizModel(payModel); var pagePayResponse = _alipay.SdkExecute(pagePayRequest); return new AlipayOrderCreationResult { MobileWebPaymentUrl = _options.GatewayUrl + "?" + wapPayResponse.Body, DesktopPagePaymentUrl = _options.GatewayUrl + "?" + pagePayResponse.Body }; }
public string AlipayTradeWapPay(Order order) { DefaultAopClient client = new DefaultAopClient(_aliPayPaymentSettings.GatewayUrl, _aliPayPaymentSettings.AppID, _aliPayPaymentSettings.PrivateKey, "json", "1.0", _aliPayPaymentSettings.SignType, _aliPayPaymentSettings.AlipayPublicKey, "UTF-8", false); // 外部订单号,商户网站订单系统中唯一的订单号 string out_trade_no = order.Id.ToString(); string subject = _storeContext.CurrentStore.Name; string total_amout = order.OrderTotal.ToString("0.00", CultureInfo.InvariantCulture); string body = "Order from " + _storeContext.CurrentStore.Name; //手机访问 AlipayTradeWapPayResponse response = null; AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); request.SetReturnUrl(_webHelper.GetStoreLocation(false) + "Plugins/PaymentAliPay/Return"); request.SetNotifyUrl(_webHelper.GetStoreLocation(false) + "Plugins/PaymentAliPay/Notify"); request.SetBizModel(new AlipayTradeWapPayModel() { Body = body, Subject = subject, TotalAmount = total_amout, OutTradeNo = out_trade_no, ProductCode = "FAST_INSTANT_TRADE_PAY" }); try { response = client.pageExecute(request, null, "post"); return(response.Body); } catch (Exception exp) { _logger.Information($"{DateTime.Now.ToLocalTime().ToString()}AliWapPay:{exp.Message}"); return("<script>alert('AlipayTradeWapPay Failed!');</script>"); } }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; try { Log.WriteLog("Alipay", "进入支付宝", "-----"); //subject = "商品描述"; string orderNo = context.Request["orderNo"].ObjToStr(); Log.WriteLog("Alipay", "orderNo", orderNo); decimal amount = context.Request["amount"].ObjToDecimal(0); string subject = "幸事多"; //context.Request["subject"].ObjToStr(); string app_id = Config.AppId; //Config.Partner;//合作伙伴id string merchant_private_key = Config.Private_key; string alipay_public_key = Config.Public_key; string timeout_express = "30m"; //订单有效时间(分钟) string postUrl = Config.GateWayUrl; string sign_type = Config.Sign_type; //加签方式 有两种RSA和RSA2 我这里使用的RSA2(支付宝推荐的) string version = "1.0"; //固定值 不用改 string format = "json"; //固定值 string Amount = amount.ObjToStr(); //订单金额 string method = "alipay.trade.wap.pay"; //调用接口 固定值 不用改 IAopClient client = new DefaultAopClient(postUrl, app_id, merchant_private_key, format, version, sign_type, alipay_public_key, Config.Input_charset, false); AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); string notify_url = Config.Notify_url; string return_url = Config.Return_url; Log.WriteLog("Alipay", "notify_url", notify_url); Log.WriteLog("Alipay", "return_url", return_url); request.SetNotifyUrl(notify_url); request.SetReturnUrl(return_url); var bizcontent = "{" + " \"body\":\"" + subject + "\"," + " \"subject\":\"" + subject + "\"," + " \"out_trade_no\":\"" + orderNo + "\"," + " \"timeout_express\":\"" + timeout_express + "\"," + " \"total_amount\":\"" + Amount + "\"," + " \"product_code\":\"" + method + "\"" + " }"; Log.WriteLog("Alipay", "bizcontent", bizcontent); request.BizContent = bizcontent; AlipayTradeWapPayResponse response = client.pageExecute(request); string form = response.Body; context.Response.Write(form); } catch (Exception ex) { context.Response.Write(ex.Message); } }
/// <summary> /// Wap统一下单 /// </summary> /// <param name="request">提交给统一下单API的参数</param> /// <param name="config"></param> /// <param name="accessToken">用户授权码</param> /// <param name="method">请求方式,两个值可选:POST、GET;</param> /// <param name="timeOut">超时时间</param> /// <returns>成功时返回,其他抛异常</returns> public static async Task <AlipayTradeWapPayResponse> CreateOrderAsync(AlipayTradeWapPayModel request, AlipayConfig config, string accessToken = null, string method = "GET", int timeOut = 6) { IAopClient client = new AopClient(AlipayConstants.GATEWAYURL, config.AppId, config.PrivateKey, config.Format, config.Version, config.SignType, config.AliPublicKey, config.Charset, config.KeyFromFile); var requestData = new AlipayTradeWapPayRequest(); requestData.SetNotifyUrl(config.NotifyUrl); requestData.SetReturnUrl(config.QuitUrl); requestData.SetBizModel(request); return(await client.PageExecute(requestData, accessToken, method)); }
public bool Wappay(AlipayOrderOptions options, out string msg) { //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称如:alipay.open.public.template.message.industry.modify AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); //SDK已经封装掉了公共参数,这里只需要传入业务参数 request.SetNotifyUrl(AliPayConfig.NOTIFY_URL); request.SetReturnUrl(AliPayConfig.RETURN_URL); LogHelper.Logger.Debug(AliPayConfig.NOTIFY_URL); request.BizContent = options.ToJson(); string form = _aopClient.pageExecute(request).Body; msg = form; return(true); }
/// <summary> /// 支付宝支付 /// </summary> /// <param name="out_trade_no">外部订单号,商户网站订单系统中唯一的订单号</param> /// <param name="subject">订单名称</param> /// <param name="total_amout">会员帐号</param> /// <param name="type">对账类型[1=链商城 2=商城]</param> public ActionResult Alipay(string out_trade_no, string subject, string total_amout, int type, string ReturnType = "0") { // 商品描述 string body = "链商支付"; // 支付中途退出返回商户网站地址 string quit_url = Help.quit_url; // 组装业务参数model AlipayTradeWapPayModel model = new AlipayTradeWapPayModel(); model.Body = body; model.Subject = subject; model.TotalAmount = total_amout; model.OutTradeNo = out_trade_no; model.ProductCode = "QUICK_WAP_PAY"; model.QuitUrl = quit_url; AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); // 设置支付完成同步回调地址 request.SetReturnUrl(Help.Url + "/Pay/PayOK?type=" + type.ToString() + "&OrderNo=" + out_trade_no + "&ReturnType=" + ReturnType); // 设置支付完成异步通知接收地址 if (type == 1) { request.SetNotifyUrl(Help.notify_url); } else if (type == 2) { request.SetNotifyUrl(Help.shopnotify_url); } // 将业务model载入到request request.SetBizModel(model); AlipayTradeWapPayResponse response = null; try { DefaultAopClient client = new DefaultAopClient(Help.gatewayUrl, Help.app_id, Help.private_key, "json", "1.0", Help.sign_type, Help.alipay_public_key, Help.charset, false); response = client.pageExecute(request, null, "post"); return(Content(response.Body)); } catch (Exception exp) { return(Helper.Redirect("支付失败", "history.go(-1);", "订单异常=" + exp.Message)); } }
/// <summary> /// 获取wap支付宝支付订单参数 /// </summary> /// <param name="orderCode"></param> /// <param name="money"></param> /// <param name="timeOut">订单支付超时时间</param> /// <returns></returns> private ApiResultModel <string> GetWapAlipayPram(string orderCode, decimal money, int?timeOut) { IAopClient client = new DefaultAopClient(AliPayConfig.gatewayUrl, AliPayConfig.AppId, AliPayConfig.privatekey, "json", "1.0", AliPayConfig.sign_type, AliPayConfig.alipublickey, AliPayConfig.charset, false); //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称如:alipay.trade.app.pay AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。 AlipayTradeWapPayModel alipayModel = new AlipayTradeWapPayModel { //Body = "buygoods", Subject = Subject, TotalAmount = decimal.Round(money, 2).ToString("f2"), ProductCode = "QUICK_WAP_PAY", OutTradeNo = orderCode, // TimeoutExpress = "30m", TimeoutExpress = (timeOut ?? PayTimeOut).ToString() + "m", }; request.SetReturnUrl(AppSettingsHelper.Configuration[ConfigConstants.AliPaymentResultUrl]); request.SetNotifyUrl(NotifyUrl); request.SetBizModel(alipayModel); //这里和普通的接口调用不同,使用的是pageExecute var reqTime = DateTime.Now; AlipayTradeWapPayResponse response = null; try { response = client.pageExecute(request, null, "post"); //记录支付宝调用的日志 //WritePostThirdApi(ThirdPlatformBusinessType.Payment, orderCode, ThirdPlatformType.Alipay, AliPayConfig.gatewayUrl, request.ToJsonString(), reqTime, response.Body, DateTime.Now, true); } catch (Exception ex) { //LogHelper.LogError("提交支付宝预付款订单 SubmitPay", ex.ToString()); ////记录支付宝调用的日志 //WritePostThirdApi(ThirdPlatformBusinessType.Payment, orderCode, ThirdPlatformType.Alipay, AliPayConfig.gatewayUrl, request.ToJsonString(), reqTime, // response.IsNull() ? ex.ToString() : response.Body, DateTime.Now, true); } var res = new ApiResultModel <string>() { Code = ApiResultCode.Success, Message = response.Body }; return(res); }
/// <summary> /// 提交支付 - 新版本手机网站支付 /// </summary> public void SubmitPayment(string orderNo, string orderName, string amount, string describe) { log.Info("start-提交支付"); DefaultAopClient client = new DefaultAopClient(config.gatewayUrl, config.app_id, config.private_key, "json", "1.0", config.sign_type, config.alipay_public_key, config.charset, false); // 外部订单号,商户网站订单系统中唯一的订单号 string out_trade_no = orderNo; // 订单名称 string subject = orderName; // 付款金额 string total_amout = amount; // 商品描述 string body = describe; // 支付中途退出返回商户网站地址 string quit_url = "http://www.jiaodai.online/Pay/PayBreakOff"; // 组装业务参数model AlipayTradeWapPayModel model = new AlipayTradeWapPayModel(); model.Body = body; model.Subject = subject; model.TotalAmount = total_amout; model.OutTradeNo = out_trade_no; model.ProductCode = "QUICK_WAP_WAY"; model.QuitUrl = quit_url; log.Info("请求阿里,业务model:" + JsonConvert.SerializeObject(model)); AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); // 设置支付完成同步回调地址 request.SetReturnUrl("http://www.jiaodai.online/Pay/SyncNotify"); // 设置支付完成异步通知接收地址 request.SetNotifyUrl("http://www.jiaodai.online/Pay/AsyncNotify"); // 将业务model载入到request request.SetBizModel(model); AlipayTradeWapPayResponse response = null; try { response = client.pageExecute(request, null, "post"); log.Info("阿里响应信息:" + response.Body); Response.Write(response.Body); } catch (Exception e) { log.Info("支付异常,异常信息为:" + e.Message); } }
public string BuildWapPaymentUrl(Dictionary <string, string> map) { IAopClient alipayClient = GetAopClient(); AlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest(); alipayRequest.SetReturnUrl(Merchant.ReturnUrl.ToString()); alipayRequest.SetNotifyUrl(Merchant.NotifyUrl.ToString()); AlipayTradeWapPayModel model = new AlipayTradeWapPayModel(); model.Subject = Order.Subject; model.OutTradeNo = Order.OrderNo; model.TimeoutExpress = "30m"; model.TotalAmount = Order.OrderAmount.ToString(); model.ProductCode = "QUICK_WAP_PAY"; alipayRequest.SetBizModel(model); return(alipayClient.pageExecute(alipayRequest).Body); }
public Return AliPay(Models.AliPay payModel) { var resultReturn = new Return(); try { var aopClient = new DefaultAopClient(AliPayConfig.GatewayUrl, AliPayConfig.AppId, AliPayConfig.PrivateKey, "json", "1.0", AliPayConfig.SignType, AliPayConfig.AlipayPublicKey, AliPayConfig.Charset, false); // 组装业务参数model var model = new AlipayTradeWapPayModel { Body = payModel.Description, Subject = payModel.OrderName, TotalAmount = payModel.Amout.ToString(CultureInfo.InvariantCulture), OutTradeNo = payModel.OrderId.ToString(), ProductCode = "QUICK_WAP_WAY", QuitUrl = payModel.QuitUrl }; var request = new AlipayTradeWapPayRequest(); //支付成功回调页面 request.SetReturnUrl(payModel.ReturnUrl); //异步通知接受地址 request.SetNotifyUrl(AliPayConfig.NotifyUrl); //将业务model载入request request.SetBizModel(model); var response = aopClient.pageExecute(request, null, "post"); var responseBody = response.Body; resultReturn.Content = responseBody; } catch (AopException aopEx) { LogService.InsertLog(aopEx); resultReturn.SetWrong(); } return(resultReturn); }
public async Task <IActionResult> WapPay(AlipayTradeWapPayViewModel viewMode) { var model = new AlipayTradeWapPayModel { Body = viewMode.Body, Subject = viewMode.Subject, TotalAmount = viewMode.TotalAmount, OutTradeNo = viewMode.OutTradeNo, ProductCode = viewMode.ProductCode }; var req = new AlipayTradeWapPayRequest(); req.SetBizModel(model); req.SetNotifyUrl(viewMode.NotifyUrl); req.SetReturnUrl(viewMode.ReturnUrl); var response = await _client.PageExecuteAsync(req, _optionsAccessor.Value); return(Content(response.Body, "text/html", Encoding.UTF8)); }
public async Task <IActionResult> WapPay(string out_trade_no, string subject, string total_amount, string body, string product_code, string notify_url, string return_url) { var model = new AlipayTradeWapPayModel() { Body = body, Subject = subject, TotalAmount = total_amount, OutTradeNo = out_trade_no, ProductCode = product_code, }; var req = new AlipayTradeWapPayRequest(); req.SetBizModel(model); req.SetNotifyUrl(notify_url); req.SetReturnUrl(return_url); var response = await _client.PageExecuteAsync(req, null, "GET"); return(Redirect(response.Body)); }
// 手机网站支付 public async Task <AlipayTradeWapPayResponse> WapPay(PayRequest request) { var order = OrderService.Get(request.Id); var model = new AlipayTradeWapPayModel { OutTradeNo = order.Order_SN, Subject = order.Name, TotalAmount = order.Order_Money.ToString("n"), Body = order.Remark, ProductCode = "QUICK_WAP_WAY" }; var req = new AlipayTradeWapPayRequest(); req.SetBizModel(model); req.SetNotifyUrl(request.NotifyUrl); req.SetReturnUrl(request.ReturnUrl); return(await client.PageExecuteAsync(req, options.Value)); }
public async Task <IActionResult> WapPay(AlipayTradeWapPayViewModel viewMode) { var model = new AlipayTradeWapPayModel() { Body = viewMode.Body, Subject = viewMode.Subject, TotalAmount = viewMode.TotalAmount, OutTradeNo = viewMode.OutTradeNo, ProductCode = viewMode.ProductCode, }; var req = new AlipayTradeWapPayRequest(); req.SetBizModel(model); req.SetNotifyUrl(viewMode.NotifyUrl); req.SetReturnUrl(viewMode.ReturnUrl); var response = await _client.PageExecuteAsync(req); return(Content(response.Body, "text/html;charset=utf-8")); }
public static string MakeWapPayOrder(string companyId, PreAliPayOrderModel model, string returnUrl, string notifyUrl) { try { AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); request.BizContent = JsonHelper.GetJsonString(model); request.SetNotifyUrl(notifyUrl); request.SetReturnUrl(returnUrl); AlipayTradeWapPayResponse response = GetDefaultAopClient(companyId).pageExecute(request); if (response.IsError) { TxtLogServices.WriteTxtLogEx("AliPayApiServices", string.Format("wap网站支付失败:{0}", response.Body)); return(""); } return(response.Body); } catch (Exception ex) { TxtLogServices.WriteTxtLogEx("AliPayApiServices", string.Format("网站支付失败:{0}", ex.Message)); } return(""); }
/// <summary> /// 支付 /// </summary> /// <param name="parameter"></param> /// <returns></returns> public string Pay(H5PaymentParameter parameter) { DefaultAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", AppId, PrivateKey, "json", "1.0", "RSA2", PublicKey, "utf-8", false); // 组装业务参数model AlipayTradeWapPayModel model = new AlipayTradeWapPayModel { Body = parameter.Body, Subject = parameter.Subject, TotalAmount = parameter.Amount.ToString(), OutTradeNo = parameter.TradeNo, ProductCode = "QUICK_WAP_WAY", QuitUrl = parameter.QuitUrl, PassbackParams = parameter.PassbackParams }; // 请求 AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); // 设置支付完成同步回调地址 request.SetReturnUrl(parameter.QuitUrl); // 设置支付完成异步通知接收地址 request.SetNotifyUrl(parameter.NotifyUrl); // 将业务model载入到request request.SetBizModel(model); // 响应 AlipayTradeWapPayResponse response = client.pageExecute(request, null, "post"); return(response.Body); }
public async Task <IActionResult> WapPay(string out_trade_no, string subject, string total_amount, string body, string product_code, string notify_url = "", string return_url = "") { var model = new AlipayTradeWapPayModel { Body = body, Subject = subject, TotalAmount = total_amount, OutTradeNo = out_trade_no, ProductCode = product_code }; var req = new AlipayTradeWapPayRequest(); req.SetBizModel(model); req.SetNotifyUrl(notify_url); req.SetReturnUrl(return_url); var response = await _client.PageExecuteAsync(req); ResponseModel responseModel = new ResponseModel() { code = HTTPResponseCode.PartialContent, message = string.Empty, data = response.Body }; if (response.IsError) { responseModel.code = HTTPResponseCode.BadRequest; responseModel.message = response.Msg; } else { responseModel.code = HTTPResponseCode.Successful; } return(Json(responseModel)); //return Content(response.Body, "text/html", Encoding.UTF8); }
/// <summary> /// 支付宝支付请求 /// </summary> /// <param name="config">支付宝配置信息</param> /// <param name="subject">交易标题/订单标题</param> /// <param name="out_trade_no">商户订单号</param> /// <param name="total_amount">支付金额</param> /// <param name="notify_url">异步通知</param> /// <param name="return_url">同步通知</param> /// <returns></returns> public static Message Alipay(AlipayConfig config, string subject, string out_trade_no, string total_amount, string notify_url, string return_url, int time_expire = 2) { Message result = new Message(); try { IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", config.app_id, //"2017081108144704",//支付宝分配给开发者的应用ID config.merchant_private_key, "json", //仅支持JSON "1.0", //调用的接口版本,固定为:1.0 "RSA2", //商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 config.alipay_public_key, "utf-8", false); AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); AlipayTradeWapPayModel model = new AlipayTradeWapPayModel(); model.OutTradeNo = out_trade_no; model.ProductCode = "QUICK_WAP_WAY"; model.Subject = subject; //商品的标题/交易标题/订单标题/订单关键字等。 model.TimeoutExpress = string.Format("{0}h", time_expire); //订单失效时间 model.TotalAmount = total_amount; //订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000] request.SetBizModel(model); request.SetNotifyUrl(notify_url); //设置异步通知地址 request.SetReturnUrl(return_url); //设置同步通知地址 string form = client.pageExecute(request).Body; result.state = true; result.data = form; return(result); } catch (Exception e) { result.state = false; result.error = e.Message; } return(result); }
/// <summary> /// 生成支付宝H5支付 /// author:陶林辉 /// </summary> /// <param name="recharge"></param> /// <param name="order">订单号</param> /// <returns></returns> public AliPayH5View CreateAlipayH5Receipt(RechargeCommodityDto recharge, string order) { DefaultAopClient client = new DefaultAopClient(_appSettings.Gatewayurl, _appSettings.App_id, _appSettings.PrivateKeyPem, "json", "1.0", _appSettings.Sign_type, _appSettings.PublicKey, _appSettings.CharSet, false); AliPayH5View aliPayH5View = new AliPayH5View(); // 组装业务参数model AlipayTradePagePayModel model = new AlipayTradePagePayModel { Body = recharge.Name, //商品描述 Subject = "乐趣海南充值", //订单名称 TotalAmount = recharge.Money.ToString(), //付款金额 OutTradeNo = order, //订单号 ProductCode = "QUICK_WAP_PAY" }; AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); request.SetReturnUrl(_appSettings.Return_url); // 设置异步通知接收地址 request.SetNotifyUrl(_appSettings.Notify_url); request.SetBizModel(model); aliPayH5View.html = _alipayService.pageExecute(request).Body; return(aliPayH5View); }
public ActionResult ajaxorder(string orderno) { try { ReturnJson root = null; var ordersEntity = ordersbll.GetEntityByOrderSn(orderno); if (ordersEntity != null) { var sp_billno = ordersEntity.OrderSn; var nonceStr = TenPayV3Util.GetNoncestr(); //商品Id,用户自行定义 string productId = ordersEntity.TelphoneID.ToString(); decimal?Amount = ordersEntity.Price;//0.01M 测试 if (Amount < 0) { root = new ReturnJson { code = 200, msg = "付款金额小于0" }; } else { if (ordersEntity.PayType == "支付宝") { try { DefaultAopClient client = new DefaultAopClient(WeixinConfig.serviceUrl, WeixinConfig.aliAppId, WeixinConfig.privateKey, "json", "1.0", WeixinConfig.signType, WeixinConfig.payKey, WeixinConfig.charset, false); // 组装业务参数model AlipayTradeWapPayModel model = new AlipayTradeWapPayModel(); model.Body = "支付宝购买靓号"; // 商品描述 model.Subject = productId; // 订单名称 model.TotalAmount = Amount.ToString(); // 付款金额"0.01"ordersEntity.Price.ToString() model.OutTradeNo = sp_billno; // 外部订单号,商户网站订单系统中唯一的订单号 model.ProductCode = "QUICK_WAP_WAY"; model.QuitUrl = "http://www.1650539.com/webapp/agentshop/index"; // 支付中途退出返回商户网站地址 model.TimeoutExpress = "90m"; AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); //设置支付完成同步回调地址 request.SetReturnUrl(WeixinConfig.return_url); //设置支付完成异步通知接收地址 request.SetNotifyUrl(WeixinConfig.notify_url); // 将业务model载入到request request.SetBizModel(model); AlipayTradeWapPayResponse response = null; try { response = client.pageExecute(request, null, "post"); //Response.Write(response.Body); H5PayData h5PayData = new H5PayData(); h5PayData.form = response.Body; root = new ReturnJson { code = 200, msg = "\u652f\u4ed8\u5b9d\u63d0\u4ea4\u6210\u529f\uff01", data = h5PayData }; } catch (Exception exp) { throw exp; } } catch (Exception ex) { //return Json(new { Result = false, msg = "缺少参数" }); } } else { //0 手机(H5支付) 1 电脑(扫码Native支付),2微信浏览器(JSAPI) //pc端返回二维码,否则H5 if (ordersEntity.PayType == "微信扫码") { //创建请求统一订单接口参数 var xmlDataInfo = new TenPayV3UnifiedorderRequestData(WeixinConfig.AppID, tenPayV3Info.MchId, "扫码支付靓号", sp_billno, Convert.ToInt32(Amount * 100), //1, Request.UserHostAddress, tenPayV3Info.TenPayV3Notify, TenPayV3Type.NATIVE, null, tenPayV3Info.Key, nonceStr, productId: productId); //调用统一订单接口 var result = TenPayV3.Unifiedorder(xmlDataInfo); if (result.return_code == "SUCCESS") { H5PayData h5PayData = new H5PayData() { appid = WeixinConfig.AppID, code_url = result.code_url,//weixin://wxpay/bizpayurl?pr=lixpXgt-----------扫码支付 mch_id = WeixinConfig.MchId, nonce_str = result.nonce_str, prepay_id = result.prepay_id, result_code = result.result_code, return_code = result.return_code, return_msg = result.return_msg, sign = result.sign, trade_type = "NATIVE", trade_no = sp_billno, payid = ordersEntity.Id.ToString(), wx_query_href = "http://www.1650539.com/webapp/agentshop/queryWx/" + ordersEntity.Id, wx_query_over = "http://www.1650539.com/webapp/agentshop/paymentFinish/" + ordersEntity.Id }; root = new ReturnJson { code = 200, msg = "\u5fae\u4fe1\u626b\u7801\u63d0\u4ea4\u6210\u529f\uff01", data = h5PayData }; } else { root = new ReturnJson { code = 400, msg = result.return_msg }; } } else { var xmlDataInfoH5 = new TenPayV3UnifiedorderRequestData(WeixinConfig.AppID, tenPayV3Info.MchId, "H5购买靓号", sp_billno, // 1, Convert.ToInt32(Amount * 100), Request.UserHostAddress, tenPayV3Info.TenPayV3Notify, TenPayV3Type.MWEB /*此处无论传什么,方法内部都会强制变为MWEB*/, null, tenPayV3Info.Key, nonceStr); var resultH5 = TenPayV3.Html5Order(xmlDataInfoH5); //调用统一订单接口 LogHelper.AddLog(resultH5.ResultXml); //记录日志 if (resultH5.return_code == "SUCCESS") { H5PayData h5PayData = new H5PayData() { appid = WeixinConfig.AppID, mweb_url = resultH5.mweb_url,//H5访问链接 mch_id = WeixinConfig.MchId, nonce_str = resultH5.nonce_str, prepay_id = resultH5.prepay_id, result_code = resultH5.result_code, return_code = resultH5.return_code, return_msg = resultH5.return_msg, sign = resultH5.sign, trade_type = "H5", trade_no = sp_billno, payid = ordersEntity.Id.ToString(), wx_query_href = "http://www.1650539.com/webapp/agentshop/queryWx/" + ordersEntity.Id, wx_query_over = "http://www.1650539.com/webapp/agentshop/paymentFinish/" + ordersEntity.Id }; root = new ReturnJson { code = 200, msg = "\u5fae\u4fe1\u0048\u0035\u63d0\u4ea4\u6210\u529f\uff01", data = h5PayData }; } else { root = new ReturnJson { code = 400, msg = resultH5.return_msg }; } } } } } else { root = new ReturnJson { code = 400, msg = "订单号不存在!" }; } LogHelper.AddLog(JsonConvert.SerializeObject(root));//记录日志 return(Json(root)); } catch (Exception ex) { LogHelper.AddLog(ex.Message);//记录日志 throw; } }
protected new void Page_Load(object sender, EventArgs e) { //orderOID--订单ID,不重复的订单编号 //orderName--订单名称 //payMoney--支付金额 //note--说明 //WIDquitUrl--支付中途退出返回商户网站地址 //ReturnUrl--支付完成同步回掉的页面 //NotifyUrl--支付宝异步回掉接口--必须保证外网能访问 //支付宝支付回掉域名(只要域名,不带http) string _AliPayNotifyHostPoint = "wefamily.me"; HKModel hkModel = HKModel; decimal basemoney = 0; decimal minmoney = 0; decimal czbase = 0; if (hkModel.HKType == 1)// { basemoney = 100; minmoney = 100; czbase = 1; //basemoney =Convert.ToDecimal( 0.1); //minmoney = Convert.ToDecimal(0.1); //czbase = Convert.ToDecimal(0.1); } else if (hkModel.HKType == 2) { basemoney = 200; minmoney = 200; czbase = 200; } else { Response.Write("支付类型不存在"); Response.End(); } if (hkModel.RealMoney % basemoney != 0) { Response.Write("汇款倍数有误"); Response.End(); } if (hkModel.RealMoney < minmoney) { Response.Write("汇款金额不能低于" + minmoney); Response.End(); } hkModel.ValidMoney = hkModel.RealMoney / czbase; BLL.HKModel.Insert(hkModel); try { DefaultAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", config.app_id, config.private_key, "json", "1.0", "RSA2", _AliPayNotifyHostPoint, "UTF-8", false); // 外部订单号,商户网站订单系统中唯一的订单号 string out_trade_no = hkModel.HKCode; // 订单名称 string subject = "WE支付"; // 付款金额 string total_amout = hkModel.RealMoney.ToString(); // 商品描述 string body = "商品描述"; // 支付中途退出返回商户网站地址 string quit_url = "https://wefamily.me/"; // 组装业务参数model AlipayTradeWapPayModel model = new AlipayTradeWapPayModel(); model.Body = body; model.Subject = subject; model.TotalAmount = total_amout; model.OutTradeNo = out_trade_no; model.ProductCode = "QUICK_WAP_WAY"; model.QuitUrl = quit_url; AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); // 设置支付完成同步回调地址 string url = "https://" + HttpContext.Current.Request.Url.Authority.ToString(); string Merchanturl = url + "/Payment/AliPay/TBReturn.aspx"; request.SetReturnUrl(Merchanturl); // 设置支付完成异步通知接收地址 string Merchanturl2 = url + "/Payment/AliPay/YBReturn.aspx"; request.SetNotifyUrl(Merchanturl2); // 将业务model载入到request request.SetBizModel(model); AlipayTradeWapPayResponse response = null; try { response = client.pageExecute(request, null, "post"); //return response.Body; //拼接好的form标签,页面直接submit这个标签就可以了 Response.Write(response.Body); } catch (Exception exp) { throw exp; } } catch (Exception ex) { throw ex; } //Response.Write(postForm); }
public string ChargeByAlipayMobi(string productName, decimal amount, string orderNo, string returnUrl) { var config = ConfigInfo; if (!config.IsAlipayMobi) { return(null); } if (config.AlipayMobiIsMApi) { // 合作身份者ID,签约账号,以2088开头由16位纯数字组成的字符串,查看地址:https://b.alipay.com/order/pidAndKey.htm Third.Alipay.MApi.Mobi.Config.partner = config.AlipayMobiPid; // 收款支付宝账号,以2088开头由16位纯数字组成的字符串,一般情况下收款账号就是签约账号 Third.Alipay.MApi.Mobi.Config.seller_id = Third.Alipay.MApi.Mobi.Config.partner; // MD5密钥,安全检验码,由数字和字母组成的32位字符串,查看地址:https://b.alipay.com/order/pidAndKey.htm Third.Alipay.MApi.Mobi.Config.key = config.AlipayMobiMd5; // 服务器异步通知页面路径,需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 Third.Alipay.MApi.Mobi.Config.notify_url = string.Empty; // 页面跳转同步通知页面路径,需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 Third.Alipay.MApi.Mobi.Config.return_url = returnUrl; //把请求参数打包成数组 var sParaTemp = new SortedDictionary <string, string> { { "partner", Third.Alipay.MApi.Mobi.Config.partner }, { "seller_id", Third.Alipay.MApi.Mobi.Config.seller_id }, { "_input_charset", Third.Alipay.MApi.Mobi.Config.input_charset.ToLower() }, { "service", Third.Alipay.MApi.Mobi.Config.service }, { "payment_type", Third.Alipay.MApi.Mobi.Config.payment_type }, { "notify_url", Third.Alipay.MApi.Mobi.Config.notify_url }, { "return_url", Third.Alipay.MApi.Mobi.Config.return_url }, { "out_trade_no", orderNo }, { "subject", productName }, { "total_fee", amount.ToString("N2") }, { "show_url", returnUrl }, { "body", string.Empty } }; //商户订单号,商户网站订单系统中唯一订单号,必填 //收银台页面上,商品展示的超链接,必填 //sParaTemp.Add("app_pay","Y");//启用此参数可唤起钱包APP支付。 //其他业务参数根据在线开发文档,添加参数.文档地址:https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.2Z6TSk&treeId=60&articleId=103693&docType=1 //如sParaTemp.Add("参数名","参数值"); //建立请求 return(Third.Alipay.MApi.Mobi.Submit.BuildRequest(sParaTemp, "get", "确认")); } var client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", config.AlipayMobiAppId, config.AlipayMobiPrivateKey, "JSON", "1.0", "RSA2", config.AlipayMobiPublicKey, "utf-8", false); // 组装业务参数model var model = new AlipayTradePagePayModel { Body = string.Empty, Subject = productName, TotalAmount = amount.ToString("N2"), OutTradeNo = orderNo, TimeoutExpress = "90m", ProductCode = "QUICK_WAP_PAY" }; // 付款金额 // 外部订单号,商户网站订单系统中唯一的订单号 AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest(); // 设置同步回调地址 request.SetReturnUrl(returnUrl); // 设置异步通知接收地址 request.SetNotifyUrl(string.Empty); // 将业务model载入到request request.SetBizModel(model); var response = client.pageExecute(request); return(response.Body); }