当前位置: 首页>>代码示例>>C#>>正文


C# HttpRequest.MustNotBeNull方法代码示例

本文整理汇总了C#中HttpRequest.MustNotBeNull方法的典型用法代码示例。如果您正苦于以下问题:C# HttpRequest.MustNotBeNull方法的具体用法?C# HttpRequest.MustNotBeNull怎么用?C# HttpRequest.MustNotBeNull使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在HttpRequest的用法示例。


在下文中一共展示了HttpRequest.MustNotBeNull方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ProcessCallback

        public override CallbackInfo ProcessCallback( Order order, HttpRequest request, IDictionary<string, string> settings )
        {
            CallbackInfo callbackInfo = null;

              try {
            order.MustNotBeNull( "order" );
            request.MustNotBeNull( "request" );
            settings.MustNotBeNull( "settings" );
            settings.MustContainKey( "mode", "settings" );
            settings.MustContainKey( settings[ "mode" ] + "_secret_key", "settings" );

            // If in test mode, write out the form data to a text file
            if ( settings.ContainsKey( "mode" ) && settings[ "mode" ] == "test" ) {
              LogRequest( request, logPostData: true );
            }

            StripeChargeCreateOptions chargeOptions = new StripeChargeCreateOptions {
              AmountInCents = (int)( order.TotalPrice.Value.WithVat * 100 ),
              Currency = CurrencyService.Instance.Get( order.StoreId, order.CurrencyId ).IsoCode,
              TokenId = request.Form[ "stripeToken" ],
              Description = order.CartNumber,
              Capture = settings.ContainsKey( "capture" ) && ( settings[ "capture" ].TryParse<bool>() ?? false )
            };

            StripeChargeService chargeService = new StripeChargeService( settings[ settings[ "mode" ] + "_secret_key" ] );
            StripeCharge charge = chargeService.Create( chargeOptions );

            if ( charge.AmountInCents != null && charge.Paid != null && charge.Paid.Value ) {
              callbackInfo = new CallbackInfo( (decimal)charge.AmountInCents.Value / 100, charge.Id, charge.Captured != null && charge.Captured.Value ? PaymentState.Captured : PaymentState.Authorized );

            }

              } catch ( StripeException e ) {
            // Pass through request fields
            string requestFields = string.Join( "", request.Form.AllKeys.Select( k => "<input type=\"hidden\" name=\"" + k + "\" value=\"" + request.Form[ k ] + "\" />" ) );

            //Add error details from the exception.
            requestFields = requestFields + "<input type=\"hidden\" name=\"TransactionFailed\" value=\"true\" />";
            requestFields = requestFields + "<input type=\"hidden\" name=\"FailureReason.chargeId\" value=\"" + e.StripeError.ChargeId + "\" />";
            requestFields = requestFields + "<input type=\"hidden\" name=\"FailureReason.Code\" value=\"" + e.StripeError.Code + "\" />";
            requestFields = requestFields + "<input type=\"hidden\" name=\"FailureReason.Error\" value=\"" + e.StripeError.Error + "\" />";
            requestFields = requestFields + "<input type=\"hidden\" name=\"FailureReason.ErrorSubscription\" value=\"" + e.StripeError.ErrorSubscription + "\" />";
            requestFields = requestFields + "<input type=\"hidden\" name=\"FailureReason.ErrorType\" value=\"" + e.StripeError.ErrorType + "\" />";
            requestFields = requestFields + "<input type=\"hidden\" name=\"FailureReason.Message\" value=\"" + e.StripeError.Message + "\" />";
            requestFields = requestFields + "<input type=\"hidden\" name=\"FailureReason.Parameter\" value=\"" + e.StripeError.Parameter + "\" />";

            string paymentForm = PaymentMethodService.Instance.Get( order.StoreId, order.PaymentInformation.PaymentMethodId.Value ).GeneratePaymentForm( order, requestFields );

            //Force the form to auto submit
            paymentForm += "<script type=\"text/javascript\">document.forms[0].submit();</script>";

            //Write out the form
            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.Write( paymentForm );
            HttpContext.Current.Response.End();
              } catch ( Exception exp ) {
            LoggingService.Instance.Log( exp, "Stripe(" + order.CartNumber + ") - ProcessCallback" );
              }

              return callbackInfo;
        }
开发者ID:jizepi,项目名称:Payment-providers,代码行数:61,代码来源:Stripe.cs

