コード例 #1
0
        private StripeCustomer createTCGStripeCustomer(StorePaymentMethod_Details details, string sourceToken)
        {
            StripeConfiguration.SetApiKey(secretKey);
            StripeCustomer customer = new StripeCustomer();

            try
            {
                StripeSource source = new StripeSource();
                if (sourceToken == null)
                {
                    source = createStripeSource(details.CardNumber, details.CardExpiryYear, details.CardExpiryMonth, details.CardCVV, details.CardHolderFullName, true);
                }
                else
                {
                    source.Id = sourceToken;
                }
                //ATTACH THE SOURCE TO CUSTOMER
                var customerOptions = new StripeCustomerCreateOptions()
                {
                    SourceToken = source.Id
                };

                var customerService = new StripeCustomerService();
                customer = customerService.Create(customerOptions);
            }
            catch (StripeException e)
            {
                throw new StripeException(e.HttpStatusCode, e.StripeError, e.Message);
            }
            return(customer);
        }
コード例 #2
0
        public StorePaymentMethod_Result StorePaymentMethod(StorePaymentMethod_Details details)
        {
            var client = new PaymentGatewayLibrary.VCSTokenisation.Svc_VirtualRecur();

            var token = ShortStringCreator.Create(15);

            var result = client.AddCCTransaction(
                new PaymentGatewayLibrary.VCSTokenisation.AddCCRequest
            {
                UserID          = userID,
                UserName        = UserName,
                Password        = Password,
                ReferenceNumber = token,     //the tokenization token
                CardNumber      = details.CardNumber,
                CardExpiryYY    = details.CardExpiryYear.ToString(),
                CardExpiryMM    = details.CardExpiryMonth.ToString(),
                CVC             = details.CardCVV,
                CardHolderName  = details.CardHolderFullName,
                StartDate       = DateTime.Now.AddDays(1).ToString("yyyy'/'MM'/'dd"), //"2016/04/29",//otherwise complains that it should be in future if set to DateTime.Now
                Frequency       = "O",                                                //on demand
                OccurCount      = "U",                                                //unlimited
                MerchantVar1    = details.ClientIdentifier,
            });

            var return_result = new StorePaymentMethod_Result {
                CardToken = token, ErrorCode = result.ResultCode, ErrorMessage = result.ResultMessage, isSuccess = int.Parse(result.ResultCode) == 0
            };

            //if (paymentOptions.ThreeDSecure && details.doThreeDSecure)
            //{
            //    return_result.ThreeDSecurePost = Lookup3dSecure(new Lookup3dSecure_Details { ProviderToken = return_result.CardToken, ExternalIdentifier1 = details.ClientIdentifier, ExternalIdentifier2 = details.CardIdentifier }).ThreeDSecurePost;
            //}

            return(return_result);
        }
コード例 #3
0
        public StorePaymentMethod_Result StorePaymentMethod(StorePaymentMethod_Details details)
        {
            System.Collections.Specialized.NameValueCollection parameters = new System.Collections.Specialized.NameValueCollection();
            parameters.Add("auth_id", authID);
            parameters.Add("auth_pass", authPass);
            parameters.Add("card_num", details.CardNumber);
            parameters.Add("card_cvv", details.CardCVV);
            parameters.Add("card_expiry", GatewayUtils.formatExpiryDateYY(details.CardExpiryMonth, details.CardExpiryYear));
            parameters.Add("cust_name", "");
            parameters.Add("cust_address", "");
            parameters.Add("cust_postcode", "");
            parameters.Add("cust_country", "");
            parameters.Add("cust_ip", "");
            parameters.Add("cust_email", "");
            parameters.Add("cust_tel", "");
            parameters.Add("tran_ref", details.ClientIdentifier);
            parameters.Add("tran_amount", "1.00");
            parameters.Add("tran_currency", "");
            parameters.Add("tran_testmode", Mode);
            parameters.Add("tran_type", "verify");
            parameters.Add("tran_class", "ecom");

            var result = DoUrlEncodedFormPost("https://secure.cashflows.com/gateway/remote", parameters);

            var result_set = result.Split('|');

            if (result_set.Length != 5)
            {
                throw new Exception("Response format invalid");
            }

            var status = result_set[0];
            var transactionIdentifier = result_set[1];
            var avs       = result_set[2];
            var auth_code = result_set[3];
            var message   = result_set[4];

            bool isSuccess = status == "A";

            return(new StorePaymentMethod_Result
            {
                CardToken = transactionIdentifier,
                ErrorCode = !isSuccess ? auth_code : "",
                ErrorMessage = !isSuccess ? message : "",
                isSuccess = isSuccess
            });
        }
