Get started
Quick start: your first unlock
In about 15 minutes you buy your own app on your own watch, see it unlock, then refund it and see it lock again. It all runs in test mode: it's free, and no money moves.
Before you start
- A Connect IQ project that builds. This page shows an app. Watch faces and data fields add a few hooks instead of one line: see Watch faces and data fields.
- A watch, or the Connect IQ simulator.
- A phone with a camera.
- A Stripe, PayPal, Polar, Razorpay or Paystack account. You can make one while you connect it.
Set up the app in your dashboard
- Add your app. Open Add an app. Give it a name, say what it is (an app, a watch face or a data field), add an icon and pick its color.
- Say what's paid. Pick the whole app or some features, and write up to three short lines on what Premium adds. For this first test, leave the free trial at 0 days, so the buy screen shows at once. You can add a trial later.
- Connect a test payment account. On the Connect payments step, choose Connect Stripe or Connect PayPal and connect the test side. Live comes when you go live. Buyers pay this account directly: we never hold the money.
- Set a price. Once, a subscription, or a set time. You can change it later.
Add the library to your project
The last step, Add it to your app, shows these same lines with your app's details filled in. You can open it again any time from the app's Install tab.
- Download your config. Download
PaywallConfig.mcinto your project'ssourcefolder. It holds your app's address. It's public, not a secret. - Add the library. Download the library and unzip it next to your app's folder, so both sit side by side.
- Point your jungle at it. Add the library's folders to
monkey.jungle, with relative paths. - Allow the network. Add the Communications permission to your manifest.
base.sourcePath = source;../wearcheckout/lib/watch/app;../wearcheckout/lib/watch/glance
base.resourcePath = resources;../wearcheckout/lib/watch/resources<iq:permissions>
<iq:uses-permission id="Communications"/>
</iq:permissions>Your config file looks like this, with your own app's address:
// PaywallConfig.mc: from your dashboard (Interval Timer). Public, not a secret.
import Toybox.Lang;
(:glance)
module PaywallConfig {
const URL = "https://pay.example/api/K7Q2/c"; // your app's address
// const TRIAL_DAYS = 7; // add for a time trial
}Change one line
In your app's getInitialView(), wrap the views you already return:
// Before
return [new MainView(), new MainDelegate()];
// After: the whole app is paid for
return Paywall.gate([new MainView(), new MainDelegate()]);While the app is locked, the buy screen stands in for it. Once it's paid, your own views open. To sell only some features, use Paywall.start and one check per feature: see Gating paid features.
Buy it on your watch
- Run it. Build the app and start it on your watch or in the simulator. Its first start registers it as your test watch, and the app's Test tab ticks the first step.
- Scan the code. The buy screen shows a QR code. Point your phone's camera at it. Your processor's checkout opens on the phone, already linked to that watch.
- Pay with the test card. With Stripe, use
4242 4242 4242 4242, any future date and any CVC. With PayPal, use a buyer account from your PayPal sandbox. No money moves. - See it unlock. Keep the app open on the watch. About a second after the payment, the watch plays the unlock, with a tone and a buzz if the watch has them on, and shows "Premium unlocked".
- Refund it. Leave "Premium unlocked" on the watch. Refund the test payment in your processor's test dashboard. The watch locks again within seconds and shows the QR code.
Pressed START or BACK already? Then the buy screen has closed, and the watch locks at its next check instead. Refunds, disputes and renewals says when that is.
Check the test
The app's Test tab ticks each of these five steps the moment it happens:
- Your test watch registered.
- The buy page opened on a phone.
- The test payment went through.
- The watch unlocked.
- A refund locked it again.
All five passing is one of the checks before you go live.
Next steps
- Testing: test mode, the simulator, and the offline test.
- Add the library: languages, glances and the other calls.
- Going live: the eight checks and your store listing.