Exemple #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);
        }
        /// <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;
            }
        }
Exemple #3
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));
        }
Exemple #4
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));
        }
Exemple #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);
        }
        public async Task Test2()
        {
            var config = new AlipayConfig
            {
                NotifyUrl    = "",
                AppId        = "",
                PrivateKey   = "",
                AliPublicKey = "",
                QuitUrl      = ""
            };
            var request = new AlipayTradeWapPayModel
            {
                Body           = "产品",
                Subject        = "产品",
                OutTradeNo     = "202007297777",
                TimeoutExpress = "15m",
                TotalAmount    = $"{10:0.##}",
                QuitUrl        = config.QuitUrl,
                ProductCode    = AlipayConstants.QUICK_WAP_WAY
            };
            var response = await AlipayClient.CreateOrderAsync(request, config);

            if (string.IsNullOrEmpty(response.Body))
            {
                Assert.Fail();
            }
            else
            {
                Assert.Pass();
            }
        }
Exemple #7
0
    protected void BtnAlipay_Click(object sender, EventArgs e)
    {
        // 外部订单号,商户网站订单系统中唯一的订单号
        string out_trade_no = WIDout_trade_no.Text.Trim();

        // 订单名称
        string subject = WIDsubject.Text.Trim();

        // 付款金额
        string total_amout = WIDtotal_amount.Text.Trim();

        // 商品描述
        string body = WIDbody.Text.Trim();

        // 支付中途退出返回商户网站地址
        string quit_url = WIDquit_url.Text.Trim();

        try
        {
            var msg = AddNewOrder(out_trade_no, total_amout, subject, body, "950F76CC-B4E8-4733-A336-E3E2C6118579");

            if (string.IsNullOrEmpty(msg))
            {
                var aliAccount          = Config.WapAccounts[0];
                var alipayPublicKey     = string.Format(Config.alipay_public_key, aliAccount.AppName);
                var alipayPrivateKey    = string.Format(Config.merchant_private_key, aliAccount.AppName);
                DefaultAopClient client = new DefaultAopClient(Config.gatewayUrl, aliAccount.AppId, alipayPrivateKey, "json", "1.0", Config.sign_type, alipayPublicKey, Config.charset, true);

                // 组装业务参数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();
                // 设置支付完成同步回调地址
                // request.SetReturnUrl("");
                // 设置支付完成异步通知接收地址
                request.SetNotifyUrl("http://139.196.211.10/payapi/Notify_url.aspx");
                // 将业务model载入到request
                request.SetBizModel(model);

                AlipayTradeWapPayResponse response = client.pageExecute(request, null, "post");

                Response.Write(response.Body);
            }
            else
            {
                Response.Write(msg);
            }
        }
        catch (Exception ex)
        {
            Logger.Log("Exception:" + ex.ToString());
        }
    }
Exemple #8
0
        /// <summary>
        /// 订单编号
        /// </summary>
        /// <param name="oidStr"></param>
        /// <returns></returns>
        public void AliPay()
        {
            #region 统一下单
            try
            {
                DefaultAopClient client = new DefaultAopClient(WeixinConfig.serviceUrl, WeixinConfig.aliAppId, WeixinConfig.privateKey, "json", "1.0",
                                                               WeixinConfig.signType, WeixinConfig.publicKey, WeixinConfig.charset, false);

                // 外部订单号,商户网站订单系统中唯一的订单号
                string out_trade_no = DateTime.Now.ToString("yyyyMMddHHmmss");

                // 订单名称
                string subject = "App支付测试DoNet";

                // 付款金额
                string total_amout = "0.01";

                // 商品描述
                string body = "我是测试数据";

                // 支付中途退出返回商户网站地址
                string quit_url = "/webapp/jntt/index";

                // 组装业务参数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();
                // 设置支付完成同步回调地址
                // request.SetReturnUrl("");
                // 设置支付完成异步通知接收地址
                // request.SetNotifyUrl("");
                // 将业务model载入到request
                request.SetBizModel(model);

                AlipayTradeWapPayResponse response = null;
                try
                {
                    response = client.pageExecute(request, null, "post");
                    Response.Write(response.Body);
                }
                catch (Exception exp)
                {
                    throw exp;
                }
            }
            catch (Exception ex)
            {
                //return Json(new { Result = false, msg = "缺少参数" });
            }
            #endregion
        }
