示例#1
0
        /// <summary>
        /// 微信支付
        /// </summary>
        /// <param name="OrderNo"></param>
        /// <returns></returns>
        public override object GetPaySign(string OrderNo, string SellerID, decimal TotalPrice, EnumPaySignType SignType, string ReturnUrl = "", string OpenId = "")
        {
            BLL.OrderService      orderService = new BLL.OrderService(CurrentOperatorUserID);
            DTO.Platform.OrderDTO order        = orderService.GetOrder(OrderNo);

            if (order != null)
            {
                #region 获取订单说明和描述

                string Subject = "-";
                string Body    = order.OrderType.GetEnumDescript();
                if (order.Details != null && order.Details.Count == 1)
                {
                    Subject = order.Details[0].Subject;
                }
                else if (order.Details != null)
                {
                    Subject = string.Format("共{0}件商品", order.Details.Count);
                }
                else
                {
                    Subject = string.Format("共{0}件商品", 0);
                }

                #endregion

                UnifiedOrder pay = new UnifiedOrder();

                if (SignType == EnumPaySignType.Web)
                {
                    return(pay.GetQRCodeUrlWhenWeb(OrderNo, Subject, Body, TotalPrice.ToString(), SellerID));
                }
                //H5支付方式
                else if (SignType == EnumPaySignType.Wap)
                {
                    return(pay.GetJumpUrlWhenMWeb(OrderNo, Subject, Body, TotalPrice.ToString(), SellerID));
                }
                //JS支付(公众号)
                else if (SignType == EnumPaySignType.Js)
                {
                    var pre_payId = pay.GetPrepayIdWhenJsSdk(OrderNo, Subject, Body, TotalPrice.ToString(), SellerID, OpenId, order.OrderOutID);
                    return(GetJsApiParameters(pre_payId, SellerID));
                }
                else if (SignType == EnumPaySignType.App)
                {
                    var pre_payId = pay.GetPrepayIdWhenApp(OrderNo, Subject, Body, TotalPrice.ToString(), SellerID);
                    return(GetAppApiParamters(pre_payId, SellerID));
                }
                else
                {
                    return(pay.GetQRCodeUrlWhenWeb(OrderNo, Subject, Body, TotalPrice.ToString(), SellerID));
                }
            }
            else
            {
                throw new System.ArgumentException("订单不存在");
            }
        }
示例#2
0
        /// <summary>
        /// 阿里支付
        /// </summary>
        /// <param name="OrderNo"></param>
        /// <returns></returns>
        public override object GetPaySign(string OrderNo, string SellerID, decimal TotalPrice, EnumPaySignType SignType, string ReturnUrl = "", string OpenId = "")
        {
            BLL.OrderService      bll   = new BLL.OrderService(CurrentOperatorUserID);
            DTO.Platform.OrderDTO order = bll.GetOrder(OrderNo);

            if (order != null)
            {
                #region 获取订单说明和描述

                string Subject = "-";
                string Body    = order.OrderType.GetEnumDescript();
                if (order.Details != null && order.Details.Count == 1)
                {
                    Subject = order.Details[0].Subject;
                }
                else if (order.Details != null)
                {
                    Subject = string.Format("共{0}件商品", order.Details.Count);
                }
                else
                {
                    Subject = string.Format("共{0}件商品", 0);
                }

                #endregion

                NavivePay pay = new NavivePay(SellerID);

                if (SignType == EnumPaySignType.App)
                {
                    return(pay.GetMobilePayParams(OrderNo, Subject, Body, TotalPrice.ToString(), ReturnUrl));
                }
                else
                {
                    return(pay.GetWapPayParams(OrderNo, Subject, Body, TotalPrice.ToString(), ReturnUrl));
                }
            }
            else
            {
                throw new System.ArgumentException("订单不存在");
            }
        }