Skip to content

Technical Plugin YPTWallet

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

Technical: YPTWallet plugin

Maintains wallet balances, payment idempotency and transaction-scoped 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: 6.3.
  • Source revision: 7d48f2dfc0289236718a3f9fba7c5ffecff4a37f.
  • Entry class file: YPTWallet.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

processPaymentOnce() serializes provider claims and wraps ledger changes in a transaction. runPaymentStep() uses a savepoint so a failed rental/renewal can be undone while legitimate wallet funding remains. Provider identity, credit and fulfillment must be checked separately.

Dependencies

No literal dependency declaration was extracted. This does not prove the plugin is standalone.

Literal runtime plugin references: AuthorizeNet, BTCPayments, Gift, PayPalYPT, RazorPayYPT, StripeYPT. These calls do not mean every referenced plugin is mandatory.

Hook integration

Override Implementation
getTags() YPTWallet.php:18
updateScript() YPTWallet.php:49
getDataObjectAdvanced() YPTWallet.php:58
getDataObjectDeprecated() YPTWallet.php:100
getDataObjectExperimental() YPTWallet.php:109
getHTMLMenuRight() YPTWallet.php:777
profileTabName($users_id) YPTWallet.php:790
getFooterCode() YPTWallet.php:1120
getWalletConfigurationHTML($users_id, $wallet, $walletDataObject) YPTWallet.php:1160
getPluginMenu() YPTWallet.php:1191
getPermissionsOptions() YPTWallet.php:1199
afterDonation($from_users_id, $how_much, $videos_id, $users_id, $extraParameters) YPTWallet.php:1253

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
decimalPrecision 2 — source
wallet_button_title "My Wallet" — source
add_funds_text Computed/structured; inspect source — source
add_funds_success_success Computed/structured; inspect source — source
add_funds_success_cancel Computed/structured; inspect source — source
add_funds_success_fail Computed/structured; inspect source — source
transfer_funds_text Computed/structured; inspect source — source
transfer_funds_success_success Computed/structured; inspect source — source
transfer_funds_success_fail Computed/structured; inspect source — source
withdraw_funds_text Computed/structured; inspect source — source
withdraw_funds_success_success Computed/structured; inspect source — source
withdraw_funds_success_fail Computed/structured; inspect source — source
virtual_currency "HEART" — source
virtual_currency_symbol Computed/structured; inspect source — source
virtual_currency_exchange_rate "2" — source
virtual_currency_decimalPrecision 2.5 — source
virtual_currency_enable false — source
currency "USD" — source
currency_symbol Computed/structured; inspect source — source
addFundsOptions Computed/structured; inspect source — source
showWalletOnlyToAdmin false Show Wallet to Admin and selected user groups: If you check this you will need to specify what user group will be able to see the Wallet source
showWalletOnProfile true — source
showWalletOnTopMenu true — source
CryptoWalletName "Bitcoin Wallet Address" — source
CryptoWalletEnabled false — source
hideTransferFunds false — source
hideConfiguration false — source
enableAutomaticAddFundsPage true — source
enableManualAddFundsPage false — source
manualAddFundsMenuTitle "Add Funds/Deposit" — source
manualAddFundsPageButton "Notify Deposit Made" — source
manualAddFundsNotifyEmail Computed/structured; inspect source — source
manualAddFundsTransferFromUserId 1 — source
enableManualWithdrawFundsPage true — source
enableAutoWithdrawFundsPagePaypal false — source
withdrawFundsOptions Computed/structured; inspect source — source
withdrawFundsSiteCutPercentage Computed/structured; inspect source Withdraw Funds Site Cut Percentage: This percentage helps cover transaction fees charged by payment gateways when users load their wallets or make withdrawals. source
manualWithdrawFundsMenuTitle "Withdraw Funds" — source
manualWithdrawFundsPageButton "Request Withdraw" — source
manualWithdrawFundsNotifyEmail Computed/structured; inspect source — source
manualWithdrawFundsTransferToUserId 1 — 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/Wallet.php class/helper implementation —
Objects/WalletExport.php class/helper implementation —
Objects/Wallet_log.php class/helper implementation —
YPTWallet.php plugin entry class —
YPTWalletPlugin.php class/helper implementation —
buy.php PHP page/include/worker; inspect caller —
getBalance.json.php JSON entry point; inspect caller and guard —
getWalletConfigurationHTML.php PHP page/include/worker; inspect caller —
install/install.sql schema/migration SQL —
install/update.sql schema/migration SQL —
install/updateV4.0.sql schema/migration SQL —
install/updateV5.0.sql schema/migration SQL —
install/updateV5.1.sql schema/migration SQL —
install/updateV5.2.sql schema/migration SQL —
install/updateV6.0.sql schema/migration SQL —
install/updateV6.1.sql schema/migration SQL —
paymentsTest.php PHP page/include/worker; inspect caller plans_id
plugins/YPTWalletAuthorizeNet/YPTWalletAuthorizeNet.php class/helper implementation —
plugins/YPTWalletAuthorizeNet/confirmButton.php PHP page/include/worker; inspect caller plans_id
plugins/YPTWalletBTC/YPTWalletBTC.php class/helper implementation —
plugins/YPTWalletBTC/confirmButton.php PHP page/include/worker; inspect caller plans_id, ppvlive_schedule_id
plugins/YPTWalletBTC/requestPayment.json.php JSON entry point; inspect caller and guard plans_id, plugin, ppvlive_schedule_id, value, videos_id
plugins/YPTWalletBlockonomics/YPTWalletBlockonomics.php class/helper implementation —
plugins/YPTWalletBlockonomics/confirmButton.php PHP page/include/worker; inspect caller plans_id
plugins/YPTWalletPayPal/YPTWalletPayPal.php class/helper implementation —
plugins/YPTWalletPayPal/cancel_url.php PHP page/include/worker; inspect caller invoice
plugins/YPTWalletPayPal/confirmButton.php PHP page/include/worker; inspect caller plans_id, ppvlive_schedule_id
plugins/YPTWalletPayPal/confirmRecurrentButton.php PHP page/include/worker; inspect caller plans_id
plugins/YPTWalletPayPal/confirmRecurrentButtonV2.php PHP page/include/worker; inspect caller —
plugins/YPTWalletPayPal/redirect_url.php PHP page/include/worker; inspect caller invoice, paymentId, token
plugins/YPTWalletPayPal/requestPayment.json.php JSON entry point; inspect caller and guard plans_id, plugin, ppvlive_schedule_id, value, videos_id
plugins/YPTWalletPayPal/requestSubscription.json.php JSON entry point; inspect caller and guard plans_id
plugins/YPTWalletPayPal/requestSubscriptionV2.json.php JSON entry point; inspect caller and guard hash
plugins/YPTWalletRazorPay/YPTWalletRazorPay.php class/helper implementation —
plugins/YPTWalletRazorPay/cancel_url.php PHP page/include/worker; inspect caller —
plugins/YPTWalletRazorPay/confirmButton.php PHP page/include/worker; inspect caller plans_id
plugins/YPTWalletRazorPay/confirmRecurrentButton.php PHP page/include/worker; inspect caller plans_id
plugins/YPTWalletRazorPay/redirect_url.php PHP page/include/worker; inspect caller razorpay_order_id, razorpay_payment_id, razorpay_signature, razorpay_subscription_id
plugins/YPTWalletRazorPay/requestPayment.json.php JSON entry point; inspect caller and guard checkout, value
plugins/YPTWalletRazorPay/requestSubscription.json.php JSON entry point; inspect caller and guard plans_id
plugins/YPTWalletStripe/YPTWalletStripe.php class/helper implementation —
plugins/YPTWalletStripe/checkoutStatus.php PHP page/include/worker; inspect caller —
plugins/YPTWalletStripe/checkoutStatusScript.php PHP page/include/worker; inspect caller —
plugins/YPTWalletStripe/confirmButton.php PHP page/include/worker; inspect caller plans_id, plugin, ppvlive_schedule_id, users_id
plugins/YPTWalletStripe/confirmRecurrentButton.php PHP page/include/worker; inspect caller plans_id, videos_id
plugins/YPTWalletStripe/requestPayment.json.php JSON entry point; inspect caller and guard value
plugins/YPTWalletStripe/requestSubscription.json.php JSON entry point; inspect caller and guard plans_id, stripeToken
script.js browser/worker JavaScript; verify loader —
tools/export.php PHP page/include/worker; inspect caller —
view/addFunds.php PHP page/include/worker; inspect caller status
view/adminManageWallets.php PHP page/include/worker; inspect caller —
view/autoWithdrawFunds.php PHP page/include/worker; inspect caller —
view/changeLogStatus.json.php JSON entry point; inspect caller and guard status, wallet_log_id
view/configuration.php PHP page/include/worker; inspect caller —
view/export.php PHP page/include/worker; inspect caller end_date, start_date
view/exportDownload.php PHP page/include/worker; inspect caller end_date, format, report, start_date
view/history.php PHP page/include/worker; inspect caller users_id
view/log.json.php JSON entry point; inspect caller and guard sort, users_id
view/manualAddFunds.json.php JSON entry point; inspect caller and guard information, value
view/manualAddFunds.php PHP page/include/worker; inspect caller status
view/manualWithdrawFunds.json.php JSON entry point; inspect caller and guard information, value
view/manualWithdrawFunds.php PHP page/include/worker; inspect caller status
view/menuRight.php PHP page/include/worker; inspect caller —
view/pendingRequests.json.php JSON entry point; inspect caller and guard sort
view/pendingRequests.php PHP page/include/worker; inspect caller —
view/saveBalance.php PHP page/include/worker; inspect caller balance, users_id
view/saveConfiguration.php PHP page/include/worker; inspect caller CryptoWallet, donation_notification_url, regenerate_webhook_secret
view/transferFunds.json.php JSON entry point; inspect caller and guard captcha, users_id, value
view/transferFunds.php PHP page/include/worker; inspect caller status
view/users.json.php JSON entry point; inspect caller and guard current, rowCount

