예제 #1
0
        public override void ProcessRequest()
        {
            if (context.Request["card_transact_status"] != null &&
                context.Request["gateway_result"] != null)
            {
                ProcessCreditCardRequest();
            }
            else
            {
                //Set variables
                TransactionID   = context.Request["tr_id"];
                SentHash        = context.Request["hash"];
                Amount          = context.Request["amount"];
                PayerAccount    = context.Request["payerAccount"];
                MerchantAccount = context.Request["merchantAccount"];
                Status          = context.Request["status"];
                CommandName     = context.Request["user1"];
                Args            = context.Request["user2"];

                //Check IPs
                // --> No check available for SolidTrustPay

                //Check security hash
                CheckIncomeHash();

                //Check duplicated transactions
                CheckIfNotDoneYet(TransactionID);

                //Check if we are the merchant
                CheckMerchant(SolidTrustPayAccountDetails.Exists(MerchantAccount));

                //Check currency
                // --> No check available for SolidTrustPay

                //Check status
                CheckStatus(Status, "COMPLETE");

                //All OK, let's proceed
                Assembly    assembly = Assembly.GetAssembly(typeof(IIpnHandler));
                var         type     = assembly.GetType(CommandName, true, true);
                IIpnHandler command  = Activator.CreateInstance(type) as IIpnHandler;

                command.HandleSolidTrustPay(Args, TransactionID, Amount);
            }
        }
예제 #2
0
 public SolidTrustPayButtonGenerationStrategy(SolidTrustPayAccountDetails pm)
 {
     account = pm;
 }