示例2: ProcessRequest

        public override string ProcessRequest( Order order, HttpRequest request, IDictionary<string, string> settings )
        {
            string response = "";

              try {
            order.MustNotBeNull( "order" );
            request.MustNotBeNull( "request" );
            settings.MustNotBeNull( "settings" );

            // If in test mode, write out the form data to a text file
            if ( settings.ContainsKey( "mode" ) && settings[ "mode" ] == "test" ) {
              LogRequest( request, logPostData: true );
            }

            //Stripe supports webhooks
            StripeEvent stripeEvent = GetStripeEvent( request );
            StripeCharge charge = Mapper<StripeCharge>.MapFromJson( stripeEvent.Data.Object.ToString() );

            if ( stripeEvent.Type.StartsWith( "charge." ) ) {
              PaymentState paymentState = GetPaymentState( charge );
              if ( order.TransactionInformation.PaymentState != paymentState ) {
            order.TransactionInformation.TransactionId = charge.Id;
            order.TransactionInformation.PaymentState = paymentState;
            order.Save();
              }
            }

              } catch ( Exception exp ) {
            LoggingService.Instance.Log( exp, "Stripe(" + order.CartNumber + ") - ProcessRequest" );
              }

              return response;
        }
开发者ID:jizepi,项目名称:Payment-providers,代码行数:33,代码来源:Stripe.cs

示例3: GetCartNumber

        public override string GetCartNumber( HttpRequest request, IDictionary<string, string> settings )
        {
            string cartNumber = "";

              try {
            request.MustNotBeNull( "request" );
            settings.MustNotBeNull( "settings" );

            // If in test mode, write out the form data to a text file
            if ( settings.ContainsKey( "mode" ) && settings[ "mode" ] == "test" ) {
              LogRequest( request, logPostData: true );
            }

            StripeEvent stripeEvent = GetStripeEvent( request );

            // We are only interested in charge events
            if ( stripeEvent != null && stripeEvent.Type.StartsWith( "charge." ) ) {
              StripeCharge stripeCharge = Mapper<StripeCharge>.MapFromJson( stripeEvent.Data.Object.ToString() );
              cartNumber = stripeCharge.Description;
            } else {
              HttpContext.Current.Response.StatusCode = (int)HttpStatusCode.BadRequest;
            }

              } catch ( Exception exp ) {
            LoggingService.Instance.Log( exp, "Stripe - Get cart number" );
              }

              return cartNumber;
        }
开发者ID:jizepi,项目名称:Payment-providers,代码行数:29,代码来源:Stripe.cs

示例4: ProcessCallback

        public override CallbackInfo ProcessCallback( Order order, HttpRequest request, IDictionary<string, string> settings )
        {
            CallbackInfo callbackInfo = null;

              try {
            order.MustNotBeNull( "order" );
            request.MustNotBeNull( "request" );
            settings.MustNotBeNull( "settings" );
            settings.MustContainKey( "md5k1", "settings" );
            settings.MustContainKey( "md5k2", "settings" );

            //Write data when testing
            if ( settings.ContainsKey( "test" ) && settings[ "test" ] == "1" ) {
              LogRequest( request, logPostData: true );
            }

            string transaction = request.Form[ "transact" ];
            string currencyCode = request.Form[ "currency" ];
            string strAmount = request.Form[ "amount" ];
            string authkey = request.Form[ "authkey" ];
            string capturenow = request.Form[ "capturenow" ];
            string fee = request.Form[ "fee" ] ?? "0"; //Is not always in the return data
            string paytype = request.Form[ "paytype" ];
            string cardnomask = request.Form[ "cardnomask" ];

            decimal totalAmount = ( decimal.Parse( strAmount, CultureInfo.InvariantCulture ) + decimal.Parse( fee, CultureInfo.InvariantCulture ) );
            bool autoCaptured = capturenow == "1";

            string md5CheckValue = string.Empty;
            md5CheckValue += settings[ "md5k1" ];
            md5CheckValue += "transact=" + transaction;
            md5CheckValue += "&amount=" + totalAmount.ToString( "0", CultureInfo.InvariantCulture );
            md5CheckValue += "&currency=" + currencyCode;

            //authkey = MD5(k2 + MD5(k1 + "transact=tt&amount=aa&currency=cc"))
            if ( GenerateMD5Hash( settings[ "md5k2" ] + GenerateMD5Hash( md5CheckValue ) ) == authkey ) {
              callbackInfo = new CallbackInfo( totalAmount / 100M, transaction, !autoCaptured ? PaymentState.Authorized : PaymentState.Captured, paytype, cardnomask );
            } else {
              LoggingService.Instance.Log( "DIBS(" + order.CartNumber + ") - MD5Sum security check failed" );
            }
              } catch ( Exception exp ) {
            LoggingService.Instance.Log( exp, "DIBS(" + order.CartNumber + ") - Process callback" );
              }

              return callbackInfo;
        }
