Skip to content

Technical Plugin StripeYPT

Daniel Neto edited this page Oct 29, 2026 · 1 revision

Technical: StripeYPT plugin

Creates Stripe payments/subscriptions and processes verified credit/fulfillment.

Audience: developers, advanced administrators and AI-assisted diagnosis. Plugin catalog.

Source baseline

  • 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.

Behavior and operational checks

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.

Dependencies

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.

Hook integration

Override Implementation
getTags() StripeYPT.php:12
getDataObject() StripeYPT.php:59
getPluginMenu() StripeYPT.php:1436

Configuration assignments

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

Files and request surface

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 —

Data and migrations

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.

Main-file named symbols

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

Supporting PHP declarations

These symbols are grouped by source file; inspect the class declaration and visibility before calling them.

Objects/StripeConfiguration.php

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

ipn.php

Named symbol Source
checkWebhook($payload, $sig_header, $endpoint_secret) 23

Diagnostics and validation

  1. Check the installed/enabled version and the dependencies/settings above.
  2. Identify the actual failing page, request, callback or worker and correlate its timestamp with the AVideo log.
  3. Follow the linked method and caller. Check business-state changes and output artifacts as well as HTTP status.
  4. 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.

Clone this wiki locally