/// <summary> /// Validates the Order object fields /// Sends an updated order (already created) to Riskified Servers /// </summary> /// <param name="order">The Order to update</param> /// <returns>The order notification result containing status,description and sent order id in case of successful transfer</returns> /// <exception cref="OrderFieldBadFormatException">On bad format of the order (missing fields data or invalid data)</exception> /// <exception cref="RiskifiedTransactionException">On errors with the transaction itself (network errors, bad response data)</exception> public OrderNotification Update(Order order) { return SendOrder(order, HttpUtils.BuildUrl(_riskifiedBaseWebhookUrl, "/api/update")); }
private static Order PayPalGenerateOrder(int orderNum) { // putting sample customer details var customer = new Customer( firstName: "John", lastName: "Doe", id: "405050606", ordersCount: 4, email: "*****@*****.**", verifiedEmail: true, createdAt: new DateTime(2013, 12, 8, 14, 12, 12, DateTimeKind.Local), // make sure to initialize DateTime with the correct timezone notes: "No additional info"); // putting sample billing details var billing = new AddressInformation( firstName: "Ben", lastName: "Rolling", address1: "27 5th avenue", city: "Manhattan", country: "United States", countryCode: "US", phone: "5554321234", address2: "Appartment 5", zipCode: "54545", province: "New York", provinceCode: "NY", company: "IBM", fullName: "Ben Philip Rolling"); var shipping = new AddressInformation( firstName: "Luke", lastName: "Rolling", address1: "4 Bermingham street", city: "Cherry Hill", country: "United States", countryCode: "US", phone: "55546665", provinceCode: "NJ", province: "New Jersey"); var payments = new PaypalPaymentDetails( paymentStatus: "Authorized", authorizationId: "AFSDF332432SDF45DS5FD", payerEmail: "*****@*****.**", payerStatus: "Verified", payerAddressStatus: "Unverified", protectionEligibility: "Partly Eligibile", pendingReason: "Review"); var lines = new[] { new ShippingLine(price: 22.22,title: "Mail"), new ShippingLine(price: 2,title: "Ship",code: "A22F") }; var items = new[] { new LineItem(title: "Bag",price: 55.44,quantityPurchased: 1,productId: 48484,sku: "1272727"), new LineItem(title: "Monster", price: 22.3, quantityPurchased: 3) }; var discountCodes = new[] { new DiscountCode(moneyDiscountSum: 7, code: "1") }; var order = new Order( merchantOrderId: orderNum.ToString(), email: "*****@*****.**", customer: customer, paymentDetails: payments, billingAddress: billing, shippingAddress: shipping, lineItems: items, shippingLines: lines, gateway: "authorize_net", customerBrowserIp: "165.12.1.1", currency: "USD", totalPrice: 100.60, createdAt: DateTime.Now, // make sure to initialize DateTime with the correct timezone updatedAt: DateTime.Now, // make sure to initialize DateTime with the correct timezone discountCodes: discountCodes); return order; }
/// <summary> /// Validates the Order object fields /// Sends an order to Riskified Servers and submits it for analysis /// </summary> /// <param name="order">The Order to submit</param> /// <returns>The order notification result containing status,description and sent order id in case of successful transfer</returns> /// <exception cref="OrderFieldBadFormatException">On bad format of the order (missing fields data or invalid data)</exception> /// <exception cref="RiskifiedTransactionException">On errors with the transaction itself (network errors, bad response data)</exception> public OrderNotification Submit(Order order) { return SendOrder(order, HttpUtils.BuildUrl(_riskifiedBaseWebhookUrl, "/api/submit")); }
/// <summary> /// Generates a new order object /// Mind that some of the fields of the order (and it's sub-objects) are optional /// </summary> /// <param name="orderNum">The order number to put in the order object</param> /// <returns></returns> private static Order GenerateOrder(int orderNum) { var customerAddress = new BasicAddress( address1: "27 5th avenue", city: "Manhattan", country: "United States", countryCode: "US", phone: "5554321234", address2: "Appartment 5", zipCode: "54545" ); // putting sample customer details var customer = new Customer( firstName: "John", lastName: "Doe", id: "405050606", ordersCount: 4, email: "*****@*****.**", verifiedEmail: true, createdAt: new DateTime(2013, 12, 8, 14, 12, 12, DateTimeKind.Local), // make sure to initialize DateTime with the correct timezone notes: "No additional info", address: customerAddress); // putting sample billing details var billing = new AddressInformation( firstName: "Ben", lastName: "Rolling", address1: "27 5th avenue", city: "Manhattan", country: "United States", countryCode: "US", phone: "5554321234", address2: "Appartment 5", zipCode: "54545", province: "New York", provinceCode: "NY", company: "IBM", fullName: "Ben Philip Rolling"); var shipping = new AddressInformation( firstName: "Luke", lastName: "Rolling", address1: "4 Bermingham street", city: "Cherry Hill", country: "United States", countryCode: "US", phone: "55546665", provinceCode: "NJ", province: "New Jersey"); var payments = new CreditCardPaymentDetails( avsResultCode: "Y", cvvResultCode: "n", creditCardBin: "124580", creditCardCompany: "Visa", creditCardNumber: "XXXX-XXXX-XXXX-4242"); var noChargeAmount = new NoChargeDetails( refundId: "123444", amount: 20.5, currency: "GBP", reason: "giftcard" ); var lines = new[] { new ShippingLine(price: 22.22,title: "Mail"), new ShippingLine(price: 2,title: "Ship",code: "A22F") }; var recipientSocial = new SocialDetails( network: "Facebook", publicUsername: "******", accountUrl: "http://www.facebook.com/john.smith"); var recipient = new Recipient( email: "*****@*****.**", phone: "96522444221", social: recipientSocial); var items = new[] { new LineItem(title: "Bag",price: 55.44,quantityPurchased: 1,productId: 48484,sku: "1272727",deliveredTo: DeliveredToType.StorePickup, delivered_at:new DateTime(2016, 12, 8, 14, 12, 12, DateTimeKind.Local)), new LineItem(title: "Monster", price: 22.3, quantityPurchased: 3, seller: new Seller(customer: customer,correspondence: 1, priceNegotiated: true, startingPrice: 120)), // Events Tickets Industry new LineItem(title: "Concert", price: 123, quantityPurchased: 1, category: "Singers", subCategory: "Rock", eventName: "Bon Jovy", eventSectionName: "Section", eventCountry: "USA", eventCountryCode: "US", latitude: 0, longitude: 0), // Digital Goods (giftcard) industry new LineItem(title: "Concert", price: 123, quantityPurchased: 1, sender_name: "John", display_name: "JohnJohn", photo_uploaded: true, photo_url: "http://my_pic_url", greeting_photo_url: "http://my_greeting_pic_url", message: "Happy Birthday", greeting_message: "Happy Birthday from John", card_type: "regular", card_sub_type: "birthday", sender_email: "*****@*****.**", recipient: recipient), }; var discountCodes = new[] { new DiscountCode(moneyDiscountSum: 7, code: "1") }; DecisionDetails decisionDetails = new DecisionDetails(ExternalStatusType.Approved, DateTime.Now); // make sure to initialize DateTime with the correct timezone // This is an example for an order with charge free sums (e.g. gift card payment) var chargeFreePayments = new ChargeFreePaymentDetails( gateway: "giftcard", amount: 45); // This is an example for client details section var clientDetails = new ClientDetails( accept_language: "en-CA", user_agent: "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"); var order = new Order( merchantOrderId: orderNum.ToString(), email: "*****@*****.**", customer: customer, paymentDetails: payments, billingAddress: billing, shippingAddress: shipping, lineItems: items, shippingLines: lines, gateway: "authorize_net", customerBrowserIp: "165.12.1.1", currency: "USD", totalPrice: 100.60, createdAt: DateTime.Now, // make sure to initialize DateTime with the correct timezone updatedAt: DateTime.Now, // make sure to initialize DateTime with the correct timezone discountCodes: discountCodes, source: "web", noChargeDetails: noChargeAmount, decisionDetails: decisionDetails, vendorId: "2", vendorName: "domestic", additionalEmails: new [] {"*****@*****.**","*****@*****.**"}, chargeFreePaymentDetails: chargeFreePayments, clientDetails: clientDetails, groupFounderOrderID: "2222" ); return order; }