开发者ID:jizepi,项目名称:Payment-providers,代码行数:46,代码来源:Dibs.cs

示例5: ProcessCallback

        public override CallbackInfo ProcessCallback( Order order, HttpRequest request, IDictionary<string, string> settings )
        {
            CallbackInfo callbackInfo = null;

              try {
            order.MustNotBeNull( "order" );
            request.MustNotBeNull( "request" );
            settings.MustNotBeNull( "settings" );
            settings.MustContainKey( "md5CallbackSecret", "settings" );

            //Write data when testing
            if ( settings.ContainsKey( "testmode" ) && settings[ "testmode" ] == "1" ) {
              LogRequest( request, logGetData: true );
            }

            string cartNumber = request.QueryString[ "orderid" ];
            string currency = request.QueryString[ "currency" ];
            string amount = request.QueryString[ "amount" ];
            string cardType = settings.ContainsKey( "cardtype" ) ? settings[ "cardtype" ] : string.Empty;

            string md5CheckValue = GenerateMD5Hash( cartNumber + currency + cardType + amount + settings[ "md5CallbackSecret" ] );

            if ( order.CartNumber.Replace( StoreService.Instance.Get( order.StoreId ).OrderSettings.CartNumberPrefix, "" ) == cartNumber && md5CheckValue.Equals( request.QueryString[ "checkmd5callback" ] ) ) {

              string transaction = request.QueryString[ "transacknum" ];
              string cardtype = request.QueryString[ "cardtype" ];
              string cardnomask = request.QueryString[ "cardnomask" ];

              decimal totalAmount = decimal.Parse( amount, CultureInfo.InvariantCulture );

              //Wannafind cant give us info about auto capturing
              callbackInfo = new CallbackInfo( totalAmount / 100M, transaction, PaymentState.Authorized, cardtype, cardnomask );
            } else {
              LoggingService.Instance.Log( "Wannafind(" + order.CartNumber + ") - MD5Sum security check failed" );
            }
              } catch ( Exception exp ) {
            LoggingService.Instance.Log( exp, "Wannafind(" + order.CartNumber + ") - Process callback" );
              }

              return callbackInfo;
        }
开发者ID:jizepi,项目名称:Payment-providers,代码行数:41,代码来源:Wannafind.cs

示例6: ProcessCallback

        public override CallbackInfo ProcessCallback( Order order, HttpRequest request, IDictionary<string, string> settings )
        {
            CallbackInfo callbackInfo = null;

              try {
            order.MustNotBeNull( "order" );
            request.MustNotBeNull( "request" );
            settings.MustNotBeNull( "settings" );
            settings.MustContainKey( "privateKey", "settings" );

            string orderName = order.CartNumber;
            while ( orderName.Length < 4 )
              orderName = "0" + orderName;

            string checkSum = request.Headers[ "QuickPay-Checksum-Sha256" ];

            byte[] bytes = new byte[ request.InputStream.Length ];
            request.InputStream.Read( bytes, 0, bytes.Length );
            request.InputStream.Position = 0;

            string streamContent = Encoding.ASCII.GetString( bytes );

            Result result = JsonConvert.DeserializeObject<Result>( streamContent );

            if ( orderName == result.OrderId && GetChecksum( streamContent, settings[ "privateKey" ] ) == checkSum ) {
              Operation lastAuthorize = result.Operations.LastOrDefault( o => o.Type == "authorize" );

              if ( lastAuthorize != null ) {
            if ( lastAuthorize.QpStatusCode == "20000" ) {
              decimal amount = decimal.Parse( lastAuthorize.Amount, CultureInfo.InvariantCulture ) / 100M;

              callbackInfo = new CallbackInfo( amount, result.Id, PaymentState.Authorized, result.Metadata.Type, result.Metadata.Last4 );
            } else {
              LoggingService.Instance.Warn<QuickPay10>( "Quickpay10(" + order.CartNumber + ") - Error making API request - error code: " + lastAuthorize.QpStatusCode + " | error message: " + lastAuthorize.QpStatusMsg );
            }
              } else {
            LoggingService.Instance.Warn<QuickPay10>( "QuickPay10(" + order.CartNumber + ") - No authorize found" );
              }
            } else {
              LoggingService.Instance.Warn<QuickPay10>( "QuickPay10(" + order.CartNumber + ") - Checksum security check failed" );
            }
              } catch ( Exception exp ) {
            LoggingService.Instance.Error<QuickPay10>( "QuickPay10(" + order.CartNumber + ") - Process callback", exp );
              }

              return callbackInfo;
        }
