private void membershipGrantReturned(QAMembershipGrantOperation operation, HttpResponse httpResponse) { PurchaseResponse purchaseResponse = operation.PurchaseResponse; Service.Get <EventDispatcher>().DispatchEvent(new IAPServiceEvents.PurchaseReturned(purchaseResponse)); refreshSFSRights(purchaseResponse.rights); }
public override async Task <PurchaseResponse> GetPurchases(PurchaseRequest request, ServerCallContext context) { if (!Guid.TryParse(request.Transaction.Id, out Guid id)) { throw new ArgumentException($"invalid transaction id {request.Transaction.Id}"); } var response = new PurchaseResponse(); var purchases = id == Guid.Empty ? await this.repo.GetPurchasesAsync() : await this.repo.GetPurchasesAsync(new Shared.DAL.Transaction { ID = id }); var repeated = purchases.Select(o => new Purchase { ProductId = o.ProductID.ToString(), TransactionId = o.TransactionID.ToString(), Count = o.Count, Price = Convert.ToInt32(o.Price), Created = Timestamp.FromDateTime(o.Created) }); response.Purchases.AddRange(repeated); return(response); }
private void HandleFinishedGetLastTransaction(TransactionFlowState txState) { if (txState.Response != null) { var gltResponse = new GetLastTransactionResponse(txState.Response); if (_lastCmd.Length > 1) { // User specified that he intended to retrieve a specific tx by pos_ref_id // This is how you can use a handy function to match it. var success = _spi.GltMatch(gltResponse, _lastCmd[1]); if (success == Message.SuccessState.Unknown) { Console.WriteLine("# Did not retrieve Expected Transaction. Here is what we got:"); } else { Console.WriteLine("# Tx Matched Expected Purchase Request."); } } var purchaseResponse = new PurchaseResponse(txState.Response); Console.WriteLine("# Scheme: {0}", purchaseResponse.SchemeName); Console.WriteLine("# Response: {0}", purchaseResponse.GetResponseText()); Console.WriteLine("# RRN: {0}", purchaseResponse.GetRRN()); Console.WriteLine("# Error: {0}", txState.Response.GetError()); Console.WriteLine("# Customer Receipt:"); Console.WriteLine(purchaseResponse.GetCustomerReceipt().TrimEnd()); } else { // We did not even get a response, like in the case of a time-out. Console.WriteLine("# Could Not Retrieve Last Transaction."); } }
private void checkRestoreReturned(CheckRestoreListOperation operation, HttpResponse httpResponse) { PurchaseResponse purchaseResponse = operation.PurchaseResponse; Service.Get <EventDispatcher>().DispatchEvent(new IAPServiceEvents.CheckRestoreReturned(purchaseResponse)); refreshSFSRights(purchaseResponse.rights); }
public Order( string buyerId, Address shipToAddress, PaymentInfo paymentDetails, List <OrderItem> items, OrderStatus status, Purchase purchase, PurchaseResponse purchaseResponse, OrderTotals totals) { Guard.Against.NullOrEmpty(buyerId, nameof(buyerId)); Guard.Against.Null(shipToAddress, nameof(shipToAddress)); Guard.Against.Null(items, nameof(items)); Guard.Against.Null(paymentDetails, nameof(paymentDetails)); Guard.Against.Null(purchase, nameof(purchase)); BuyerId = buyerId; ShipToAddress = shipToAddress; PaymentDetails = paymentDetails; Status = status; _orderItems = items; RiskPurchase = purchase; RiskPurchaseResponse = purchaseResponse; SubTotal = totals.SubTotal; Tax = totals.Tax; Total = totals.Total; }
public Order( string buyerId, Address shipToAddress, PaymentInfo paymentDetails, List <OrderItem> items, OrderStatus status, Purchase purchase, PurchaseResponse purchaseResponse, OrderTotals totals) { if (string.IsNullOrEmpty(buyerId)) { throw new ArgumentNullException(nameof(buyerId)); } ShipToAddress = shipToAddress ?? throw new ArgumentNullException(nameof(shipToAddress)); PaymentDetails = paymentDetails ?? throw new ArgumentNullException(nameof(paymentDetails)); RiskPurchase = purchase ?? throw new ArgumentNullException(nameof(purchase)); _orderItems = items ?? throw new ArgumentNullException(nameof(items)); BuyerId = buyerId; Status = status; RiskPurchaseResponse = purchaseResponse; SubTotal = totals.SubTotal; Tax = totals.Tax; Total = totals.Total; }
/// <summary> /// Add Details of Purchase /// </summary> /// <param name="userID">UserID</param> /// <param name="purchase">Purchase Data</param> /// <returns>If Data added successfully return Response Data else null or Exception</returns> public async Task <PurchaseResponse> Purchase(int userID, int cartID, PurchaseRequest purchase) { try { PurchaseResponse responseData = null; SQLConnection(); using (SqlCommand cmd = new SqlCommand("AddPurchaseDetails", conn)) { cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@UserID", userID); cmd.Parameters.AddWithValue("@CartID", cartID); cmd.Parameters.AddWithValue("@IsUsed", true); cmd.Parameters.AddWithValue("@BookID", purchase.BookID); cmd.Parameters.AddWithValue("@Address", purchase.Address); conn.Open(); SqlDataReader dataReader = await cmd.ExecuteReaderAsync(); while (dataReader.Read()) { responseData = new PurchaseResponse { PurchaseID = Convert.ToInt32(dataReader["PurchaseID"]), BookID = Convert.ToInt32(dataReader["BookID"]), Address = dataReader["Address"].ToString() }; } }; return(responseData); } catch (Exception ex) { throw new Exception(ex.Message); } }
public override async Task <PurchaseResponse> AddPurchase(PurchaseRequest request, ServerCallContext context) { if (!Guid.TryParse(request.Purchase.ProductId, out Guid productID)) { throw new ArgumentException($"invalid product id {request.Purchase.ProductId}"); } if (!Guid.TryParse(request.Purchase.TransactionId, out Guid transactionID)) { throw new ArgumentException($"invalid transaction id {request.Purchase.TransactionId}"); } var purchase = new Shared.DAL.Purchase { ProductID = productID, TransactionID = transactionID, Count = request.Purchase.Count, Price = request.Purchase.Price, Created = request.Purchase.Created.ToDateTime() }; var response = new PurchaseResponse(); var entry = await this.repo.AddPurchaseAsync(purchase); response.Purchases.Add(new Purchase { ProductId = entry.ProductID.ToString(), TransactionId = entry.TransactionID.ToString(), Count = entry.Count, Price = Convert.ToInt32(entry.Price), Created = Timestamp.FromDateTime(entry.Created) }); return(response); }
public static PurchaseResponse Purchase() { string orderUrl = GetOrderUrl(); Debug.Log(orderUrl); //Get purchase form URL: HttpWebResponse orderResponse = SendHttpRequestToCortex.SendGetRequest(orderUrl); string orderResponseJSON = SendHttpRequestToCortex.GetResponseBody(orderResponse); Response orderResponseObject = (Response)RequestUtils.deserialize(orderResponseJSON, typeof(Response)); string purchaseFormUrl = ""; foreach (Response.Links linkObj in orderResponseObject.links) { if (linkObj.rel.Equals("purchaseform")) { purchaseFormUrl = linkObj.href; } } //Get submit order action URL: HttpWebResponse purchaseFormResponse = SendHttpRequestToCortex.SendGetRequest(purchaseFormUrl); string purchaseFormResponseJSON = SendHttpRequestToCortex.GetResponseBody(purchaseFormResponse); Response purchaseFormResponseObject = (Response)RequestUtils.deserialize(purchaseFormResponseJSON, typeof(Response)); string submitOrderActionUrl = ""; foreach (Response.Links linkObj in purchaseFormResponseObject.links) { if (linkObj.rel.Equals("submitorderaction")) { submitOrderActionUrl = linkObj.href; } } Debug.Log(purchaseFormResponseJSON); Debug.Log(submitOrderActionUrl); //Submit order to make purchase submitOrderActionUrl = submitOrderActionUrl + "?followLocation"; HttpWebResponse submitOrderActionResponse = SendHttpRequestToCortex.SendPostRequest(submitOrderActionUrl, emptyJsonForm); Debug.Log(submitOrderActionResponse.StatusCode); string submitOrderActionResponseJSON = SendHttpRequestToCortex.GetResponseBody(submitOrderActionResponse); Debug.Log(submitOrderActionResponseJSON); //remove all dashes from json response since C# hates them submitOrderActionResponseJSON = submitOrderActionResponseJSON.Replace("-", ""); Debug.Log(submitOrderActionResponseJSON); PurchaseResponse response = (PurchaseResponse)RequestUtils.deserialize(submitOrderActionResponseJSON, typeof(PurchaseResponse)); Debug.Log(response.monetarytotal[0].amount); Debug.Log(response.status); return(response); }
public AMN_PurchaseResponse(PurchaseResponse data, string sku) : base(false) { _requestId = data.RequestId; _userId = data.AmazonUserData.UserId; _marketplace = data.AmazonUserData.Marketplace; _status = data.Status; _sku = sku; }
/** * Because the IOS api automatically consume a purchase, if was * successful it call directly OnConsume without call OnPurchase. */ public void Purchase(string sku) { if (debug) { Debug.Log("Purchase " + sku); } var r = new PurchaseResponse(); r.ok = false; r.code = CODE_NOT_IMPLEMENTED; listener.OnPurchase(r); }
//CALLBACKS private void PurchaseResponseEvent(PurchaseResponse args) { string requestId = args.RequestId; string userId = args.AmazonUserData.UserId; string marketplace = args.AmazonUserData.Marketplace; string receiptId = args.PurchaseReceipt.ReceiptId; long cancelDate = args.PurchaseReceipt.CancelDate; long purchaseDate = args.PurchaseReceipt.PurchaseDate; string sku = args.PurchaseReceipt.Sku; string productType = args.PurchaseReceipt.ProductType; string status = args.Status; amazonUserId = userId; amazonReceiptId = receiptId; Status.GetComponent <Text>().text = "RESPONSE!"; if (receiptId != null) { BCLogs.GetComponent <Text>().text = "receiptId = " + receiptId; } else { BCLogs.GetComponent <Text>().text = "receiptId NULL"; } if (amazonReceiptId != null) { BCLogs.GetComponent <Text>().text += "\namazonReceiptId = " + amazonReceiptId; } else { BCLogs.GetComponent <Text>().text += "\namazonReceiptId NULL"; } if (userId != null) { BCLogs.GetComponent <Text>().text += "\nuserId = " + userId; } else { BCLogs.GetComponent <Text>().text += "\nuserId NULL"; } if (amazonUserId != null) { BCLogs.GetComponent <Text>().text += "\namazonUserId = " + amazonUserId; } else { BCLogs.GetComponent <Text>().text += "\namazonUserId NULL"; } }
private PurchaseResponse ParsePurchase(string json) { Hashtable map = (Hashtable)JSON.JsonDecode(json); PurchaseResponse r = new PurchaseResponse(); Parse(r, map); if (r.data != null) { r.purchaseToken = (string)r.data["purchaseToken"]; r.productSku = (string)r.data["productId"]; } return(r); }
public void Restore() { if (debug) { Debug.Log("Restore"); } var r = new PurchaseResponse(); r.ok = false; r.code = CODE_NOT_IMPLEMENTED; listener.OnPurchase(r); }
private void HandleFinishedPurchase(TransactionFlowState txState) { PurchaseResponse purchaseResponse; switch (txState.Success) { case Message.SuccessState.Success: Console.WriteLine($"# WOOHOO - WE GOT PAID!"); purchaseResponse = new PurchaseResponse(txState.Response); Console.WriteLine("# Response: {0}", purchaseResponse.GetResponseText()); Console.WriteLine("# RRN: {0}", purchaseResponse.GetRRN()); Console.WriteLine("# Scheme: {0}", purchaseResponse.SchemeName); Console.WriteLine("# Customer Receipt:"); Console.WriteLine(!purchaseResponse.WasCustomerReceiptPrinted() ? purchaseResponse.GetCustomerReceipt().TrimEnd() : "# PRINTED FROM EFTPOS"); Console.WriteLine("# PURCHASE: {0}", purchaseResponse.GetPurchaseAmount()); Console.WriteLine("# TIP: {0}", purchaseResponse.GetTipAmount()); Console.WriteLine("# SURCHARGE: {0}", purchaseResponse.GetSurchargeAmount()); Console.WriteLine("# CASHOUT: {0}", purchaseResponse.GetCashoutAmount()); Console.WriteLine("# BANKED NON-CASH AMOUNT: {0}", purchaseResponse.GetBankNonCashAmount()); Console.WriteLine("# BANKED CASH AMOUNT: {0}", purchaseResponse.GetBankCashAmount()); break; case Message.SuccessState.Failed: Console.WriteLine($"# WE DID NOT GET PAID :("); if (txState.Response != null) { purchaseResponse = new PurchaseResponse(txState.Response); Console.WriteLine("# Error: {0}", txState.Response.GetError()); Console.WriteLine("# Error Detail: {0}", txState.Response.GetErrorDetail()); Console.WriteLine("# Response: {0}", purchaseResponse.GetResponseText()); Console.WriteLine("# RRN: {0}", purchaseResponse.GetRRN()); Console.WriteLine("# Scheme: {0}", purchaseResponse.SchemeName); Console.WriteLine("# Customer Receipt:"); Console.WriteLine(!purchaseResponse.WasCustomerReceiptPrinted() ? purchaseResponse.GetCustomerReceipt().TrimEnd() : "# PRINTED FROM EFTPOS"); } break; case Message.SuccessState.Unknown: Console.WriteLine($"# WE'RE NOT QUITE SURE WHETHER WE GOT PAID OR NOT :/"); Console.WriteLine($"# CHECK THE LAST TRANSACTION ON THE EFTPOS ITSELF FROM THE APPROPRIATE MENU ITEM."); Console.WriteLine($"# IF YOU CONFIRM THAT THE CUSTOMER PAID, CLOSE THE ORDER."); Console.WriteLine($"# OTHERWISE, RETRY THE PAYMENT FROM SCRATCH."); break; default: throw new ArgumentOutOfRangeException(); } }
public void CallbackTransactionFailed(string code) { // Called from Objective-C when a transaction failed if (debug) { Debug.LogError("Purchase Failed"); } PurchaseResponse r = new PurchaseResponse(); r.ok = false; r.code = code; listener.OnPurchase(r); }
public PurchaseResponse MakePurchase(PurchaseRequest purchaseRequest) { var purchaseResponse = new PurchaseResponse { CustomerId = purchaseRequest.CustomerId, Price = 100, Message = "Response", Visits = 10 }; var streamWriter = new StreamWriter(@"C:\Temp\WS.log", true); streamWriter.WriteLine(DateTime.Now + " " + purchaseRequest.CustomerId); streamWriter.Close(); return purchaseResponse; }
public AMN_PurchaseResponse(PurchaseResponse data) : base(true) { _requestId = data.RequestId; _userId = data.AmazonUserData.UserId; _marketplace = data.AmazonUserData.Marketplace; _status = data.Status; if (data.PurchaseReceipt != null) { _receiptId = data.PurchaseReceipt.ReceiptId; _cancelDate = data.PurchaseReceipt.CancelDate; _purchaseDate = data.PurchaseReceipt.PurchaseDate; _sku = data.PurchaseReceipt.Sku; _productType = data.PurchaseReceipt.ProductType; } }
public void AddPurchase() { PurchaseRequest request = new PurchaseRequest(); request.Purchase = _view.purchase; PurchaseResponse response = purchaseService.InsertOnPurchase(request); if (response.Success) { _view.SuccessPurchase("Bien man"); } else { _view.ErrorPurchase(string.Format("{0}", response.Exception.Message)); } }
public void PurchaseResponse_OnValidResponse_ReturnObjects() { // arrange var secrets = SpiClientTestUtils.SetTestSecrets(); const string jsonStr = @"{""message"":{""data"":{""account_type"":""SAVINGS"",""auth_code"":""278045"",""bank_cash_amount"":200,""bank_date"":""06062019"",""bank_noncash_amount"":1200,""bank_settlement_date"":""06062019"",""bank_time"":""110750"",""card_entry"":""MAG_STRIPE"",""cash_amount"":200,""currency"":""AUD"",""customer_receipt"":""EFTPOS FROM BANK SA\r\nMerchant4\r\n213 Miller Street\r\nSydney 2060\r\nAustralia\r\n\r\nTIME 06JUN19 11:07\r\nMID 22341842\r\nTSP 100612348842\r\nRRN 190606001102\r\nDebit(S) SAV\r\nCARD............5581\r\nAUTH 278045\r\n\r\nPURCHASE AUD10.00\r\nCASH AUD2.00\r\nSURCHARGE AUD2.00\r\nTOTAL AUD14.00\r\n\r\n (000) APPROVED\r\n\r\n *CUSTOMER COPY*\r\n\r\n\r\n\r\n\r\n\r\n\r\n"",""customer_receipt_printed"":false,""expiry_date"":""0822"",""host_response_code"":""000"",""host_response_text"":""APPROVED"",""informative_text"":"" "",""masked_pan"":""............5581"",""merchant_acquirer"":""EFTPOS FROM BANK SA"",""merchant_addr"":""213 Miller Street"",""merchant_city"":""Sydney"",""merchant_country"":""Australia"",""merchant_id"":""22341842"",""merchant_name"":""Merchant4"",""merchant_postcode"":""2060"",""merchant_receipt"":""EFTPOS FROM BANK SA\r\nMerchant4\r\n213 Miller Street\r\nSydney 2060\r\nAustralia\r\n\r\nTIME 06JUN19 11:07\r\nMID 22341842\r\nTSP 100612348842\r\nRRN 190606001102\r\nDebit(S) SAV\r\nCARD............5581\r\nAUTH 278045\r\n\r\nPURCHASE AUD10.00\r\nCASH AUD2.00\r\nSURCHARGE AUD2.00\r\nTOTAL AUD14.00\r\n\r\n (000) APPROVED\r\n\r\n\r\n\r\n\r\n\r\n\r\n"",""merchant_receipt_printed"":false,""online_indicator"":""Y"",""pos_ref_id"":""prchs-06-06-2019-11-07-50"",""purchase_amount"":1000,""rrn"":""190606001102"",""scheme_name"":""Debit"",""stan"":""001102"",""success"":true,""surcharge_amount"":200,""terminal_id"":""100612348842"",""terminal_ref_id"":""12348842_06062019110812"",""transaction_type"":""PURCHASE""},""datetime"":""2019-06-06T11:08:12.946"",""event"":""purchase_response"",""id"":""prchs5""}}"; // act var msg = Message.FromJson(jsonStr, secrets); var response = new PurchaseResponse(msg); // assert Assert.Equal("purchase_response", msg.EventName); Assert.True(response.Success); Assert.Equal("prchs5", response.RequestId); Assert.Equal("prchs-06-06-2019-11-07-50", response.PosRefId); Assert.Equal("Debit", response.SchemeName); Assert.Equal("190606001102", response.GetRRN()); Assert.Equal(1000, response.GetPurchaseAmount()); Assert.Equal(200, response.GetCashoutAmount()); Assert.Equal(0, response.GetTipAmount()); Assert.Equal(200, response.GetSurchargeAmount()); Assert.Equal(1200, response.GetBankNonCashAmount()); Assert.Equal(200, response.GetBankCashAmount()); Assert.NotNull(response.GetCustomerReceipt()); Assert.NotNull(response.GetMerchantReceipt()); Assert.Equal("APPROVED", response.GetResponseText()); Assert.Equal("000", response.GetResponseCode()); Assert.Equal("12348842_06062019110812", response.GetTerminalReferenceId()); Assert.Equal("MAG_STRIPE", response.GetCardEntry()); Assert.Equal("SAVINGS", response.GetAccountType()); Assert.Equal("278045", response.GetAuthCode()); Assert.Equal("06062019", response.GetBankDate()); Assert.Equal("110750", response.GetBankTime()); Assert.Equal("............5581", response.GetMaskedPan()); Assert.Equal("100612348842", response.GetTerminalId()); Assert.False(response.WasCustomerReceiptPrinted()); Assert.False(response.WasMerchantReceiptPrinted()); Assert.Equal(DateTime.ParseExact(msg.GetDataStringValue("bank_settlement_date"), "ddMMyyyy", CultureInfo.InvariantCulture).Date, response.GetSettlementDate()); Assert.Equal(response.GetResponseValue("pos_ref_id"), response.PosRefId); // act response = new PurchaseResponse(); // assert Assert.Null(SpiClientTestUtils.GetInstanceField(response.GetType(), response, "_m")); Assert.Null(response.PosRefId); }
public PurchaseResponse InsertOnPurchase(PurchaseRequest request) { PurchaseResponse response = new PurchaseResponse(); try { IpurchaseR.InsertOnPurchase(request.Purchase); response.Success = true; } catch (Exception e) { response.Exception = e; response.Success = false; } return(response); }
public PurchaseResponse MakePurchase(PurchaseRequest purchaseRequest) { var purchaseResponse = new PurchaseResponse { CustomerId = purchaseRequest.CustomerId, Price = 100, Message = "Response", Visits = 10 }; var streamWriter = new StreamWriter(@"C:\Temp\WS.log", true); streamWriter.WriteLine(DateTime.Now + " " + purchaseRequest.CustomerId); streamWriter.Close(); return(purchaseResponse); }
static void Main(string[] args) { X509Certificate2 customerCertificate, merchantCertificate, gatewayCertificate; string customerPrivateKey, merchantPublicKey, gatewayPublicKey; bool verify; Common c = new Common(); IPEndPoint iep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1234); Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); client.Connect(iep); //tạo init request gửi tới merchant InitiateRequest initiateRequest = new InitiateRequest(); c.send(initiateRequest.ToMessage(), client); //nhận init response từ merchant string receiveMessage = c.receive(client); string[] initRES = receiveMessage.Split('-'); merchantCertificate = new X509Certificate2(c.StringToByteArray(initRES[2])); gatewayCertificate = new X509Certificate2(c.StringToByteArray(initRES[3])); merchantPublicKey = merchantCertificate.GetRSAPublicKey().ToXmlString(false); gatewayPublicKey = gatewayCertificate.GetRSAPublicKey().ToXmlString(false); verify = c.Verify(merchantPublicKey, initRES[1], initRES[0]); Console.WriteLine("verify init response: " + verify); //tạo purchase request string[] value = File.ReadAllLines("d:/file/input.txt"); string[] initREQValue = initRES[0].Split(':'); InitiateResponse initiateResponse = new InitiateResponse(initREQValue[0], initREQValue[1], initREQValue[2]); OrderInfomation oi = new OrderInfomation(Convert.ToInt32(value[0]), Convert.ToInt32(value[1]), DateTime.Now.ToString("ddMMyyyy"), initiateResponse.getTransID(), initiateResponse.getBrandID(), Convert.ToDouble(value[2])); PaymentInstructions pi = new PaymentInstructions(value[3], value[4], value[5], Convert.ToDouble(value[2]), initiateResponse.getTransID(), initiateResponse.getBrandID()); customerPrivateKey = File.ReadAllText(value[6]); customerCertificate = new X509Certificate2(value[7], "123456"); PurchaseRequest purchaseRequest = new PurchaseRequest(oi.OIToString(), pi.PIToString(), customerPrivateKey, gatewayPublicKey, c.ByteArrayToString(customerCertificate.GetRawCertData())); c.send(purchaseRequest.ToMessage(), client); //nhận purchase response receiveMessage = c.receive(client); string[] splitRES = receiveMessage.Split('-'); PurchaseResponse purchaseResponse = new PurchaseResponse(splitRES[0], splitRES[1], splitRES[2]); Console.WriteLine("verify purchase response: " + purchaseResponse.verify()); //Console.WriteLine(purchaseResponse.getMessage()); Console.Read(); }
private void OnProductPurchased() { statusMsg = ""; PurchaseResponse purchase = GamedoniaStore.purchaseResponse; string details = "Purchase Result status: " + purchase.status + " for product identifier: " + purchase.identifier; if (purchase.message != null && purchase.message.Length > 0) { details += " message: " + purchase.message; } printToConsole(details); if (purchase.success) { printToConsole("GAS refilled"); updateGas(GAS_DRIVE_CONSUMPTION_REFILL); } }
private void PurchaseProductHandler(PurchaseResponse data) { AMN_PurchaseResponse result; if (data.Status.Equals(status.SUCCESSFUL.ToString())) { result = new AMN_PurchaseResponse(data); iapService.NotifyFulfillment(new NotifyFulfillmentInput() { ReceiptId = data.PurchaseReceipt.ReceiptId, FulfillmentResult = "FULFILLED" }); } else { result = new AMN_PurchaseResponse(data, currentSKU); } OnPurchaseProductReceived(result); }
public bool TryGet(int id, out PurchaseResponse response) { var target = _context.TicketPurchase.SingleOrDefault(tp => tp.PurchaseId == id); if (target != null) { response = new PurchaseResponse { PaymentAmount = target.PaymentAmount, ConfirmationCode = target.ConfirmationCode, PaymentMethod = target.PaymentMethod, PurchaseId = target.PurchaseId }; return(true); } // purchases not found response = null; return(false); }
private PaymentResponseMessage <TResponseTxn> CreateResponse <TResponseTxn>(Guid orderId, string transactionId, string responseXml) where TResponseTxn : PaymentResponseTxn, new() { try { // Record this response. var purchaseResponse = new PurchaseResponse { Time = DateTime.Now, Message = responseXml, }; _purchaseTransactionsCommand.CreatePurchaseResponse(orderId, transactionId, purchaseResponse); } catch (Exception) { } return(Serialization.Deserialize <TResponseTxn>(responseXml)); }
public async Task CreateOrderAsync( int basketId, Entities.OrderAggregate.Address shippingAddress, PaymentInfo paymentDetails, OrderStatus status, Purchase purchase, PurchaseResponse purchaseResponse) { var basket = await _basketRepository.GetByIdAsync(basketId); if (basket == null) { throw new BasketNotFoundException(basketId); } var items = new List <OrderItem>(); var pricesAndQuantities = new List <Tuple <decimal, int> >(); foreach (var item in basket.Items) { var catalogItem = await _itemRepository.GetByIdAsync(item.CatalogItemId); var itemOrdered = new CatalogItemOrdered(catalogItem.Id, catalogItem.Name, catalogItem.PictureUri); var orderItem = new OrderItem(itemOrdered, item.UnitPrice, item.Quantity); items.Add(orderItem); pricesAndQuantities.Add(new Tuple <decimal, int>(item.UnitPrice, item.Quantity)); } var totals = OrderCalculator.CalculateTotals(pricesAndQuantities); var order = new Order( basket.BuyerId, shippingAddress, paymentDetails, items, status, purchase, purchaseResponse, totals); await _orderRepository.AddAsync(order); }
private PurchaseResult GetPurchaseEventHandler(PurchaseResponse args) { var purchaseResult = new PurchaseResult(); if (args?.PurchaseReceipt == null || args.AmazonUserData == null) { return(purchaseResult); } purchaseResult.OrderId = args.RequestId; purchaseResult.UserId = args.AmazonUserData.UserId; string marketplace = args.AmazonUserData.Marketplace; purchaseResult.PurchaseToken = args.PurchaseReceipt.ReceiptId; if (args.PurchaseReceipt.CancelDate > 0) { purchaseResult.ExpirationDate = DateTimeOffset.FromUnixTimeSeconds(args.PurchaseReceipt.CancelDate).DateTime; } if (args.PurchaseReceipt.PurchaseDate > 0) { purchaseResult.PurchaseDate = DateTimeOffset.FromUnixTimeSeconds(args.PurchaseReceipt.PurchaseDate).DateTime; } purchaseResult.Sku = args.PurchaseReceipt.Sku; purchaseResult.ItemType = args.PurchaseReceipt.ProductType; if (args.Status == "Cancelled") { purchaseResult.PurchaseState = PurchaseState.Cancelled; } else { purchaseResult.PurchaseState = PurchaseState.Purchased; } if (NotifyFullFillment(args.PurchaseReceipt.ReceiptId)) { purchaseResult.IsAcknowledged = true; } return(purchaseResult); }
IEnumerator FakeRestore() { yield return(StartCoroutine(Latency())); foreach (var key in skuByPurchase.Keys) { var r = new PurchaseResponse(); r.ok = true; r.purchaseToken = skuByPurchase[key]; r.productSku = key; listener.OnPurchase(r); } if (skuByPurchase.Count == 0) { var r = new PurchaseResponse(); r.ok = false; r.code = CODE_EMPTY; listener.OnPurchase(r); } }
public async Task <ActionResult <PurchaseResponse> > Post([FromBody] PurchaseRequest purchase) { var result = await _purchaseRepo.TryAddPurchase(purchase.Seats, purchase.PaymentMethod); if (!result.Item1) { // error encountered when attempting to make purchase return(BadRequest(result.Item2)); } TicketPurchase tp = (TicketPurchase)result.Item2; var response = new PurchaseResponse { PaymentAmount = tp.PaymentAmount, ConfirmationCode = tp.ConfirmationCode, PaymentMethod = tp.PaymentMethod, PurchaseId = tp.PurchaseId }; return(CreatedAtAction(nameof(Get), new { id = tp.PurchaseId }, response)); }
public static void ProductPurchased(string response) { _purchaseResponse = JsonMapper.ToObject<PurchaseResponse>((string) response); }
public async Task BuyBook( Book book, CancellationToken cancellationToken) { //If acoount not exits - create CatalitCredentials creds = _credentialsProvider.ProvideCredentials( cancellationToken ); if (creds == null) { creds = await _profileProvider.RegisterDefault( cancellationToken ); _credentialsProvider.RegisterCredentials( creds, cancellationToken ); } bool isNokiaBook = false; if (_deviceInfoService.IsNokiaDevice && !string.IsNullOrEmpty(book.InGifts) && book.InGifts.Equals("1")) { var nokiaBook = await _catalogProvider.GetBookByCollection((int)BooksByCategoryViewModel.BooksViewModelTypeEnum.NokiaCollection, book.Id, cancellationToken); if (nokiaBook != null) isNokiaBook = true; } if (isNokiaBook) { await _catalogProvider.TakeBookFromCollectionBySubscription(book.Id, cancellationToken); UpdateBook(book); } else { try { Purchase newPurchase = await _inAppPurchaseService.BuyBook(book); //purchase cancelled or not exist if (newPurchase == null) return; var parameters = new Dictionary<string, object> { {"inapp_data", newPurchase.Win8Inapp}, {"lfrom", _deviceInfoService.LitresInAppRefId}, {"art", book.Id} }; PurchaseResponse purchase = null; try { purchase = await _client.PurchaseBook(parameters, cancellationToken, book.isHiddenBook); } catch (CatalitInappProcessingFailedException e) { if (e.ErrorCode == 309) { _inAppPurchaseService.CheckProductIsUsed(book.InappName); } purchase = new PurchaseResponse {State = "failed"}; } switch (purchase.State) { case "pending": break; case "unknown": case "closed_ok_book_failed": case "failed": UpdateBookFailed(book); break; case "closed_ok": //ToDo: Do something _inAppPurchaseService.CheckProductIsUsed(book.InappName); UpdateBook(book); break; } } catch (Exception ex) { var dialog = new MessageDialog("Оплата через Windows Store временно недоступна, пожалуйста, выберите другой вариант оплаты") { DefaultCommandIndex = 0 }; dialog.Commands.Add(new UICommand("Ок") { Id = 1 }); await dialog.ShowAsync(); Debug.WriteLine(ex.Message); } } }
public async Task Deposit(DepositType depositType, CancellationToken cancellationToken) { CatalitCredentials creds = _credentialsProvider.ProvideCredentials(cancellationToken); if (creds == null) { creds = await _profileProvider.RegisterDefault(cancellationToken); _credentialsProvider.RegisterCredentials(creds, cancellationToken); } Purchase newPurchase = null; try { newPurchase = await _inAppPurchaseService.AddToDeposit(depositType); } catch (Exception ex) { return; } //purchase cancelled or not exist if (newPurchase == null) return; var parameters = new Dictionary<string, object> { { "inapp_data", newPurchase.Win8Inapp }, }; PurchaseResponse purchase = null; try { purchase = await _client.PurchaseBook(parameters, cancellationToken, false); } catch (CatalitInappProcessingFailedException e) { if (((CatalitInappProcessingFailedException) e).ErrorCode == 309) { _inAppPurchaseService.CheckProductIsUsed(depositType); } purchase = new PurchaseResponse { State = "failed" }; } switch (purchase.State) { case "pending": break; case "unknown": case "closed_ok_book_failed": case "failed": UpdateDepositFailed(); break; case "closed_ok": //ToDo: Do something { _inAppPurchaseService.CheckProductIsUsed(depositType); UpdateDeposit(); } break; } }