Exemple #9
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));
        }
Exemple #10
0
        protected void BtnAlipay_Click(object sender, EventArgs e)
        {
            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);
            // 外部订单号,商户网站订单系统中唯一的订单号
            //WIDout_trade_no.Text = DateTime.Now.ToLongTimeString();
            string out_trade_no = WIDout_trade_no.Text.Trim();

            // 订单名称
            string subject = WIDsubject.Text.Trim();

            // 付款金额
            string total_amout = WIDtotal_amount.Text.Trim();

            // 商品描述
            string body = WIDbody.Text.Trim();

            // 支付中途退出返回商户网站地址
            string quit_url = WIDquit_url.Text.Trim();

            // 组装业务参数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();

            // 设置支付完成同步回调地址
            // request.SetReturnUrl("");
            // 设置支付完成异步通知接收地址
            request.SetNotifyUrl("http://" + Request.Url.Authority + "/GameWebApplication/AliNotify_url.aspx");
            Debug.Log("request.SetNotifyUrl", "http://" + Request.Url.Authority + "/GameWebApplication/AliNotify_url.aspx");
            Debug.Log("UserId", UserId.ToString());
            // 将业务model载入到request
            request.SetBizModel(model);

            AlipayTradeWapPayResponse response = null;

            try
            {
                response = client.pageExecute(request, null, "post");
                Response.Write(response.Body);
            }
            catch (Exception exp)
            {
                throw exp;
            }
        }
        protected void BtnAlipay_Click(object sender, EventArgs e)
        {
            DefaultAopClient client = new DefaultAopClient(AlipayConfig.mobile_gatewayUrl, AlipayConfig.mobile_app_id, AlipayConfig.mobile_private_key_value, "json", "1.0", AlipayConfig.sign_type, AlipayConfig.mobile_public_key_value, AlipayConfig.charset, false);

            // 外部订单号,商户网站订单系统中唯一的订单号
            string out_trade_no = WIDout_trade_no.Text.Trim();

            // 订单名称
            string subject = WIDsubject.Text.Trim();

            // 付款金额
            string total_amout = WIDtotal_amount.Text.Trim();

            // 商品描述
            string body = WIDbody.Text.Trim();

            // 支付中途退出返回商户网站地址
            string quit_url = WIDquit_url.Text.Trim();

            // 组装业务参数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("");
            // 设置支付完成异步通知接收地址
            // request.SetNotifyUrl("");
            // 将业务model载入到request
            request.SetBizModel(model);
            request.SetNotifyUrl("");
            AlipayTradeWapPayResponse response = null;

            try
            {
                response = client.pageExecute(request, null, "post");
                Response.Write(response.Body);
            }
            catch (Exception exp)
            {
                throw exp;
            }
        }
Exemple #12
0
        //将HttpContext反射到AlipayTradeWapPayModel,只适用于普通类型,复杂类型开发者自行添加实现
        public static AlipayTradeWapPayModel ConvertToModel(OrderListModel orderList, long orderId)
        {
            AlipayTradeWapPayModel t = new AlipayTradeWapPayModel();

            t.Body           = "颜料订单";
            t.Subject        = "颜料订单支付";
            t.GoodsType      = "0";
            t.OutTradeNo     = orderId.ToString();
            t.QuitUrl        = "http://m.gdshiyanwang.com/MyOrder.html";
            t.TimeExpire     = DateTime.Now.AddMinutes(30).ToString("yyyy-MM-dd HH:mm");
            t.TimeoutExpress = DateTime.Now.AddMinutes(20).ToString("yyyy-MM-dd HH:mm");
            t.TotalAmount    = orderList.OrderAmount.ToString();
            return(t);
        }