开发者ID:EtchUK,项目名称:Payment-providers,代码行数:47,代码来源:QuickPay10.cs

示例7: ProcessCallback

        public override CallbackInfo ProcessCallback( Order order, HttpRequest request, IDictionary<string, string> settings )
        {
            CallbackInfo callbackInfo = null;

              try {
            order.MustNotBeNull( "order" );
            request.MustNotBeNull( "request" );
            settings.MustNotBeNull( "settings" );
            settings.MustContainKey( "business", "settings" );

            //Write data when testing
            if ( settings.ContainsKey( "isSandbox" ) && settings[ "isSandbox" ] == "1" ) {
              LogRequest<PayPal>( request, logPostData: true );
            }

            //Verify callback
            ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
            string response = MakePostRequest( settings.ContainsKey( "isSandbox" ) && settings[ "isSandbox" ] == "1" ? "https://www.sandbox.paypal.com/cgi-bin/webscr" : "https://www.paypal.com/cgi-bin/webscr", Encoding.ASCII.GetString( request.BinaryRead( request.ContentLength ) ) + "&cmd=_notify-validate" );

            if ( settings.ContainsKey( "isSandbox" ) && settings[ "isSandbox" ] == "1" ) {
              using ( StreamWriter writer = new StreamWriter( File.Create( HostingEnvironment.MapPath( "~/paypal-callback-data-2.txt" ) ) ) ) {
            writer.WriteLine( response );
            writer.Flush();
              }
            }

            if ( response == "VERIFIED" ) {

              string receiverId = request.Form[ "receiver_id" ];
              string receiverEmail = request.Form[ "receiver_email" ];
              string transaction = request.Form[ "txn_id" ];
              decimal amount = decimal.Parse( request.Form[ "mc_gross" ], CultureInfo.InvariantCulture );
              string state = request.Form[ "payment_status" ];

              string businessSetting = settings[ "business" ];

              //Check if the business email is the same in the callback
              if ( !string.IsNullOrEmpty( transaction ) && ( ( !string.IsNullOrEmpty( receiverId ) && businessSetting == receiverId ) || ( !string.IsNullOrEmpty( receiverEmail ) && businessSetting == receiverEmail ) ) ) {

            //Pending
            if ( state == "Pending" ) {

              if ( request.Form[ "pending_reason" ] == "authorization" ) {
                if ( request.Form[ "transaction_entity" ] == "auth" ) {
                  callbackInfo = new CallbackInfo( amount, transaction, PaymentState.Authorized );
                }
              } else if ( request.Form[ "pending_reason" ] == "multi_currency" ) {
                callbackInfo = new CallbackInfo( amount, transaction, PaymentState.PendingExternalSystem );
              }

              //Completed - auto capture
            } else if ( state == "Completed" ) {
              callbackInfo = new CallbackInfo( amount, transaction, PaymentState.Captured );
            }
              } else {
            LoggingService.Instance.Warn<PayPal>( "PayPal(" + order.CartNumber + ") - Business isn't identical - settings: " + businessSetting + " | request-receiverId: " + receiverId + " | request-receiverEmail: " + receiverEmail );
              }
            } else {
              LoggingService.Instance.Warn<PayPal>( "PayPal(" + order.CartNumber + ") - Couldn't verify response: " + response );
            }
              } catch ( Exception exp ) {
            LoggingService.Instance.Error<PayPal>( "PayPal(" + order.CartNumber + ") - Process callback", exp );
              }

              return callbackInfo;
        }
开发者ID:EtchUK,项目名称:Payment-providers,代码行数:66,代码来源:PayPal.cs


注:本文中的HttpRequest.MustNotBeNull方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。