Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Payment Processing at Gilt.com

Payment Processing at Gilt.com

Portland Java User Group
May 16, 2017
Portland Oregon
keywords: Java, Scala, HBC Digital, Gilt, Saks Fifth Avenue

99d4c0ed3c8027ea1c37b53d6441d042?s=128

sullis

May 16, 2017
Tweet

Transcript

  1. Payment Processing Sean Sullivan May 16, 2017 Portland Java User

    Group
  2. • software engineer • 21 years Java • 6 years

    at Gilt • back office systems @ Gilt About me
  3. January 2016

  4. https://en.wikipedia.org/wiki/Hudson%27s_Bay_Company

  5. saksfifthavenue.com saksoff5th.com lordandtaylor.com gilt.com thebay.com

  6. www.gilt.com

  7. None
  8. Web Checkout Android Checkout iPhone Checkout Checkout service

  9. checkout service payment system payment processor checkout UI order processing

    system order queue
  10. 2008 order processing

  11. 2017 discount service payment service ship calculator service order processing

    inventory service
  12. None
  13. Credit card service • add card • delete card •

    list cards • authorize • capture • refund
  14. Credit card service version 1.x Java + java.util.HashMap + service

    framework version 2.x Java + Scala + JAX-RS version 3.x Scala + Play Framework + ApiDoc
  15. http://www.apidoc.me/doc/

  16. Date and time java.lang.Long java.util.Date java.util.Calendar joda-time library java.time API

  17. java.time API

  18. None
  19. Money java.lang.Double java.lang.String java.math.BigDecimal joda-money library JavaMoney API

  20. JavaMoney

  21. <dependency> <groupId>org.javamoney</groupId> <artifactId>moneta</artifactId> <version>1.1</version> </dependency> Moneta library

  22. import org.javamoney.moneta.Money import java.math.BigDecimal val salary = Money.of( new BigDecimal(“25000000.00”),

    “USD”) Moneta example
  23. Security concerns • client-side credit card encryption • Java crypto

    strength • key management • safe logging
  24. https://paysvc.giltvault.com/payment_service/get_publickey?callback=demo Public Key endpoint

  25. Unlimited strength crypto oracle.com

  26. Key management tech.gilt.com

  27. Logging import ch.qos.logback.classic.PatternLayout import ch.qos.logback.classic.spi.ILoggingEvent class MaskingPatternLayout extends PatternLayout {

    ... }
  28. Logging 2017-05-16 20:08:18,312 INFO com.gilt.Foobar <CreditCardNumber>REDACTED</CreditCardNumber>

  29. Code coverage https://github.com/jacoco/jacoco https://bitbucket.org/atlassian/clover http://cobertura.github.io/cobertura/ https://github.com/scoverage

  30. Code coverage https://twitter.com/LlewellynFalco/status/812714305695019008

  31. The end

  32. None