Repository navigation
Technical Plugin StripeYPT
Creates Stripe payments/subscriptions and processes verified credit/fulfillment.
Audience: developers, advanced administrators and AI-assisted diagnosis. Plugin catalog.
- Review date: 2026-10-29. Method: static source analysis; runtime/provider behavior was not exercised.
- Code ownership: AVideo Streamer repository.
- Reported version:
2.5. - Source revision:
7d48f2dfc0289236718a3f9fba7c5ffecff4a37f. - Entry class file: StripeYPT.php.
Confirm the installed plugin version independently of the Streamer version. Configuration defaults below are not a dump of this installation's saved settings.
For single payments the browser confirms the card and charge.succeeded delivery processes wallet credit. Duplicate-payment handling considers provider charge timing and pending local credit. Refund state is re-read during delivery; see Technical-Payments.
No literal dependency declaration was extracted. This does not prove the plugin is standalone.
Literal runtime plugin references: PayPerView, PayPerViewLive, Subscription, YPTWallet. These calls do not mean every referenced plugin is mandatory.
| Override | Implementation |
|---|---|
getTags() |
StripeYPT.php:12 |
getDataObject() |
StripeYPT.php:59 |
getPluginMenu() |
StripeYPT.php:1436 |
These are direct assignments inside getEmptyDataObject(), not evaluated effective defaults. Stored plugins.object_data, globals, structured values and conditional branches may alter runtime behavior. Private/default credential values are omitted.
| Field | Literal default or expression type | Literal source label/help | Evidence |
|---|---|---|---|
Publishablekey |
Private setting; value omitted | Publishable key: Use a pk_test_ or pk_live_ key from the same Stripe account and mode as Restrictedkey. | source |
Restrictedkey |
Private setting; value omitted | Server API key: Prefer a restricted key. Open Check configuration for the required permissions and safe webhook setup. | source |
SigningSecret |
Private setting; value omitted | Webhook signing secret: For an existing endpoint, copy its whsec_ secret from Stripe. Automatic setup securely saves the secret of a newly created endpoint separately. | source |
subscriptionButtonLabel |
"Subscribe With Credit Card" |
— | source |
paymentButtonLabel |
"Pay With Credit Card" |
— | source |
This inventory distinguishes implementation files from an API specification. Includes, templates, callbacks and CLI workers are not interchangeable HTTP endpoints. Request-field names below are direct source references, not a complete schema or permission declaration.
| File | Source role | Direct request fields observed |
|---|---|---|
| Objects/StripeConfiguration.php | class/helper implementation | — |
| StripePlanStatus.json.php | JSON entry point; inspect caller and guard |
plans_id, stripe_costumer
|
| StripeYPT.php | plugin entry class |
debug, stripeToken, value
|
| addCard.json.php | JSON entry point; inspect caller and guard |
paymentMethodId, subscription_id
|
| configuration.json.php | JSON entry point; inspect caller and guard | action |
| configuration.php | PHP page/include/worker; inspect caller | — |
| createWebhook.json.php | JSON entry point; inspect caller and guard | — |
| deleteCard.json.php | JSON entry point; inspect caller and guard |
paymentMethodId, subscription_id
|
| getIntent.json.php | JSON entry point; inspect caller and guard |
customer, description, future_usage, json, plans_id, plugin, ppvlive_schedule_id, recurrent, singlePayment, value, videos_id
|
| init.php | PHP page/include/worker; inspect caller | — |
| ipn.php | PHP page/include/worker; inspect caller | — |
| listCreditCards.json.php | JSON entry point; inspect caller and guard | subscription_id |
| listCreditCards.php | PHP page/include/worker; inspect caller | subscription_id |
| listSubscriptions.php | PHP page/include/worker; inspect caller |
plans_id, subscription_tid, users_id
|
| singlePaymentStatus.json.php | JSON entry point; inspect caller and guard |
payment_intent_id, ppvlive_schedule_id, videos_id
|
| subscriptionCancel.json.php | JSON entry point; inspect caller and guard | stripe_costumer |
| subscriptionStatus.json.php | JSON entry point; inspect caller and guard | plans_id |
| test.php | PHP page/include/worker; inspect caller | payload |
| update_certs.php | PHP page/include/worker; inspect caller | — |
No CREATE TABLE names were extracted from available plugin SQL. The plugin can still use core tables, PHP-created schema or another component's data. Apply installation/update behavior through the owning plugin; this reference is not a script for running historical migrations manually.
Visibility and implementation semantics must be checked in source. Nonempty string defaults are represented as . This is a symbol reference, not a stable public API promise.
| Function or method | Source |
|---|---|
getTags() |
12 |
getDescription() |
20 |
getName() |
28 |
getUUID() |
33 |
getPluginVersion() |
38 |
getEmptyDataObject() |
43 |
getDataObject() |
59 |
setTempDataObject($Publishablekey, $Restrictedkey, $SigningSecret) |
73 |
start() |
80 |
_start() |
85 |
getWebhook() |
94 |
getSigningSecrets($settings) |
112 |
getIntent($total = '<string>', $currency = '<string>', $description = "'<string>''<string>'") |
119 |
getSinglePaymentIntentLocked($parameters) |
213 |
isSinglePaymentCreditPending($intent, $charge, $paidAt) |
338 |
createSinglePaymentIntent($parameters, $state, $statePath) |
350 |
saveSinglePaymentState($statePath, $state) |
366 |
setUpPayment($total = '<string>', $currency = '<string>', $description = "") |
382 |
getAmountFromPayment($payment) |
412 |
addDot($value) |
423 |
removeDot($value) |
430 |
getCurrencyFromPayment($payment) |
436 |
isPaymentOk($payment, $value, $currency) |
444 |
createCostumer($users_id, $stripeToken) |
470 |
getCostumerId($users_id, $stripeToken) |
493 |
isCostumerValid($id) |
509 |
createBillingPlan($total = '<string>', $currency = '<string>', $frequency = '<string>', $interval = 1, $name = '<string>', $requestOptions = []) |
530 |
updateBillingPlan($plans_id, $total = '<string>', $currency = '<string>', $interval = 1, $name = '<string>') |
548 |
getSubscriptions($stripe_costumer_id, $plans_id) |
566 |
userHasActiveSubscriptionOnPlan($plans_id) |
625 |
setUpSubscription($plans_id, $stripeToken) |
649 |
getStripeCustomerLinks($users_id, $plans_id) |
692 |
setUpSubscriptionLocked($plans_id, $stripeToken) |
702 |
updateCustomerMetadata($stripe_costumer_id, $metadata = []) |
891 |
updateSubscriptionMetadata($stripe_subscription_id, $metadata = []) |
916 |
getAmountPaidFromPayload($payload) |
941 |
processSubscriptionIPN($payload) |
957 |
getPaymentIds($payload) |
1021 |
getPaymentLogContext($payload) |
1037 |
getMetadata($payload) |
1049 |
getSubscriptionId($payload) |
1070 |
getCustomerId($payload) |
1087 |
getMetadataOrFromSubscription($payload) |
1092 |
isSinglePayment($payload) |
1150 |
isSubscriptionPayment($payload) |
1155 |
isSubscriptionCanceled($payload) |
1160 |
getSinglePaymentAmountStillPaid($payload, $logContext, &$chargeVerified = null) |
1169 |
processSinglePaymentIPN($payload) |
1193 |
getAllSubscriptions($status = '<string>') |
1253 |
getAllSubscriptionsSearch($users_id, $plans_id) |
1278 |
getAllCreditCards($plans_id) |
1304 |
addCard($customer_id, $paymentMethodId) |
1330 |
addCardToSubscription($subscription, $paymentMethod) |
1361 |
deleteCard($customerId, $paymentMethodId) |
1387 |
cancelSubscriptions($id) |
1406 |
retrieveSubscriptions($id) |
1424 |
getPluginMenu() |
1436 |
These symbols are grouped by source file; inspect the class declaration and visibility before calling them.
Declared classes: StripeConfiguration.
| Named symbol | Source |
|---|---|
__construct($settings, $url, $client = null) |
10 |
client() |
17 |
mode($key) |
29 |
scope($settings, $url) |
34 |
managedWebhook($settings, $url) |
39 |
signingSecrets($settings, $url) |
53 |
deliveryCacheName($settings, $url) |
63 |
deliveryCache($settings, $url, $delivery = null) |
68 |
recordDelivery($settings, $url, $event) |
86 |
finding(&$report, $id, $label, $status, $message) |
97 |
validKeys() |
105 |
failure($exception) |
113 |
endpoints() |
125 |
publicEndpoint($endpoint) |
144 |
check($features = []) |
155 |
configure(callable $save) |
266 |
| Named symbol | Source |
|---|---|
checkWebhook($payload, $sig_header, $endpoint_secret) |
23 |
- Check the installed/enabled version and the dependencies/settings above.
- Identify the actual failing page, request, callback or worker and correlate its timestamp with the AVideo log.
- Follow the linked method and caller. Check business-state changes and output artifacts as well as HTTP status.
- Reproduce the relevant workflow in a test environment. External provider, Encoder, live-server, storage, payment and authenticated flows require their real integrations.
Shared diagnostic workflow. This page is not a security audit or a claim of end-to-end validation.
Start
Install and update
- Install on Ubuntu 24.04 or 26.04
- Installation Setup Page
- Scheduler cron job (required)
- Set up email
- Use HTTPS
- Own Encoder
- Docker
- Update AVideo
- Backup
- Secure file permissions
- Server command-line tools
- Hidden configuration options
Videos
- Upload a video
- Local Encoder (on your computer)
- Bulk upload by FTP
- Import a channel
- Publish on YouTube and social media
- Privacy options
- Only for logged-in users
- Resolutions by user group
- Storage options
- Move and protect video files
- Video does not play
Users
Live
- Make a live stream
- Stream with OBS
- Own live server
- One live server, many sites
- Live server install errors
- Live does not play
Plugins
Problems
Other
- Translate your site
- Write a plugin (developers)
- Technical reference (developers and advanced administrators)
Old and retired guides