コード例 #4
0
        public StorePaymentMethod_Result StorePaymentMethod(StorePaymentMethod_Details details)
        {
            var client = newVaultClient();

            string cardTypeNumber = details.CardType == CardTypeEnum.VISA ? "7" : "8";

            var result = client.fCreateTokenCC(MerchantUID, VaultApplicationUID, details.ClientIdentifier, details.CardHolderFullName, details.CardNumber, details.CardExpiryMonth.ToString(), details.CardExpiryYear.ToString());

            var resultArray = result.ToList();

            bool isSuccess = resultArray[0].ToString().Split(new string[] { "||" }, StringSplitOptions.RemoveEmptyEntries)[1].Trim() == "0";

            return(new StorePaymentMethod_Result
            {
                isSuccess = isSuccess,
                CardToken = isSuccess ? resultArray[1].ToString().Split(new string[] { "||" }, StringSplitOptions.RemoveEmptyEntries)[1].Trim() : "",
                ErrorCode = !isSuccess ? resultArray[2].ToString().Split(new string[] { "||" }, StringSplitOptions.RemoveEmptyEntries)[1].Trim() : "",
                ErrorMessage = !isSuccess ? resultArray[2].ToString() : ""
            });
        }
コード例 #5
0
        public StorePaymentMethod_Result StorePaymentMethod(StorePaymentMethod_Details details)
        {
            //generate TokenisePost
            StringBuilder payfastUrl = new StringBuilder(posturl + "?");

            payfastUrl.Append("merchant_id=" + HttpUtility.UrlEncode(MerchantID));
            payfastUrl.Append("&merchant_key=" + HttpUtility.UrlEncode(MerchantKey));
            payfastUrl.Append("&return_url=" + HttpUtility.UrlEncode(details.HPP_Details.SuccessUrl));
            payfastUrl.Append("&cancel_url=" + HttpUtility.UrlEncode(details.HPP_Details.CancelUrl));
            payfastUrl.Append("&notify_url=" + HttpUtility.UrlEncode(details.HPP_Details.CompleteUrl));
            payfastUrl.Append("&m_payment_id=" + HttpUtility.UrlEncode(details.HPP_Details.TransactionReference));
            payfastUrl.Append("&amount=" + HttpUtility.UrlEncode(details.HPP_Details.ItemAmount.ToString("F2")));
            payfastUrl.Append("&item_name=" + HttpUtility.UrlEncode(details.HPP_Details.ItemDescription));
            payfastUrl.Append("&custom_str1=" + details.HPP_Details.CustomerID);
            payfastUrl.Append("&subscription_type=" + "2");

            return(new StorePaymentMethod_Result
            {
                TokeniseURL = payfastUrl.ToString()
            });
        }
コード例 #6
0
 public StorePaymentMethod_Result StorePaymentMethod(StorePaymentMethod_Details details)
 {
     try
     {
         StripeCustomer customer = createTCGStripeCustomer(details, null);
         return(new StorePaymentMethod_Result()
         {
             CardToken = customer.Id,
             isSuccess = true,
             TokenisePost = customer.StripeResponse.ObjectJson,
         });
     }
     catch (StripeException e)
     {
         return(new StorePaymentMethod_Result()
         {
             CardToken = null,
             isSuccess = false,
             ErrorCode = e.StripeError.Code,
             ErrorMessage = e.StripeError.Message
         });
     }
 }
コード例 #7
0
 public StorePaymentMethod_Result StorePaymentMethod(StorePaymentMethod_Details details)
 {
     throw new NotImplementedException();
 }