Payment
Service

The BlackBerry 10 SDK enables
you to use the same Payment
Service
that processes all purchases that users make in the BlackBerry World storefront.
You can use the classes in the net.rim.blackberry.payment package to
create a highly secure and consistent purchase experience that allows users to buy
digital goods without leaving your application. The
net.rim.blackberry.events package contains events that allow your
application to listen for successful or unsuccessful purchases.

To sell digital goods from your application you must be a registered vendor with BlackBerry World and your
application containing digital goods must be distributed exclusively through BlackBerry World. Digital
goods go through a vetting process along with your applications. To sign up as a vendor,
visit appworld.blackberry.com/isvportal.

Users can purchase digital goods using any of the payment types supported by BlackBerry World. Payment
types can include billing to the wireless service provider (if available), credit card,
or PayPal.

License models

You can distribute digital goods in your application by using a number of different
license models (some of which are supported by the Payment
Service). Depending on the license models that your application uses, you might want to
customize the way you present purchase options to reflect which digital goods were
purchased already.

Consumable

Digital goods that are registered as consumable must be purchased by a user for each
use. For example, in a virtual world simulation, you could sell tickets to a virtual
attraction or feed for a virtual animal. The Payment
Service does not set any controls on the number of times that a user can purchase these
goods.

Non-consumable

Digital goods that are registered as non-consumable are purchased only once by a
user. The Payment
Service server blocks subsequent purchases by the user. In this scenario, you might want
to provide a way for users to see their purchase history. By invoking the
PaymentSystem.getExistingPurchases function, you can retrieve a
record of a user's past purchases.

When you offer a non-consumable digital good, you must ensure that the digital goods
are available through your application for a specific period of time after the user
downloads the application. To view the required minimum time period in the Research In Motion
SDK License agreement, visit http://us.blackberry.com/developers/legal.jsp.

You must also make sure that digital goods are still available if the user reinstalls
the application or switches devices. Digital goods are not automatically restored,
so it is up to you to make sure that users can download these digital goods again.

Subscription

Digital goods that are registered as a subscription are purchased initially by a
user, and the user is charged at regular intervals for continued use of the goods.
When you register subscription-based digital goods, you must specify an initial fee
and usage period, as well as a renewal fee and usage period. Users are charged the
initial fee when they purchase the digital goods and can use the digital goods for
the initial period of time. Users are then charged the renewal fee each time the
usage period elapses so that they can continue to use the digital goods.

You can implement a trial period for your subscription-based digital goods by not
specifying an initial fee. Users can download your digital goods and use them free
of charge for the trial period and are charged after the trial period ends.

To purchase subscription-based digital goods in your application, users must be
running BlackBerry World
storefront 3.1.

Free

The Payment
Service doesn't provide support for free digital goods. Your application can distribute
free digital goods, but you cannot use the Payment
Service to process transactions for goods with no monetary value.

Registering digital goods with BlackBerry World

When you submit an application for review in the BlackBerry World vendor
portal, you must also add the details about the digital goods that your application
offers. You must provide the name, the SKU (the unique identifier for the digital
goods), the license model (consumable or one-time payment), the pricing tier, and a
description of the digital goods in each language that your application is available
in.

If it is impractical to create a separate name and SKU for each of your digital
goods, you can use the same name and SKU for multiple digital goods. For example, if
you sell streaming video through your application, you could use one name and SKU
for the digital goods that you sell at a particular price tier. In this scenario,
you might register digital goods with the name "Video $4.99" and use the same SKU
for every streaming video that you sell at the $4.99 pricing tier. This way you can
update the purchase options without submitting a new version of your application.
When you invoke the PaymentSystem.purchase() function, you can pass
a metadata argument that allows you to differentiate between digital goods that
reference the same SKU.