Marketplace/InAppPayments

From MozillaWiki
Jump to navigation Jump to search
Stop (medium size).png
The Marketplace has been placed into maintenance mode. It is no longer under active development. You can read complete details here.

This page discusses some improvements to In-app Payments for the Marketplace.

Issues

  • Developers have to manage the in-app keys.
  • Developers require a server to store the in-app keys.
  • Developers respond to payment notices for success or failure.
  • Marketplace doesn't know anything about an in-app payment, meaning purchase history and refunds are empty.

Proposed solution

  • App developers enters in a product and price on the Mozilla Marketplace developer hub and gets a URL for example /mozpay/product/shiny-pony/buy.
  • User clicks a Buy button.
  • App does a POST to /mozpay/product/shiny-pony/buy
    • That initiates a transaction on the server.
    • Server contacts the marketplace to record start of the transaction.
      • Is there an issue here with matching up Marketplace persona accounts? (no, because we'll be using device receipts)
    • Creates the JWT and returns it to the client
    • The client receives the JWT and passes it to mozPay.
  • App polls the server waiting for a completed purchase...
  • When completed a receipt is returned to the client
  • App verifies the receipt is correct for that app.
    • App verifies the receipt against the receipt verification.
  • App grants access to product purchased.
  • User can revisit the marketplace and get a list of completed in-app payments. [out of scope]
    • Users can click a button to get a receipt for an in-app payment.
      • App should check the receipt is correct for that app.
      • App verifies the receipt against the receipt verification.

Issues

  • Refunds and chargebacks will still need a server, although we will report that on a reciept check.
  • Lots of products?
  • revoking / updating receipt - ie. for subscription products?
  • developer testing
  • Current in app payment tester http://inapp-pay-test.paas.allizom.org/
  • Multiple payment providers?
    • eg: create bango account, create in app payment, create timwe account then what happens
  • Existing https://github.com/mozilla/receiptverifier

Bugs

Tracking bug is 944480.

Bugzilla query error

Array ( [type] => error [message] => http-bad-status [params] => Array ( [0] => 406 [1] => Not Acceptable ) ) 1