For a developer to build an app with in-app payments she currently has to 

1. host a web server at some domain and 
2. that server must accept HTTPS connections with a valid cert. She cannot use 
a self-signed cert.

Is it important enough for the developer ecosystem to relax this restriction 
and allow HTTP URLs?

If a developer self-hosts their domain it is pretty costly to get an HTTPS cert 
and this would be a barrier to entry. Many services like Heroku, App Engine, 
OpenShift, etc, will provide HTTPS on a shared domain though.


Why HTTPS? The restriction applies to when the Firefox Marketplace does a 
server to server post with a JWT containing the result of a purchase. This JWT 
is a blob of JSON that contains info about the product. It does *not* contain 
user data unless the developer put an email or something in the productData 
field but that would be weird. In raw form, the JWT is a base64 encoded string 
of JSON + a signature.

Here's detailed info about how notifications work: 
https://developer.mozilla.org/en-US/docs/Apps/Publishing/In-app_payments#Processing_postbacks_on_the_server

Example JWT that would be sent over the wire in plain text (after decoding it):

{
  "iss": "marketplace.firefox.com",
  "aud": APPLICATION_KEY,
  "typ": "mozilla/payments/pay/postback/v1",
  "exp": 1337370900,
  "iat": 1337360900,
  "request": {
    "id": "915c07fc-87df-46e5-9513-45cb6e504e39",
    "pricePoint": 1,
    "name": "Magical Unicorn",
    "description": "Adventure Game item",
    "productData": "user_id=1234&my_session_id=XYZ",
    "postbackURL": "https://yourapp.com/payments/postback";,
    "chargebackURL": "https://yourapp.com/payments/chargeback";
  },
  "response": {
    "transactionID": "webpay:84294ec6-7352-4dc7-90fd-3d3dd36377e9"
  }
}
_______________________________________________
dev-webapps mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-webapps

Reply via email to