Data and migrations

Tables named in available CREATE TABLE statements: wallet, wallet_log. 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() 18
getDescription() 26
getName() 34
getUUID() 39
getPluginVersion() 44
updateScript() 49
getDataObjectAdvanced() 58
getDataObjectDeprecated() 100
getDataObjectExperimental() 109
getEmptyDataObject() 117
getBalance($users_id) 190
isStripePaymentCredited($paymentIntentId, $users_id) 196
getBalanceText($users_id) 201
getBalanceFormated($users_id) 207
formatCurrency($value, $addHTML = false, $doNotUseVirtualCurrency = false, $currency = false, $decimalPrecisionOverride = false) 221
getStep($doNotUseVirtualCurrency = false) 247
formatFloat($value) 260
getWallet($users_id) 267
getOrCreateWallet($users_id) 274
getAllUsers($activeOnly = true) 285
getPublicUserFields(): array 335
getAllUsersPublicFields($activeOnly = true): array 344
getTotalBalance() 354
getTotalBalanceText() 382
getHistory($user_id) 388
exchange($value) 396
processPaymentOnce($provider, $paymentIds, $users_id, callable $process, array $options = []) 414
runPaymentStep(callable $step, $label = '<string>') 511
addBalance($users_id, $value, $description = "'<string>'{}", $mainWallet_user_id = 0, $noNotExchangeValue = false) 553
saveBalance($users_id, $value) 599
transferBalanceToSiteOwner($users_id_from, $value, $description = "", $forceTransfer = false) 613
transferBalanceFromSiteOwner($users_id_from, $value, $description = "", $forceTransfer = false) 628
transferBalanceFromMeToSiteOwner($value) 638
transferBalanceFromOwnerToMe($value) 646
transferBalance($fromUserId, $toUserId, $amount, $customDescription = "", $forceTransfer = false) 654
transferAndSplitBalanceWithSiteOwner($users_id_from, $users_id_to, $value, $siteowner_percentage, $forceDescription = "") 762
getHTMLMenuRight() 777
profileTabName($users_id) 790
getAvailablePayments() 800
getAvailableRecurrentPayments($plans_id) 823
getAvailableRecurrentPaymentsV2($total = '<string>', $currency = '<string>', $frequency = '<string>', $interval = 1, $name = ''<string>''<string>'', $trialDays = 0) 849
getAvailablePlugins() 875
getEnabledPlugins() 892
getPluginDataObject($pluginName) 908
getPluginDir() 921
sendEmails($emailsArray, $subject, $message) 928
replaceTemplateText($siteTitle, $footer, $message) 937
send($emailsArray, $subject, $body) 947
transactionNotification($from_users_id, $to_users_id, $value, $status) 958
createNotification($from_users_id, $to_users_id, $title, $msg, $type, $element_id, $icon, $href) 1019
processStatus($wallet_log_id, $new_status) 1034
getUserBalance($users_id = 0) 1108
getFooterCode() 1120
setAddFundsSuccessRedirectURL($url) 1130
getAddFundsSuccessRedirectURL() 1136
setAddFundsSuccessRedirectToVideo($videos_id) 1141
showAdminMessage() 1146
getWalletConfigurationHTML($users_id, $wallet, $walletDataObject) 1160
setLogInfo($wallet_log_id, $information) 1166
setLogDescription($wallet_log_id, $description) 1178
getPluginMenu() 1191
getPermissionsOptions() 1199
canSeeWallet() 1206
setDonationNotificationURL($users_id, $url) 1219
getDonationNotificationURL($users_id) 1246
afterDonation($from_users_id, $how_much, $videos_id, $users_id, $extraParameters) 1253
generateRandomString($length = 32) 1326
setDonationNotificationSecret($users_id, $secret = null) 1338
getDonationNotificationSecret($users_id) 1361
regenerateDonationNotificationSecret($users_id) 1375
getBillingInterval($howManyDays) 1400

