I would like to propose an extension to payment JWT to be able to support more
flexible pricing by country, carrier, and payment method.
The first issue that I would like to solve is that not all payment methods
support all pricePoints. For example credit card payments with a particular
payment provider do not support pricePoints lower than $.99 (pricePoint 10),
while other payment methods may support lower price points. This issue also
comes up for the Marketplace not tied to a carrier, where the minimum payment
via credit card today is $.99. So if an app is priced at $.10 and is also
available on Android (which may be credit card only), we would need to charge a
minimum of $.99. This would be the case for an app offered in "Rest of the
World".
The second issue is that prices should not have to be uniform across all
countries. Socioeconomic differences across countries mean that the value of a
$.99 app in one country may be more affordable at $.50, for instance.
Ultimately this should be up to the developer to decide what price to charge in
a particular store. NOTE: today we do not restrict users to only purchase in
their region, so a user could buy from another region if the price is cheaper
and be charged on their credit card in their own 'home' currency.
The third issue is that not all carriers support all price points. The reality
of the situation is that they typically have a max and minimum amount they can
charge to a mobile bill. Also, some carriers have fixed price tiers. By
carrier, I am referring to the combination of country:carrier as a unique
combination.
Allowing local overides by country and carrier would allow the developer to
take control of their pricing.
One suggestion to add to the JWT something like below:
pricePoint: 1,
localPricePoints: {
venezuela: {pricePoint: 10}
}
.. to say: use price point 1 everywhere except for in Venezuela use price point
10.
The case of needing to price differently between carriers within a region has
not yet occurred. But planning for it, we could expand as follow.
pricePoint: 1,
localPricePoints: {
venezuela: {
carriers: {
"*": {pricePoint: 10},
movistar: {pricePoint: 5}
}
}
}
To say, use price point 1, but in venezuela use price point 10 except movistar
where it should use price point 5.
A method overide may be that we have a rounding rule - something that says if a
price point is not available round up to nearest, round down to nearest, or
none (default).
So, for instance:
pricePoint: 5
roundingRule: up (OR down, none)
would mean if an app sold in Italy is offered at pricePoint 5 (€.49) and
offered on Android which would need credit card payment, it would be offered at
pricePoint 10 €.89).
_______________________________________________
dev-webapps mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-webapps