Handling subscriptions
You may use the Digistore24 ipn system for managing subscription and rebilling on your plattform - e.g. on your membership area.
Handling product access
Use these events to handle access to your product:
- on_payment grants access to your product
- on_payment_missed revokes access to your product
Creating accounts
These parameters (and other) are sent asipn data
Create an account for these user data.
If you wan to pass user data to Digistore, please see this article.
Accounts and orders
When implementing your platform, please be aware, that a buyer may have multiple products.
It's essential, that you store the Digistore24 order id and track the order status for each order id.
Example:
Step | Action | Change | Event |
---|---|---|---|
1 | buyer buys product A | order id AA11AA11 created | on_payment sent for order AA11AA11 |
2 | buyer buys product B | order id BB22BB22 created | on_payment sent for order BB22BB22 |
3 | buyer cancels AA11AA11 | rebilling stopped for AA11AA11 | on_payment_missed sent for AA11AA11 |
If you would implement product access on an account level, the buyer may end up without product access after step 3.
Please implement product access on an order level, so that a buyer may have multiple orderes.
Upgrades
For upgrades and downgrades, the on_payment_missed event is not sent.
Access to the new product should be granted at a certain date.
For upgrade and downgrades, Digistore24 passes these ipn parameters:
Parameter name | Type | Description | Example value |
---|---|---|---|
upgraded_order_id | string(15) | ID of the “upgraded” order, i.e. the order ID the buyer has purchased the upgrade for. | 1A2B3C4E |
delivery_date | date | The date, when the new product should be delivered and access to the previous (upgraded) product should be stopped. If empty, access to the new product should be granted immediately. | (empty) or 2014-03-12 |
Revoke access to the product of previous order (upgraded_order_id) on given date (delivery_date).
At the same time grant access to new order (order_id).