Exemple #13
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));
            }
        }
        /// <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);
            }
        }
Exemple #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);
        }
Exemple #16
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);
        }
Exemple #17
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);
        }
Exemple #18
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));
        }
        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));
        }
Exemple #20
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));
        }
        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"));
        }
Exemple #22
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);
        }
Exemple #23
0
        /// <summary>
        ///     Wap支付
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public Task <WapPayOutput> WapPay(WapPayInput input)
        {
            var client = GetClient();

            var request = new AlipayTradeWapPayRequest();
            var model   = new AlipayTradeWapPayModel
            {
                Body = input.Body,
                DisablePayChannels = input.DisablePayChannels,
                EnablePayChannels  = input.EnablePayChannels,
                //ExtendParams = input.ex
                GoodsType      = input.GoodsType,
                OutTradeNo     = input.TradeNo ?? Guid.NewGuid().ToString("N"),
                PassbackParams = WebUtility.UrlEncode(input.PassbackParams),
                ProductCode    = "QUICK_WAP_WAY",
                PromoParams    = input.PromoParams,
                //SpecifiedChannel
                StoreId        = input.StoreId,
                Subject        = input.Subject,
                TimeoutExpress = input.TimeoutExpress,
                TotalAmount    = input.TotalAmount.ToString(CultureInfo.InvariantCulture),
                QuitUrl        = input.QuitUrl
            };

            request.SetBizModel(model);
            request.SetNotifyUrl(input.NotifyUrl ?? alipaySettings.Notify);
            var response = client.pageExecute(request);

            if (response.IsError)
            {
                LoggerAction?.Invoke("Error", "支付宝支付请求参数错误:" + JsonConvert.SerializeObject(model));
                throw new AlipayExcetion("支付宝支付请求参数错误,请检查!");
            }

            return(Task.FromResult(new WapPayOutput
            {
                Body = response.Body
            }));
        }
Exemple #24
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);
        }
Exemple #25
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);
        }
Exemple #26
0
        public ActionResult RemitPay(string RemitId)
        {
            var orderModel = DB.Fin_Remit.FindEntity(Convert.ToInt32(RemitId));

            DefaultAopClient client = new DefaultAopClient(Common.Alipay.Config.gatewayUrl, Common.Alipay.Config.app_id, Common.Alipay.Config.private_key, "json", "1.0", Common.Alipay.Config.sign_type, Common.Alipay.Config.alipay_public_key, Common.Alipay.Config.charset, false);
            ////////////////////支付宝支付////////////////////////请求参数////////////////////////////////////////////

            //商户订单号,+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++,必填
            string out_trade_no = orderModel.RemitId.ToString();

            //订单名称,必填
            string subject = "汇款申请";

            //付款金额,必填
            string total_fee = orderModel.Amount.ToString();
            //商品描述,可空
            string body = "123";

            if (Convert.ToDecimal(total_fee) > 0)
            {
                //// 组装业务参数model
                AlipayTradeWapPayModel alipaymodel = new AlipayTradeWapPayModel();
                alipaymodel.Body        = body;
                alipaymodel.Subject     = subject;
                alipaymodel.TotalAmount = total_fee;
                alipaymodel.OutTradeNo  = out_trade_no;
                alipaymodel.ProductCode = "QUICK_WAP_WAY";
                alipaymodel.QuitUrl     = "/Mall/usercenter/Order";

                AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
                //设置支付完成同步回调地址
                request.SetReturnUrl("http://www.jst1314.cn/member_finance/remit/index");
                //设置支付完成异步通知接收地址
                request.SetNotifyUrl("http://www.jst1314.cn/Member_Mall/Pay/RemitRecevie");
                // 将业务model载入到request
                request.SetBizModel(alipaymodel);
                AlipayTradeWapPayResponse response = null;
                try
                {
                    response = client.pageExecute(request, null, "post");
                    //return response.Body;

                    //return Success("生成订单成功", new
                    //{
                    //    ordercode = orderModel.BillCode,
                    //    addressid = orderModel.PostAddress,
                    //    amount = orderModel.TotalPrice,
                    //    ordertype = orderModel.PaymentType,
                    //    body = response.Body
                    //});
                    ViewBag.body = response.Body;
                    return(View());
                }
                catch (Exception exp)
                {
                    LogHelper.Error("支付接口错误:" + exp.Message);
                    throw exp;
                }
            }
            return(View());
        }