Supporting PHP declarations

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

Objects/Wallet.php

Declared classes: Wallet.

Named symbol Source
getSearchFieldsNames() 13
getTableName() 17
getBalance() 21
getId() 28
setId($id) 32
getUsers_id() 36
setBalance($balance) 40
setUsers_id($users_id) 44
getCrypto_wallet_address() 50
setCrypto_wallet_address($crypto_wallet_address) 54
loadFromUser($users_id) 58
getFromUser($users_id) 69
getFromWalletId($wallet_id) 86
save() 105
getFromUserForUpdate($users_id) 138
getOrCreateFromUser($users_id) 160

Objects/WalletExport.php

Declared classes: WalletExport.

Named symbol Source
getWalletTransactionsRows($startDate = ''<string>'') 13
getWalletBalancesRows() 77
outputTransactionsCSV($stream, $rows) 105
outputBalancesCSV($stream, $rows) 148
buildWalletTransactionsText($rows, $startDate = ''<string>'') 171
buildWalletBalancesText($rows) 208
buildCombinedText($transactionsRows, $balancesRows, $startDate = ''<string>'') 227
buildSimplePDF($text) 236
buildPdfPageContent($lines) 308
pdfEscape($text) 322
toPdfText($text) 330
singleLineText($text) 342
toPlainText($text) 349
wrapTextLine($text, $width = 120) 357
normalizeDate($dateValue, $isEnd) 367

