Confirmed users
745
edits
(added banner) |
|||
(13 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{Marketplace_banner}} | |||
This page discusses some improvements to In-app Payments for the Marketplace. | This page discusses some improvements to In-app Payments for the Marketplace. | ||
Line 10: | Line 11: | ||
== Proposed solution == | == 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. | * 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. | * User clicks a Buy button. | ||
* App does a POST to /mozpay/product/shiny-pony/buy | * App does a POST to /mozpay/product/shiny-pony/buy | ||
** That initiates a transaction on the server. | ** That initiates a transaction on the server. | ||
** Server contacts the marketplace to record start of the transaction. | ** Server contacts the marketplace to record start of the transaction. | ||
*** Is there an issue here with matching up Marketplace persona accounts? | *** 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 | ** Creates the JWT and returns it to the client | ||
** The client receives the JWT and passes it to mozPay. | ** The client receives the JWT and passes it to mozPay. | ||
* App polls the server waiting for a completed purchase... | * App polls the server waiting for a completed purchase... | ||
* When completed a receipt is returned to the client | * When completed a receipt is returned to the client | ||
** Client installs the receipt (bug https://bugzilla.mozilla.org/show_bug.cgi?id=757226) | ** Client installs the receipt probably with app.addReceipt() (bug https://bugzilla.mozilla.org/show_bug.cgi?id=757226) | ||
* App verifies the receipt is correct for that app. | * App verifies the receipt is correct for that app. | ||
** App verifies the receipt against the receipt verification. | ** App verifies the receipt against the receipt verification. | ||
* App grants access to product purchased. | * App grants access to product purchased. | ||
* User can revisit the marketplace and get a list of completed in-app payments. | * 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. | ** 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 should check the receipt is correct for that app. | ||
*** App verifies the receipt against the receipt verification. | *** 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 == | == Bugs == | ||
Tracking bug is {{Bugzilla|944480}}. | |||
<bugzilla> | |||
{ "blocks": ["944480"] } | |||
</bugzilla> |