internal static async Task <Gpa_response> FundUserAccount(string userToken, string fundingSourceToken, double fundingAmount = 1000) { // Get client / fixture var client = ClientFactory.GetMarqetaClient(); // Check balance before funding var balances1 = await client.BalancesGetAsync(userToken); Assert.NotNull(balances1); // Fund user account var gpaRequest = new Gpa_request { User_token = userToken, Amount = fundingAmount, Currency_code = "USD", Funding_source_token = fundingSourceToken }; var gpaResponse = await client.GpaordersPostAsync(gpaRequest); Assert.NotNull(gpaResponse); // Ensure funds have been added var balances2 = await client.BalancesGetAsync(userToken); Assert.NotNull(balances2); Assert.Equal(balances1.Gpa.Available_balance + fundingAmount, balances2.Gpa.Available_balance); return(gpaResponse); }
public async void QuickStart() { // Get client / fixture var client = ClientFactory.GetMarqetaClient(); var fixture = new Fixture(); // // Step 2: Create objects // https://www.marqeta.com/api/guides/WIlA2isAAMkAsk6F/quick-start--marqeta-api#step_____create_objects // // Create card product var cardProductRequest = new Card_product_request { Start_date = DateTimeOffset.Now.Date, Name = fixture.Create <string>(), Config = new Card_product_config { Fulfillment = new Card_product_fulfillment { Payment_instrument = Card_product_fulfillmentPayment_instrument.VIRTUAL_PAN }, Poi = new Poi { Ecommerce = true }, Card_life_cycle = new Card_life_cycle { Activate_upon_issue = true }, } }; var cardProductResponse = await client.CardproductsPostAsync(cardProductRequest); Assert.NotNull(cardProductResponse); // Create a program funding sources var programFundingSourceRequest = fixture.Build <Program_funding_source_request>() .Without(pfsr => pfsr.Active) .Without(pfsr => pfsr.Token) .Create(); var programFundingSourceResponse = await client.FundingsourcesProgramPostAsync(programFundingSourceRequest); Assert.NotNull(programFundingSourceResponse); // Create user account var cardHolderModel = new Card_holder_model(); var cardHolderResponse = await client.UsersPostAsync(cardHolderModel); Assert.NotNull(cardHolderResponse); // Create card var cardRequest = new Card_request { User_token = cardHolderResponse.Token, Card_product_token = cardProductResponse.Token, }; var cardResponse = await client.CardsPostAsync(cardRequest); Assert.NotNull(cardResponse); // Activate card var cardTransitionRequest = new Card_transition_request { Card_token = cardResponse.Token, State = Card_transition_requestState.ACTIVE, Channel = Card_transition_requestChannel.API, Reason_code = Card_transition_requestReason_code._00 }; var cardTransitionResponse = await client.CardtransitionsPostAsync(cardTransitionRequest); Assert.NotNull(cardTransitionResponse); // // Step 3: Fund user account // https://www.marqeta.com/api/guides/WIlA2isAAMkAsk6F/quick-start--marqeta-api#step_____fund_user_account_ // // Fund user account var gpaRequest = new Gpa_request { User_token = cardHolderResponse.Token, Amount = 1000, Currency_code = "USD", Funding_source_token = programFundingSourceResponse.Token }; var gpaResponse = await client.GpaordersPostAsync(gpaRequest); Assert.NotNull(gpaResponse); // // Step 4: Transact // https://www.marqeta.com/api/guides/WIlA2isAAMkAsk6F/quick-start--marqeta-api#step_____transact_ // // Transact var authRequest = new Auth_request_model { Amount = 10, Mid = fixture.Create <string>(), Card_token = cardResponse.Token, }; var simulateResponse = await client.SimulateAuthorizationAsync(authRequest); Assert.NotNull(simulateResponse); }