Objects/Wallet_log.php

Declared classes: WalletLog.

Named symbol Source
getSearchFieldsNames() 14
getTableName() 18
upgradePaymentLogSchema() 23
getValue() 52
getDescription() 56
getWallet_id() 60
getJson_data() 64
setValue($value) 68
setDescription($description) 72
setWallet_id($wallet_id) 78
setJson_data($json_data) 82
getStatus() 87
getType() 91
setStatus($status) 95
setType($type) 99
getInformation() 103
setInformation($information) 107
getPrevious_wallet_balance() 114
setPrevious_wallet_balance($previous_wallet_balance) 118
getAllFromWallet($wallet_id, $dontReturnEmpty = true, $status="") 123
getTotalFromWallet($wallet_id, $dontReturnEmpty = true, $status="") 160
getAllFromUser($users_id, $dontReturnEmpty = true) 185
getTotalFromUser($users_id, $dontReturnEmpty = true) 194
hasProcessedPayment($provider, array $paymentIds, $wallet_id, array $options = []) 210
addProcessedPayment($provider, $paymentId, $wallet_id, $balance) 261
hasProcessedStripePaymentForUser($paymentIntentId, $users_id) 268
addLog($wallet_id, $value, $previous_wallet_balance, $description="'<string>'{}'<string>'success'<string>'", $information='') 285
save() 305

YPTWalletPlugin.php

Declared classes: YPTWalletPlugin.

Named symbol Source
getAprovalButton() 17
getEmptyDataObject() 18
getValue() 20
setValue($value) 24
getInvoiceNumber() 28
setInvoiceNumber($invoiceNumber) 32
getCurrency() 36
setCurrency($currency) 40
getRecurrentAprovalButton($plans_id) 44
getRecurrentAprovalButtonV2($total = '<string>', $currency = '<string>', $frequency = '<string>', $interval = 1, $name = ''<string>'', $trialDays = 0) 47

plugins/YPTWalletAuthorizeNet/YPTWalletAuthorizeNet.php

Declared classes: YPTWalletAuthorizeNet.

Named symbol Source
getAprovalLink() 9
getAprovalButton() 14
getRecurrentAprovalButton($plans_id) 19
getEmptyDataObject() 24

plugins/YPTWalletBTC/YPTWalletBTC.php

Declared classes: YPTWalletBTC.

Named symbol Source
getAprovalButton() 8
getEmptyDataObject() 16

plugins/YPTWalletBlockonomics/YPTWalletBlockonomics.php

Declared classes: YPTWalletBlockonomics.

Named symbol Source
getAprovalLink() 14
getAprovalButton() 29
getEmptyDataObject() 34

plugins/YPTWalletPayPal/YPTWalletPayPal.php

Declared classes: YPTWalletPayPal.

Named symbol Source
getAprovalLink() 8
getAprovalButton() 23
getRecurrentAprovalButton($plans_id) 29
getRecurrentAprovalButtonV2($total = '<string>', $currency = '<string>', $frequency = '<string>', $interval = 1, $name = ''<string>''<string>'', $trialDays = 0) 34
getEmptyDataObject() 45

plugins/YPTWalletRazorPay/YPTWalletRazorPay.php

Declared classes: YPTWalletRazorPay.

Named symbol Source
getAprovalButton() 8
getRecurrentAprovalButton($plans_id) 13
getEmptyDataObject() 18

plugins/YPTWalletStripe/YPTWalletStripe.php

Declared classes: YPTWalletStripe.

Named symbol Source
getAprovalButton() 8
getRecurrentAprovalButton($plans_id) 14
getEmptyDataObject() 19

tools/export.php

Named symbol Source
askText($question, $default = '') 137
askOption($question, $options, $default = '') 154
readConsoleLine() 190

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