Exemple #27
0
        public ActionResult ajaxorder(OrdersEntity ordersEntity)
        {
            try
            {
                string city = ordersEntity.City;
                if (city.Contains("-"))
                {
                    string[] area = ordersEntity.City.Split('-');
                    if (area.Length > 0)
                    {
                        ordersEntity.Province = area[0]; //省
                        ordersEntity.City     = area[1]; //市
                        ordersEntity.Country  = area[2]; //市
                    }
                }
                else
                {
                    string[] area = ordersEntity.City.Split(' ');
                    if (area.Length > 0)
                    {
                        ordersEntity.Province = area[0]; //省
                        ordersEntity.City     = area[1]; //市
                    }
                }

                string payType = ordersEntity.PayType;
                if (payType == "alipay")
                {
                    payType = "支付宝";
                }
                else
                {
                    if (ordersEntity.PC == 1)
                    {
                        payType = "微信扫码";
                    }
                    else
                    {
                        payType = "微信H5";
                    }
                }
                ordersEntity.PayType = payType;
                ordersEntity         = ordersbll.SaveForm(ordersEntity);

                var sp_billno = ordersEntity.OrderSn;
                var nonceStr  = TenPayV3Util.GetNoncestr();

                //商品Id,用户自行定义
                string productId = ordersEntity.TelphoneID.ToString();

                H5Response root = null;

                if (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    = ordersEntity.Price.ToString();                       // 付款金额"0.01"
                        model.OutTradeNo     = sp_billno;                                           // 外部订单号,商户网站订单系统中唯一的订单号
                        model.ProductCode    = "QUICK_WAP_WAY";
                        model.QuitUrl        = "https://ghdh.digitdance.cn:8069/webapp/jntt/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 H5Response {
                                code = true, status = true, 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
                {
                    //pc端返回二维码,否则H5
                    if (payType == "微信扫码")
                    {
                        //创建请求统一订单接口参数
                        var xmlDataInfo = new TenPayV3UnifiedorderRequestData(WeixinConfig.AppID2,
                                                                              tenPayV3Info.MchId,
                                                                              "扫码支付靓号",
                                                                              sp_billno,
                                                                              Convert.ToInt32(ordersEntity.Price * 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.AppID2,
                                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 = "https://shop.jnlxsm.net/webapp/jntt/queryWx/" + ordersEntity.Id,
                                wx_query_over = "https://shop.jnlxsm.net/webapp/jntt/paymentFinish/" + ordersEntity.Id
                            };

                            root = new H5Response {
                                code = true, status = true, msg = "\u5fae\u4fe1\u626b\u7801\u63d0\u4ea4\u6210\u529f\uff01", data = h5PayData
                            };
                        }
                        else
                        {
                            root = new H5Response {
                                code = false, status = false, msg = result.return_msg
                            };
                        }
                    }
                    else
                    {
                        var xmlDataInfoH5 = new TenPayV3UnifiedorderRequestData(WeixinConfig.AppID2, tenPayV3Info.MchId, "H5购买靓号", sp_billno,
                                                                                // 1,
                                                                                Convert.ToInt32(ordersEntity.Price * 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.AppID2,
                                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 = "https://shop.jnlxsm.net/webapp/jntt/queryWx/" + ordersEntity.Id,
                                wx_query_over = "https://shop.jnlxsm.net/webapp/jntt/paymentFinish/" + ordersEntity.Id
                            };

                            root = new H5Response {
                                code = true, status = true, msg = "\u5fae\u4fe1\u0048\u0035\u63d0\u4ea4\u6210\u529f\uff01", data = h5PayData
                            };
                        }
                        else
                        {
                            root = new H5Response {
                                code = false, status = false, msg = resultH5.return_msg
                            };
                        }
                    }
                }

                LogHelper.AddLog(JsonConvert.SerializeObject(root));//记录日志

                return(Content(JsonConvert.SerializeObject(root)));
            }
            catch (Exception ex)
            {
                LogHelper.AddLog(ex.Message);//记录日志
                throw;
            }
        }
Exemple #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;
            }
        }
