public void Sale_WithStoreInVaultAndSpecifyingToken()
{
string customerId = new Random().Next(1000000).ToString();
string paymentToken = new Random().Next(1000000).ToString();
TransactionRequest request = new TransactionRequest
{
Amount = SandboxValues.TransactionAmount.AUTHORIZE,
CreditCard = new TransactionCreditCardRequest
{
Token = paymentToken,
Number = SandboxValues.CreditCardNumber.VISA,
ExpirationDate = "05/2009"
},
Customer = new CustomerRequest
{
Id = customerId,
FirstName = "Jane",
},
Options = new TransactionOptionsRequest
{
StoreInVault = true
}
};
Result<Transaction> result = gateway.Transaction.Sale(request);
Assert.IsTrue(result.IsSuccess());
Transaction transaction = result.Target;
CreditCard creditCard = transaction.CreditCard;
Assert.AreEqual(paymentToken, creditCard.Token);
Assert.AreEqual("05/2009", transaction.GetVaultCreditCard().ExpirationDate);
Customer customer = transaction.Customer;
Assert.AreEqual(customerId, customer.Id);
Assert.AreEqual("Jane", transaction.GetVaultCustomer().FirstName);
}