Open web payments

6,679
-1

Published on

Open Stack for Open Web Payments - presentation at OSCON, 2010.

Published in: Technology
2 Comments
4 Likes
Statistics
Notes
  • actually that's any payment gateway (which includes PayPal's Payflow gateway too among others gateways out there).
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • The payment network, from step 2, to step 3 the money pass over payment gateway, example paypal, isn't it?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
6,679
On Slideshare
0
From Embeds
0
Number of Embeds
30
Actions
Shares
0
Downloads
55
Comments
2
Likes
4
Embeds 0
No embeds

No notes for slide
  • A very important result of this is that a developer has to learn, code and deploy different integrations with each and everyone separately. It’s just painful.
  • Open web payments

    1. Open Stack For Open Web Payments<br />Praveen Alavilli<br />Ray Tanaka<br />
    2. Agenda<br /><ul><li>Online Payments
    3. State of the Online Payments
    4. Payment Networks
    5. Features and Functionality
    6. A Case for Open Web Payments
    7. Open Stack for Open Web Payments
    8. Next steps / Call for Action</li></li></ul><li>Payments – a look back !<br />EFT1970s<br />PayPal 1998<br />Barter<br />100,000BC – 3,000BC<br />Commodity<br />3,000BC – 650BC<br />Cash <br />650BC - Now<br />Credit<br />1950 - Now<br />Payment Gateways<br />1995<br />eCommerce<br />1981 (1984)<br />
    9. There are many players…<br />
    10. The Result: Fragmentation<br />
    11. Payment Networks<br /><ul><li>Credit/Debit Card Networks
    12. ACH</li></ul>some gateway<br />
    13. Essential components of Online Payments<br />Authentication – Who are you?<br />Authorization – How much do you want to charge?<br />Payment Instrument – What are you using to pay?<br />
    14. Motivation<br />Reduce Friction<br />Interoperability across multiple payment platforms<br />PCI Compliance<br />
    15. Open Web Payments<br />Consistency APIs across platforms<br />Single model for authorization, payments and transactions<br />Support for real and virtual currencies<br />Single, extensible document model<br />
    16. What we’re not covering (for now)<br />Payment data portability (Merchant + Consumer)<br />Client, user and receiver account management<br />Direct integration with financial institutions<br />
    17. Transactions AS THE CORE<br />
    18. The closest sibling on the web !<br />
    19. Feeds – web resources<br />
    20. Feeds – A closer Look<br /><entry><br /> <id>tag:blogger.com,1999:blog-754260340057137512.post-2123024611142172293</id><br /> <published>2010-03-11T13:46:00.001-05:00</published><br /> <updated>2010-03-11T13:46:50.788-05:00</updated><br /> <category scheme='http://www.blogger.com/atom/ns#' term='wallet'/><br /> <title type='text'>Fueling the Wallet.Next</title><br /> <content type='html'>……</content><br /> <link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2010/03/fueling-walletnext.html' title='Fueling the Wallet.Next'/><br /> <link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=2123024611142172293' title='0 Comments'/><br /> <author><br /> <name>Praveen</name><br /> <uri>http://www.blogger.com/profile/10778095038892167017</uri><br /> <email>noreply@blogger.com</email><br /> </author><br /> </entry><br />
    21. Transactions – A closer look<br /><ul><li>Date
    22. Sender – Payer, Buyer, Customer
    23. Receiver - Friend, Merchant, Seller, Some Service Provider)
    24. Type of Payment – instant, subscription, pre-pay, post-pay, refund, agreement to pay in future
    25. Reason for payment – purchase, personal, gift, etc.
    26. Category – Restaurant, Merchandise, Travel, etc.
    27. Unique identifier
    28. Amount and Currency
    29. Status
    30. Application/Client– Web Site, Mobile Application, etc.</li></li></ul><li>Mapping Transaction ATOM Entry<br />
    31. Open Web Payments Extensions<br />Filling in the missing pieces in the puzzle<br />
    32. ATOM<br />An XML-based Web Content and metadata syndication format<br />
    33. POCO<br />Simple, Portable and Standard Contact schema<br />Shipping & Billing Address -- poco:address<br />
    34. OAUth 2.0<br />Request (Client) Authentication <br />End User Authorization (Transaction Approval)<br />Little sketchy ! <br />
    35. ATOMPub<br />Application level protocol for publishing and editing web resources<br />
    36. So what’s our open stack ?<br />Transaction<br />History<br />Application<br />Consumer<br />Application<br />Merchant<br />Application<br />PoCo<br />Open Web Payment<br />OpenSearch<br />Open<br />Web<br />Payments<br />Stack<br />Atom<br />AtomPub<br />OAuth<br />host-meta/WebFinger<br />Payments Provider<br />
    37. How does this work ?<br />
    38. Transactions represented by an Entry<br /><entry><br /> <id> -unique-transaction-id- </id><br /> <title type=“text”> -short desc of transaction- </title><br /> <published> -transaction creation date- </published><br /> <author><br /> <name>-name of the app-</name><br /> <uri>-app url-</uri><br /> <id>-unique-app-identifier-</id><br /><OWP:consumer_id>-id-</OWP:consumer_id><br /> <OWP:consumer_transaction_id>-txn-id-</OWP:consumer_transaction_id><br /> </author><br /> <category scheme=“-iri-” term=“-category-” label=“-label-”/><br /> <link rel=“alternate” type=“text/html” href=“-url-to-receipt-”><br /> <content type=“xhtml”>-detailed-desc-</content><br /> <OWP:transaction>…</OWP:transaction><br /></entry><br />
    39. OWP:transaction<br /><OWP:action></OWP:action><br /><OWP:status-type></OWP:status-type><br /><OWP:start-date/><br /><OWP:end-date/><br /><OWP:entity><br /> <name/><uri/><email/><id/><br /> <OWP:entity-type></OWP:entity-type><br /> <OWP:amount currency=“”></OWP:amount><br /> <OWP:fundingType></OWP:fundingType><br /> <OWP:securePin></OWP:securePin><br /> <OWP:refTransactionId></OWP:refTransactionId><br /> <OWP:payment-type></OWP:payment-type><br /> <OWP:status-type></OWP:status-type><br /> <poco:address/><br /></OWP:entity><br />
    40. OWP:transaction<br />OWP:action:<br />http:/owp-api.net/schema/1.0/verbs/Pay<br />http://owp-api.net/schema/1.0/verbs/PrePay<br />http://owp-api.net/schema/1.0/verbs/PostPay<br />http://owp-api.net/schema/1.0/verbs/PrePayAgreement<br />http://owp-api.net/schema/1.0/verbs/PostPayAgreement<br />http://owp-api.net/schema/1.0/verbs/DelegatedPaymentAgreement<br />http://owp-api.net/schema/1.0/verbs/HoldFunds<br />OWP:entity-type:<br />http://owp-api.net/schema/1.0/entity-types/Sender<br />http://owp-api.net/schema/1.0/entity-types/Receiver<br />http://owp-api.net/schema/1.0/entity-types/PrimaryReceiver<br />http://owp-api.net/schema/1.0/entity-types/SecondaryReceiver<br />OWP:payment-type:http://owp-api.net/schema/1.0/payment-types/Personal<br />http://owp-api.net/schema/1.0/payment-types/Goods<br />http://owp-api.net/schema/1.0/payment-types/Services<br />http://owp-api.net/schema/1.0/payment-types/Donations<br />OWP:funding-type:<br />http://owp-api.net/schema/1.0/funding-types/Bank<br />http://owp-api.net/schema/1.0/funding-types/Card<br />http://owp-api.net/schema/1.0/funding-types/Gold<br />OWP:status-type:http://owp-api.net/schema/1.0/status-types/Created<br />http://owp-api.net/schema/1.0/status-types/Pending<br />http://owp-api.net/schema/1.0/status-types/Complete<br />http://owp-api.net/schema/1.0/status-types/Canceled<br />
    41. http://owp-api.net/schema/1.0/actions/PrePayAgreementhttp://owp-api.net/schema/1.0/actions/PostPayAgreement<br />Prior agreement between Sender and Receiver<br />PrePay Agreement results in money movement<br />PostPay Agreement results in no money movement<br />Requires end user authorization<br />
    42. http://owp-api.net/schema/1.0/actions/PrePayhttp://owp-api.net/schema/1.0/actions/PostPay<br />PrePay is for transaction recording purposes – no money movement<br />PostPay is for merchant credit functionality – no money movement<br />
    43. http://owp-api.net/schema/1.0/actions/DelegatedPaymentAgreement<br />Delegate access to the application to make Payments on behalf of the user<br />Requires end user authorization.<br />Allows to set max amount allowed, max number of payments, frequency, start/end dates, and receivers.<br />
    44. http://owp-api.net/schema/1.0/actions/HoldFunds<br />No money movement but funds are held in for a specific receiver<br />Requires end user authorization<br />Allows to set amount, and expiry.<br />
    45. http://owp-api.net/schema/1.0/actions/Pay<br />For money movement from sender to receiver.<br />In most cases requires end user authorization.<br />No explicit user authorization required when used with a TransactionId for previously held funds or Delegated Payment access or when sender is same as Client<br />
    46. Authentication and Authorization<br /><ul><li>OAuth 2.0 ?
    47. 2-legged or 3-legged
    48. Need Access Token ?
    49. How to do dynamic user approvals ?
    50. Implicit and User Federations</li></li></ul><li>Discovery<br />https://service.provider.com/.well-known/host-meta<br /><?xml version='1.0' encoding='UTF-8'?><br /><XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'<br />     xmlns:hm='http://host-meta.net/ns/1.0'><br /> <br />    <hm:Host>service.provider.com</hm:Host><br /> <br />    <Link rel='http://owp-api.net/1.0/provider'<br />          href='http://service.provider/openpayments'><br /></XRD><br />
    51. API<br />
    52. Putting this all together – a grocery app<br /><entry><br /> <id>https://paymentsservice.com/owp/transaction/id/12345678</id><br /> <published>2010-07-15T01:46:00.001-05:00</published> <updated>2010-07-14T08:00:50.788-05:00</updated><br /> <category scheme='http://openpayment.org/atom/ns#' term='groceries' label="Groceries"/><br /> <category scheme='http://www.blogger.com/atom/ns#' term='store' lavel="Safeway"/><br /> <title type='text'>Groceries from Safeway</title><br /> <content type='html'><br /> <ul><li>2% Milk</li><li>2 Gallons Water</li><li>2lb Tomatos</li></ul><br /> </content><br /> <link rel='alternate' type='text/html' href='http://www.safeway.com/order-status' title='Safeway online Store'/><br /> <author><br /> <name>Your Grocery App</name><br /> <uri>http://your-grocery-app.com</uri><br /> <email>support@yourgroceryapp.com</email><br /><OWP:consumer_id>api-caller:1234</OWP:consumer_id><br /> </author><br />
    53. Putting this all together – a grocery app<br /> <OWP:transaction><br /> <OWP:action>http://owp-api.net/schema/1.0/object-types/Pay</OWP:action><br /> <OWP:entity><br /> <OWP:entity-type>http://owp-api.net/schema/1.0/entity-types/Sender</OWP:entity-type><br /> <name>Praveen Alavilli</name><uri>https://me.paypal.com/id/1234567</uri><email>praveen@x.com</email><br /> <OWP:funding-type>http://owp-api.net/schema/1.0/funding-types/Bank</OWP:funding-type><br /> <OWP:funding-type>http://owp-api.net/schema/1.0/funding-types/CreditCard</OWP:funding-type><br /> <OWP:funding-type>http://owp-api.net/schema/1.0/funding-types/DebitCard</OWP:funding-type><br /> </OWP:entity><br /> <OWP:entity><br /> <OWP:entity-type>http://owp-api.net/schema/1.0/entity-types/Receiver</OWP:entity-type><br /> <name>Safeway Store</name><uri>https://biz.paypal.com/id/7654321</uri><email>support@safeway.com</email><br /> <OWP:amount currency="USD">25.50</OWP:amount><br /> <OWP:payment-type>http://owp-api.net/schema/1.0/payment-types/Goods</OWP:payment-type><br /> </OWP:entity><br /> <OWP:entity><br /> <OWP:entity-type>http://owp-api.net/schema/1.0/entity-types/Receiver</OWP:entity-type><br /> <name>Your Grocery App</name><uri>https://biz.paypal.com/id/432156</uri><email>support@yourgroceryapp.com</email><br /> <OWP:amount currency="USD">2.00</OWP:amount><br /> <OWP:payment-type>http://owp-api.net/schema/1.0/payment-types/Services</OWP:payment-type><br /> </OWP:entity><br /> </OWP:transaction><br /></entry><br />
    54. Digital Goods app – using Pre-Pay<br /><entry><br /> <id>https://paymentsservice.com/owp/tranaction/id/2123024611142172293</id><br /> <published>2010-07-15T01:46:00.001-05:00</published> <updated>2010-07-14T08:00:50.788-05:00</updated><br /> <category scheme='http://owp-api.net/atom/ns#' term=’coins' label=”Coinsville Coins"/><br /> <title type='text'>Buying coins on Coinsville</title><br /> <content type='html’>PrePay for Coinsville</content><br /> <link rel='alternate' type='text/html' href='http://coinsville.com/account' title=’Coinsville Account Page'/><br /> <author><br /> <name>Digital Goods App</name><uri>http://digitalgoodsapp.com</uri><br /> <email>support@digitalgoodsapp.com</email><br /> <OWP:consumer_id>api-caller:654321</OWP:consumer_id><br /> </author><br /> <OWP:transaction><br /><OWP:action>http://owp-api.net/schema/1.0/object-types/PrePayAgreement</OWP:action><br /> <OWP:entity><br /> <OWP:entity-type>http://owp-api.net/schema/1.0/entity-types/Sender</OWP:entity-type><br /> <name>Praveen Alavilli</name><uri>https://me.paypal.com/id/1234567</uri><email>praveen@x.com</email><br /> <OWP:funding-type>http://owp-api.net/schema/1.0/funding-types/Gold</OWP:funding-type><br /> <OWP:amount currency=”bar">2</OWP:amount><br /> </OWP:entity> <br /> </OWP:transaction><br /></entry><br />
    55. Digital Goods app – recording payment<br /><entry><br /> <id>https://paymentsservice.com/owp/tranaction/id/45402461154323434234</id><br /> <published>2010-07-15T01:46:00.001-05:00</published> <updated>2010-07-14T08:00:50.788-05:00</updated><br /> <category scheme='http://owp-api.net/atom/ns#' term=’coins' label=”Coinsville Coins"/><br /> <title type='text'>Purchase digital sword</title><br /> <content type='html’>Blazing sword</content><br /> <link rel='alternate' type='text/html' href='http://coinsville.com/order' title=’Coinsville Order Portal'/><br /> <author><br /> <name>Digital Goods App</name><uri>http://digitalgoodsapp.com</uri><br /> <email>support@digitalgoodsapp.com</email><br /> <OWP:consumer_id>api-caller:654321</OWP:consumer_id><br /> </author><br /> <OWP:transaction><br /> <OWP:action>http://owp-api.net/schema/1.0/object-types/Pay</OWP:action><br /> <OWP:entity><br /> <OWP:entity-type>http://owp-api.net/schema/1.0/entity-types/Sender</OWP:entity-type><br /> <name>Praveen Alavilli</name><uri>https://me.paypal.com/id/1234567</uri><email>praveen@x.com</email><br /> <OWP:refTransactionId>https://paymentsservice.com/owp/tranaction/id/2123024611142172293</OWP:refTransactionId><br /> </OWP:entity> <br /> <OWP:entity><br /> <OWP:entity-type>http://owp-api.net/schema/1.0/entity-types/Receiver</OWP:entity-type><br /> <name>Digital Sword Seller</name><uri>https://biz.paymentprovider.com/id/9832434</uri><email>support@sword.com</email><br /> <OWP:amount currency=”bars”>0.25</OWP:amount><br /> <OWP:payment-type>http://owp-api.net/schema/1.0/payment-types/Services</OWP:payment-type><br /> </OWP:entity><br /> </OWP:transaction><br /></entry><br />
    56. Next Steps<br /><ul><li>Join the community and help in driving the spec
    57. OWP-API@googlegroups.com
    58. http://groups.google.com/group/owp-api
    59. Validate the document model
    60. Explore more use cases
    61. Sample implementations
    62. Virtual Currency Provider
    63. Payment Portability</li></li></ul><li>Q & A ?<br />Contact us: @ppalavilli & @rtanaka<br />http://groups.google.com/group/owp-api<br />
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×