public RevokePaymentMethod_Result RevokePaymentMethod(RevokePaymentMethod_Details details)
        {
            StripeConfiguration.SetApiKey(secretKey);
            StripeDeleted delete = new StripeDeleted();

            try
            {
                var customerService = new StripeCustomerService();
                delete = customerService.Delete(details.CardToken);
            }
            catch (StripeException e)
            {
                return(new RevokePaymentMethod_Result()
                {
                    ErrorCode = e.StripeError.Code,
                    ErrorMessage = e.StripeError.Message
                });
            }
            return(new RevokePaymentMethod_Result()
            {
                ErrorMessage = delete.Deleted + "",
                isSuccess = delete.Deleted,
                TransactionIdentifier = delete.Id,
            });
        }
示例#2
0
        public RevokePaymentMethod_Result RevokePaymentMethod(RevokePaymentMethod_Details details)
        {
            var client = new PaymentGatewayLibrary.VCSTokenisation.Svc_VirtualRecur();
            var result = client.DeleteCCTransaction(new PaymentGatewayLibrary.VCSTokenisation.DeleteCCRequest {
                UserID = userID, UserName = UserName, Password = Password, ReferenceNumber = details.CardToken
            });

            return(new RevokePaymentMethod_Result {
                ErrorCode = result.ResultCode, ErrorMessage = result.ResultMessage, isSuccess = int.Parse(result.ResultCode) == 0
            });
        }
示例#3
0
        public RevokePaymentMethod_Result RevokePaymentMethod(RevokePaymentMethod_Details details)
        {
            var client = newVaultClient();

            var result = client.fDeregisterTokenCC(MerchantUID, VaultApplicationUID, details.ClientIdentifier);

            var resultArray = result.ToList();

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

            return(new RevokePaymentMethod_Result
            {
                isSuccess = isSuccess,
                TransactionIdentifier = 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() : ""
            });
        }
示例#4
0
 public RevokePaymentMethod_Result RevokePaymentMethod(RevokePaymentMethod_Details details)
 {
     throw new NotImplementedException();
 }
        public RevokePaymentMethod_Result RevokePaymentMethod(RevokePaymentMethod_Details details)
        {
            var url = string.Format(apiurl, details.CardToken, "cancel");

            //do PUT request to URL - header needs to include merchant_id, version, timestamp, signature - body needs to be blank

            var ISO8601_timestamp = DateTimeOffset.Now.ToOffset(new TimeSpan(2, 0, 0)).DateTime.ToString("o");

            Dictionary <string, string> paramDict = new Dictionary <string, string>();

            paramDict.Add("merchant_id", MerchantID);
            paramDict.Add("version", apiVersion);
            paramDict.Add("timestamp", ISO8601_timestamp);
            paramDict.Add("passphrase", Passphrase);

            WebRequest purchase_request = WebRequest.Create(url);

            purchase_request.Headers.Add("merchant_id", paramDict["merchant_id"]);
            purchase_request.Headers.Add("version", paramDict["version"]);
            purchase_request.Headers.Add("timestamp", paramDict["timestamp"]);

            var ordered_keys = paramDict.Keys.OrderBy(r => r).ToArray();

            var signature_string = "";

            for (int i = 0; i < ordered_keys.Length; i++)
            {
                if (i != 0)
                {
                    signature_string += "&";
                }

                var key = ordered_keys[i];

                signature_string += key + "=" + paramDict[key];
            }

            var signature_hash        = System.Security.Cryptography.MD5.Create().ComputeHash(System.Text.Encoding.ASCII.GetBytes(signature_string));
            var signature_hash_string = Convert.ToBase64String(signature_hash);

            purchase_request.Headers.Add("signature", signature_hash_string);

            purchase_request.Method      = "PUT";
            purchase_request.ContentType = "application/x-www-form-urlencoded";

            WebResponse  response       = purchase_request.GetResponse();
            var          data           = response.GetResponseStream();
            StreamReader reader         = new StreamReader(data);
            string       serverResponse = reader.ReadToEnd();

            reader.Close();

            if (string.IsNullOrWhiteSpace(serverResponse) || serverResponse.Trim().StartsWith("{"))
            {
                return(new RevokePaymentMethod_Result
                {
                    isSuccess = false,
                    ErrorMessage = "An unknown error has occurred, return object not in correct format"
                });
            }

            dynamic json_serverResponse = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(serverResponse);

            var code         = json_serverResponse.code;
            var status       = json_serverResponse.status ?? "";
            var dataobj      = json_serverResponse.data ?? null;
            var responseitem = dataobj != null ? dataobj.response : false;
            var messageitem  = dataobj != null ? dataobj.message ?? "" : "";

            /*
             *
             * {
             *      "code": 200,  The HTTP status code for the result
             *      "status": "success", A more verbose description of the result
             *      "data":
             *  {
             *              "response": true, //approved or not
             *              "message": "Success" //error message
             *      }
             * }
             *
             */

            if (code < 200 || code > 299)
            {
                return(new RevokePaymentMethod_Result
                {
                    isSuccess = false,
                    ErrorCode = code.ToString(),
                    ErrorMessage = status
                });
            }

            return(new RevokePaymentMethod_Result
            {
                isSuccess = responseitem,
                ErrorCode = code.ToString(),
                ErrorMessage = messageitem
            });
        }