Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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;
            }
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        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
            });
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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));
        }
Exemplo n.º 7
0
        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));
        }
Exemplo n.º 8
0
        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));
        }
Exemplo n.º 9
0
		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
			};
		}
Exemplo n.º 10
0
        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>");
            }
        }
Exemplo n.º 11
0
        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);
            }
        }
Exemplo n.º 12
0
        /// <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));
        }
Exemplo n.º 13
0
        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);
        }
Exemplo n.º 14
0
        /// <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));
            }
        }
Exemplo n.º 15
0
        /// <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);
        }
Exemplo n.º 16
0
        /// <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);
            }
        }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 18
0
        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);
        }
Exemplo n.º 19
0
        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));
        }
Exemplo n.º 20
0
        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));
        }
Exemplo n.º 21
0
        // 手机网站支付
        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));
        }
Exemplo n.º 22
0
        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"));
        }
Exemplo n.º 23
0
 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("");
 }
Exemplo n.º 24
0
        /// <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);
        }
Exemplo n.º 25
0
        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);
        }
Exemplo n.º 26
0
        /// <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);
        }
Exemplo n.º 27
0
        /// <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);
        }
Exemplo n.º 28
0
        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;
            }
        }
Exemplo n.º 29
0
        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);
        }
Exemplo n.º 30
0
        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);
        }