Exemple #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);
        }
Exemple #30
0
    protected void Page_Load(object sender, EventArgs e)
    {
        var type   = Request.RequestType.ToUpper();
        var result = new AliPayResult()
        {
            Status = "FAILED",
            Msg    = "",
            Body   = ""
        };

        if (type.Equals("POST"))
        {
            try
            {
                var requestStr = ReadStream(Request.InputStream);
                var logMsg     = bool.Parse(ConfigurationManager.AppSettings["LogMsg"].ToString());

                if (logMsg)
                {
                    Logger.Log(requestStr);
                }

                var turnOn = bool.Parse(ConfigurationManager.AppSettings["AllowPay"].ToString());
                if (turnOn)
                {
                    if (Config.WapAccounts.Count > 0)
                    {
                        // 外部订单号,商户网站订单系统中唯一的订单号
                        string out_trade_no = Request.Form["out_trade_no"];

                        // 订单名称
                        string subject = Request.Form["subject"];

                        // 付款金额
                        string total_amout = Request.Form["total_amout"];

                        // 商品描述
                        string body = Request.Form["body"];

                        // 支付中途退出返回商户网站地址
                        string quit_url = Request.Form["quit_url"];

                        // 支付成功回调商户地址
                        string notify_url = Request.Form["notify_url"];

                        string key = Request.Form["key"];

                        var msg = AddNewOrder(out_trade_no, total_amout, subject, body, key);

                        if (string.IsNullOrEmpty(msg))
                        {
                            var aliAccount          = Config.WapAccounts[0];
                            var alipayPublicKey     = string.Format(Config.alipay_public_key, aliAccount.AppName);
                            var alipayPrivateKey    = string.Format(Config.merchant_private_key, aliAccount.AppName);
                            DefaultAopClient client = new DefaultAopClient(Config.gatewayUrl, aliAccount.AppId, alipayPrivateKey, "json", "1.0", Config.sign_type, alipayPublicKey, Config.charset, true);

                            // 组装业务参数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();
                            // 设置支付完成同步回调地址
                            // request.SetReturnUrl("");
                            // 设置支付完成异步通知接收地址
                            request.SetNotifyUrl("http://139.196.211.10/payapi/Notify_url.aspx");
                            // 将业务model载入到request
                            request.SetBizModel(model);

                            AlipayTradeWapPayResponse response = client.pageExecute(request, null, "post");

                            result.Body   = response.Body;
                            result.Status = "SUCCESS";
                        }
                        else
                        {
                            result.Msg = msg;
                        }
                    }
                    else
                    {
                        result.Msg = "无可用通道...";
                    }
                }
                else
                {
                    result.Msg = "通道维护中...";
                }
            }
            catch (Exception ex)
            {
                Logger.Log("Exception:" + ex.ToString());
                result.Msg = "请求支付宝服务遇到异常,请联系客服!";
            }
        }
        else
        {
            result.Msg = "请发送POST请求";
        }

        Response.ContentType = "application/json; charset=utf-8";
        Response.Write(JsonConvert.SerializeObject(result));
    }