• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Open web payments
 

Open web payments

on

  • 6,556 views

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

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

Statistics

Views

Total Views
6,556
Views on SlideShare
3,883
Embed Views
2,673

Actions

Likes
4
Downloads
52
Comments
2

37 Embeds 2,673

http://whyidentity.blogspot.com 1207
http://stakeventures.com 1032
http://whyidentity.blogspot.in 140
http://whyidentity.blogspot.co.uk 81
http://whyidentity.blogspot.com.es 36
http://whyidentity.blogspot.se 27
http://www.stakeventures.com 22
http://whyidentity.blogspot.jp 15
http://whyidentity.blogspot.ca 14
http://whyidentity.blogspot.nl 14
http://whyidentity.blogspot.com.au 11
http://www.oscon.com 11
http://whyidentity.blogspot.de 10
http://www.linkedin.com 5
http://whyidentity.blogspot.fr 5
http://whyidentity.blogspot.ie 4
http://whyidentity.blogspot.sg 4
http://whyidentity.blogspot.cz 4
http://feeds.feedburner.com 3
http://speakerrate.com 3
http://whyidentity.blogspot.ru 3
http://whyidentity.blogspot.it 3
http://whyidentity.blogspot.com.br 2
http://whyidentity.blogspot.tw 2
http://whyidentity.blogspot.co.il 2
http://whyidentity.blogspot.dk 2
http://whyidentity.blogspot.mx 1
http://whyidentity.blogspot.com.tr 1
http://www.google.com 1
http://a0.twimg.com 1
http://whyidentity.blogspot.co.nz 1
http://whyidentity.blogspot.ae 1
http://whyidentity.blogspot.ro 1
http://whyidentity.blogspot.be 1
http://whyidentity.blogspot.hk 1
http://whyidentity.blogspot.pt 1
https://www.linkedin.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

12 of 2 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • actually that's any payment gateway (which includes PayPal's Payflow gateway too among others gateways out there).
    Are you sure you want to
    Your message goes here
    Processing…
  • The payment network, from step 2, to step 3 the money pass over payment gateway, example paypal, isn't it?
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 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 Open web payments Presentation Transcript

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