public void Copy(AmazonPaySettings settings, bool fromSettings) { if (fromSettings) { UseSandbox = settings.UseSandbox; SellerId = settings.SellerId; AccessKey = settings.AccessKey; SecretKey = settings.SecretKey; Marketplace = settings.Marketplace; DataFetching = settings.DataFetching; PollingMaxOrderCreationDays = settings.PollingMaxOrderCreationDays; TransactionType = settings.TransactionType; SaveEmailAndPhone = settings.SaveEmailAndPhone; ShowButtonInMiniShoppingCart = settings.ShowButtonInMiniShoppingCart; AmazonButtonColor = settings.AmazonButtonColor; AmazonButtonSize = settings.AmazonButtonSize; AddressWidgetWidth = settings.AddressWidgetWidth; AddressWidgetHeight = settings.AddressWidgetHeight; PaymentWidgetWidth = settings.PaymentWidgetWidth; PaymentWidgetHeight = settings.PaymentWidgetHeight; AdditionalFee = settings.AdditionalFee; AdditionalFeePercentage = settings.AdditionalFeePercentage; AddOrderNotes = settings.AddOrderNotes; InformCustomerAboutErrors = settings.InformCustomerAboutErrors; InformCustomerAddErrors = settings.InformCustomerAddErrors; } else { settings.UseSandbox = UseSandbox; settings.SellerId = SellerId; settings.AccessKey = AccessKey; settings.SecretKey = SecretKey; settings.Marketplace = Marketplace; settings.DataFetching = DataFetching; settings.PollingMaxOrderCreationDays = PollingMaxOrderCreationDays; settings.TransactionType = TransactionType; settings.SaveEmailAndPhone = SaveEmailAndPhone; settings.ShowButtonInMiniShoppingCart = ShowButtonInMiniShoppingCart; settings.AmazonButtonColor = AmazonButtonColor; settings.AmazonButtonSize = AmazonButtonSize; settings.AddressWidgetWidth = AddressWidgetWidth; settings.AddressWidgetHeight = AddressWidgetHeight; settings.PaymentWidgetWidth = PaymentWidgetWidth; settings.PaymentWidgetHeight = PaymentWidgetHeight; settings.AdditionalFee = AdditionalFee; settings.AdditionalFeePercentage = AdditionalFeePercentage; settings.AddOrderNotes = AddOrderNotes; settings.InformCustomerAboutErrors = InformCustomerAboutErrors; settings.InformCustomerAddErrors = InformCustomerAddErrors; } }
public AmazonPayClient(AmazonPaySettings settings) { string appVersion = "1.0"; try { appVersion = EngineContext.Current.Resolve<IPluginFinder>().GetPluginDescriptorBySystemName(AmazonPayCore.SystemName).Version.ToString(); } catch (Exception) { } var config = new OffAmazonPaymentsServiceConfig() { ServiceURL = (settings.UseSandbox ? AmazonPayCore.UrlApiEuSandbox : AmazonPayCore.UrlApiEuProduction) }; config.SetUserAgent(AmazonPayCore.AppName, appVersion); Settings = settings; Service = new OffAmazonPaymentsServiceClient(AmazonPayCore.AppName, appVersion, settings.AccessKey, settings.SecretKey, config); }
public bool FulfillBillingAddress(AmazonPaySettings settings, Order order, AuthorizationDetails details, out string formattedAddress) { formattedAddress = ""; if (details == null) { AmazonPayApiData data; details = GetAuthorizationDetails(new AmazonPayClient(settings), order.AuthorizationTransactionId, out data); } if (details == null || !details.IsSetAuthorizationBillingAddress()) return false; bool countryAllowsShipping, countryAllowsBilling; // override billing address cause it is just copy of the shipping address details.AuthorizationBillingAddress.ToAddress(order.BillingAddress, _countryService, _stateProvinceService, out countryAllowsShipping, out countryAllowsBilling); if (!countryAllowsBilling) { formattedAddress = details.AuthorizationBillingAddress.ToFormatedAddress(_countryService, _stateProvinceService); return false; } order.BillingAddress.CreatedOnUtc = DateTime.UtcNow; if (order.BillingAddress.Email.IsEmpty()) order.BillingAddress.Email = order.Customer.Email; _orderService.UpdateOrder(order); formattedAddress = details.AuthorizationBillingAddress.ToFormatedAddress(_countryService, _stateProvinceService); return true; }
private void CloseOrderReference(AmazonPaySettings settings, Order order) { // You can still perform captures against any open authorizations, but you cannot create any new authorizations on the // Order Reference object. You can still execute refunds against the Order Reference object. try { var client = new AmazonPayClient(settings); var orderAttribute = DeserializeOrderAttribute(order); _api.CloseOrderReference(client, orderAttribute.OrderReferenceId); } catch (OffAmazonPaymentsServiceException exc) { LogAmazonError(exc); } catch (Exception exc) { LogError(exc); } }
public void AddOrderNote(AmazonPaySettings settings, Order order, AmazonPayOrderNote note, string anyString = null) { try { if (!settings.AddOrderNotes || order == null) return; var sb = new StringBuilder(); string[] orderNoteStrings = T("Plugins.Payments.AmazonPay.OrderNoteStrings").Text.SplitSafe(";"); string faviconUrl = "{0}Plugins/{1}/Content/images/favicon.png".FormatWith(_services.WebHelper.GetStoreLocation(false), AmazonPayCore.SystemName); sb.AppendFormat("<img src=\"{0}\" style=\"float: left; width: 16px; height: 16px;\" />", faviconUrl); if (anyString.HasValue()) { anyString = orderNoteStrings.SafeGet((int)note).FormatWith(anyString); } else { anyString = orderNoteStrings.SafeGet((int)note); anyString = anyString.Replace("{0}", ""); } if (anyString.HasValue()) { sb.AppendFormat("<span style=\"padding-left: 4px;\">{0}</span>", anyString); } order.OrderNotes.Add(new OrderNote() { Note = sb.ToString(), DisplayToCustomer = false, CreatedOnUtc = DateTime.UtcNow }); _orderService.UpdateOrder(order); } catch (Exception exc) { LogError(exc); } }
private void EarlyPolling(int orderId, AmazonPaySettings settings) { // the Authorization object moves to the Open state after remaining in the Pending state for 30 seconds. AmazonPayApiData data; var d = new PollingLoopData(orderId); d.Settings = settings; PollingLoop(d, () => { if (d.Order.AuthorizationTransactionId.IsNullOrEmpty()) return false; var details = _api.GetAuthorizationDetails(d.Client, d.Order.AuthorizationTransactionId, out data); if (!data.State.IsCaseInsensitiveEqual("pending")) { ProcessAuthorizationResult(d.Client, d.Order, data, details); return false; } return true; }); PollingLoop(d, () => { if (d.Order.CaptureTransactionId.IsNullOrEmpty()) return false; _api.GetCaptureDetails(d.Client, d.Order.CaptureTransactionId, out data); ProcessCaptureResult(d.Client, d.Order, data); return data.State.IsCaseInsensitiveEqual("pending"); }); }
public AmazonPayClient(AmazonPaySettings settings) { var config = new OffAmazonPaymentsServiceConfig() { ServiceURL = (settings.UseSandbox ? AmazonPayCore.UrlApiEuSandbox : AmazonPayCore.UrlApiEuProduction) }; config.SetUserAgent(AmazonPayCore.AppName, AmazonPayCore.AppVersion); Settings = settings; Service = new OffAmazonPaymentsServiceClient(AmazonPayCore.AppName, AmazonPayCore.AppVersion, settings.AccessKey, settings.SecretKey, config); }