public void ItShouldCreateATransactionWithInstantBuyKey() { // Cria o cliente para retentar a transação. IGatewayServiceClientStone serviceClient = this.GetGatewayServiceClient(); // Cria transação de cartão de crédito para ser retentada HttpResponse <CreateSaleResponse> saleResponse = serviceClient.Sale.Create(this._createCreditCardSaleRequestStone); Assert.AreEqual(saleResponse.HttpStatusCode, HttpStatusCode.Created); var instantBuyKey = saleResponse.Response.CreditCardTransactionResultCollection.Select(x => x.CreditCard.InstantBuyKey); // Cria requisição com instant buy key CreateSaleRequestStone createSale = new CreateSaleRequestStone { CreditCardTransactionStoneCollection = new Collection <CreditCardTransactionStone> { new CreditCardTransactionStone { AmountInCents = 10000, CreditCard = new CreditCardStone { InstantBuyKey = instantBuyKey.FirstOrDefault() } } } }; // Faz a requisição HttpResponse <CreateSaleResponse> httpResponse = serviceClient.Sale.Create(createSale); Assert.AreEqual(HttpStatusCode.Created, httpResponse.HttpStatusCode); }
/// <summary> /// Cria uma venda, contendo transações de boleto e/ou cartão de crédito /// </summary> /// <param name="createSaleRequestStone">Dados da venda</param> /// <returns></returns> public HttpResponse <CreateSaleResponse> Create(CreateSaleRequestStone createSaleRequestStone) { // Configura MerchantKey e o header NameValueCollection headers = this.GetHeaders(); headers.Add("MerchantKey", this.MerchantKey.ToString()); // Envia requisição return(this.HttpUtility.SubmitRequest <CreateSaleRequestStone, CreateSaleResponse>(createSaleRequestStone, string.Concat(this.HostUri, this.ResourceName), HttpVerbEnum.Post, HttpContentTypeEnum.Json, headers)); }
private CreateSaleRequestStone CreateStoneSaleRequest(CreditCardTransactionStone transaction) { // Cria requisição. var createSaleRequest = new CreateSaleRequestStone() { // Adiciona a transação na requisição. CreditCardTransactionStoneCollection = new Collection <CreditCardTransactionStone>(new CreditCardTransactionStone[] { transaction }), Order = new Order() { OrderReference = "NumeroDoPedido" } }; return(createSaleRequest); }
/// <summary> /// Cria uma venda com uma coleção de transações de cartão de crédito /// </summary> /// <param name="creditCardTransactionCollection">Coleção de transações de cartão de crédito</param> /// <param name="orderReference">Identificação do pedido na loja</param> /// <returns></returns> public HttpResponse <CreateSaleResponse> Create(Collection <CreditCardTransactionStone> creditCardTransactionCollection, string orderReference) { CreateSaleRequestStone createSaleRequestStone = new CreateSaleRequestStone { CreditCardTransactionStoneCollection = creditCardTransactionCollection, Options = new SaleOptions() { IsAntiFraudEnabled = false } }; // Se não for informado o comprador nem o carrinho de compras não será possível utilizar o serviço de anti fraude. if (string.IsNullOrWhiteSpace(orderReference) == false) { createSaleRequestStone.Order = new Order() { OrderReference = orderReference }; } return(this.Create(createSaleRequestStone)); }
public void ItShouldCreateSaleWithAllFields() { CreateSaleRequestStone saleRequestStone = new CreateSaleRequestStone(); // Dados da transação de cartão de crédito. saleRequestStone.CreditCardTransactionStoneCollection = new Collection <CreditCardTransactionStone>() { new CreditCardTransactionStone() { AmountInCents = 100, CreditCardOperation = CreditCardOperationEnum.AuthAndCapture, CreditCard = new CreditCardStone() { CreditCardBrand = CreditCardBrandEnum.Visa, CreditCardNumber = "4111111111111111", ExpMonth = 10, ExpYear = 2018, HolderName = "Somebody", SecurityCode = "123" }, // Opcional. Options = new CreditCardTransactionOptions() { // Indica que a transação é de simulação. PaymentMethodCode = 1 } } }; // Dados do comprador. saleRequestStone.Buyer = new Buyer() { DocumentNumber = "11111111111", DocumentType = DocumentTypeEnum.CPF, Email = "*****@*****.**", EmailType = EmailTypeEnum.Personal, Gender = GenderEnum.M, HomePhone = "(21) 12345678", Name = "Somebody", PersonType = PersonTypeEnum.Person, AddressCollection = new Collection <BuyerAddress>() { new BuyerAddress() { AddressType = AddressTypeEnum.Residential, City = "Rio de Janeiro", Complement = "10º floor", Country = CountryEnum.Brazil.ToString(), District = "Centro", Number = "199", State = "RJ", Street = "Rua da Quitanda", ZipCode = "20091005" } } }; // Indica que o pedido usará anti fraude. saleRequestStone.Options.IsAntiFraudEnabled = true; // Cria o cliente que enviará a transação para o gateway. IGatewayServiceClientStone serviceClient = this.GetGatewayServiceClient(); // Autoriza a transação de cartão de crédito e recebe a resposta do gateway. HttpResponse <CreateSaleResponse> httpResponse = serviceClient.Sale.Create(saleRequestStone); Assert.AreEqual(HttpStatusCode.Created, httpResponse.HttpStatusCode); }