Repository navigation
Technical Plugin AuthorizeNet
Integrates Authorize.Net checkout, customer profiles, subscriptions and reconciliation.
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:
1.2. - Source revision:
7d48f2dfc0289236718a3f9fba7c5ffecff4a37f. - Entry class file: AuthorizeNet.php.
Confirm the installed plugin version independently of the Streamer version. Configuration defaults below are not a dump of this installation's saved settings.
Pending payments, verified transaction details, wallet credit and plan fulfillment are separate states. Periodic reconciliation can recover a payment without a browser return. Provider delivery and recurring-payment behavior require sandbox verification.
| Plugin | Required by declaration | Source reason |
|---|---|---|
| YPTWallet | Required | Credits successful payments to the user wallet balance |
| Subscription | Optional | Optional recurring subscription plan integration |
Literal runtime plugin references: YPTWallet. These calls do not mean every referenced plugin is mandatory.
| Override | Implementation |
|---|---|
getTags() |
AuthorizeNet.php:1796 |
updateScript() |
AuthorizeNet.php:1821 |
executeEveryMinute() |
AuthorizeNet.php:1834 |
getPluginMenu() |
AuthorizeNet.php:1839 |
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 |
|---|---|---|---|
apiLoginId |
"" |
— | source |
transactionKey |
Private setting; value omitted | — | source |
signatureKey |
Private setting; value omitted | — | source |
sandbox |
true |
— | 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 |
|---|---|---|
| AuthorizeNet.php | plugin entry class | — |
| Objects/Anet_pending_payment.php | class/helper implementation | — |
| Objects/Anet_webhook_log.php | class/helper implementation | — |
| View/Anet_webhook_log/add.json.php | JSON entry point; inspect caller and guard |
created_php_time, error_text, event_type, id, modified_php_time, payload_json, processed, status, trans_id, uniq_key, users_id
|
| View/Anet_webhook_log/delete.json.php | JSON entry point; inspect caller and guard | id |
| View/Anet_webhook_log/index.php | PHP page/include/worker; inspect caller | — |
| View/Anet_webhook_log/index_body.php | PHP page/include/worker; inspect caller | — |
| View/Anet_webhook_log/list.json.php | JSON entry point; inspect caller and guard | draw |
| View/editor.php | PHP page/include/worker; inspect caller | — |
| acceptHostedReturn.php | PHP page/include/worker; inspect caller | cancel |
| cancelSubscription.json.php | JSON entry point; inspect caller and guard | subscriptionId |
| cancelSubscription.php | PHP page/include/worker; inspect caller | subscription_id |
| getAcceptHostedToken.json.php | JSON entry point; inspect caller and guard |
amount, plans_id
|
| getProfileManager.json.php | JSON entry point; inspect caller and guard | — |
| getSubscriptionStatus.json.php | JSON entry point; inspect caller and guard | subscriptionId |
| getSubscriptions.json.php | JSON entry point; inspect caller and guard | — |
| install/install.sql | schema/migration SQL | — |
| install/updateV1.1.sql | schema/migration SQL | — |
| install/updateV1.2.sql | schema/migration SQL | — |
| processTransaction.json.php | JSON entry point; inspect caller and guard | — |
| registerWebhook.json.php | JSON entry point; inspect caller and guard | — |
| webhook.php | PHP page/include/worker; inspect caller | — |
Tables named in available CREATE TABLE statements: anet_pending_payment, anet_webhook_log.
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 |
|---|---|
getPluginDependencies() |
42 |
verifySignature(string $rawBody, array $headers, string $signatureKey): bool |
61 |
parseWebhookRequest(string $rawBody, array $headers, array $allowedEvents = ['<string>']): array |
92 |
extractUsersIdFromTxnRaw($txnRaw): ?int |
133 |
analyzeTransactionFromWebhook(array $payload, $transactionRawObject = null): array |
165 |
processSinglePayment( int $users_id, float $amount, string $uniq_key, string $eventType, array $payload = [], string $description = '<string>', string $transactionId = '' ): array |
252 |
processSubscriptionCharge( string $subscriptionId, int $users_id, float $amount, string $uniq_key, string $eventType, array $payload = [], string $description = '<string>' ): array |
331 |
processSubscriptionChargeWithPlan(array $analysis, string $uniq_key, string $eventType, array $payload): array |
384 |
buildWebhookUniqKey(string $eventType, string $transactionId): string |
434 |
acquireProcessingLock(string $lockKey, int $timeoutSeconds = 10): bool |
439 |
releaseProcessingLock(string $lockKey): void |
453 |
generatePendingReference(): string |
464 |
createPendingPayment(int $users_id, float $amount, array $metadata = [], string $currency = '<string>'): array |
469 |
getPendingRecordFromTxnInfo(array $txnInfo): ?array |
495 |
markPendingPaymentFromTxnInfo(array $txnInfo, string $transactionId): void |
521 |
createOrRenewPlanSubscription(array $analysis, string $transactionId): ?array |
529 |
processApprovedTransaction( string $transactionId, ?string $uniq_key = null, string $eventType = '<string>', array $payload = [] ): array |
587 |
getRecentCustomerTransactions(string $customerProfileId, int $limit = 10): array |
678 |
findRecentApprovedTransactionForUser(int $users_id, ?float $expectedAmount = null, int $lookbackSeconds = 1800): array |
724 |
reconcilePendingPayment(array $pending): array |
782 |
reconcilePendingPayments(int $limit = 20, int $maxAgeSeconds = 3600): array |
844 |
getDefaultPaymentProfileId(string $customerProfileId): ?string |
854 |
createSubscription( int $users_id, float $amount, array $metadata = [], int $intervalLength = 1, string $intervalUnit = '<string>', ): array |
887 |
isSubscriptionActive(string $subscriptionId): array |
1002 |
generateHostedPaymentPage(float $amount, array $metadata = [], string $currency = '<string>'): array |
1044 |
generateManageProfileToken(): array |
1161 |
getCustomerProfileIdByMerchantCustomerId($merchantCustomerId) |
1193 |
getOrCreateCustomerProfile(int $users_id) |
1229 |
getCustomerProfile(string $customerProfileId): ?array |
1286 |
createWebhook(string $webhookUrl, array $eventTypes = ['<string>']) |
1345 |
checkNotificationHistory(string $query = '<string>', bool $fetchAllDetails = false): array |
1360 |
getNotificationDetail(string $notificationId): array |
1412 |
webhookExists(string $webhookUrl) |
1421 |
updateWebhookEventTypes(string $webhookId, array $eventTypes) |
1440 |
reactivateWebhook(string $webhookId): array |
1445 |
createWebhookIfNotExists(array $eventTypes = ['<string>']) |
1457 |
ensureWebhookOrDie(array $eventTypes = ['<string>']): void |
1504 |
getTransactionDetails(string $transactionId): array |
1535 |
abortWebhook(string $msg): void |
1644 |
getConfig() |
1653 |
getMerchantAuthentication(): AnetAPI\MerchantAuthenticationType |
1658 |
getEnvironment() |
1667 |
getHostedBaseUrl(string $path): string |
1676 |
getRestBaseUrl(): string |
1687 |
getWebhookURL(): string |
1697 |
restWebhook(string $method, string $path, ?array $payload = null): array |
1706 |
extractSdkError($response): string |
1755 |
extractRestError(array $res): string |
1780 |
getTags() |
1796 |
getDescription() |
1801 |
getName() |
1806 |
getUUID() |
1811 |
getPluginVersion() |
1816 |
updateScript() |
1821 |
executeEveryMinute() |
1834 |
getPluginMenu() |
1839 |
getEmptyDataObject() |
1845 |
getCustomerSubscriptions(string $customerProfileId): array |
1864 |
getSubscriptionDetails(string $subscriptionId): array |
1932 |
checkUserActiveSubscriptions(int $users_id, ?string $plans_id = null): array |
2025 |
cancelSubscription(string $subscriptionId): array |
2081 |
getUserActiveSubscriptions(int $users_id): array |
2123 |
getSubscriptionWithCurrentStatus(string $subscriptionId): array |
2160 |
These symbols are grouped by source file; inspect the class declaration and visibility before calling them.
Declared classes: Anet_pending_payment.
| Named symbol | Source |
|---|---|
enableInternalSaveBypass(): void |
9 |
getSearchFieldsNames() |
15 |
getTableName() |
20 |
setId($id) |
25 |
setRef_id($ref_id) |
26 |
setUsers_id($users_id) |
27 |
setPlans_id($plans_id) |
28 |
setAmount($amount) |
29 |
setCurrency($currency) |
30 |
setStatus($status) |
31 |
setTransaction_id($transaction_id) |
32 |
setMetadata_json($metadata_json) |
33 |
setAttempts($attempts) |
34 |
setLast_checked_php_time($last_checked_php_time) |
35 |
setCreated_php_time($created_php_time) |
36 |
setModified_php_time($modified_php_time) |
37 |
setError_text($error_text) |
38 |
getId() |
40 |
getRef_id() |
41 |
getUsers_id() |
42 |
getPlans_id() |
43 |
getAmount() |
44 |
getCurrency() |
45 |
getStatus() |
46 |
getTransaction_id() |
47 |
getMetadata_json() |
48 |
getAttempts() |
49 |
getLast_checked_php_time() |
50 |
getCreated_php_time() |
51 |
getModified_php_time() |
52 |
getError_text() |
53 |
getFromRefId(string $refId) |
55 |
getOpenByUsersId(int $users_id, int $limit = 10): array |
64 |
getRecentOpen(int $limit = 20, int $maxAgeSeconds = 3600): array |
73 |
createPending(string $refId, int $users_id, float $amount, array $metadata = [], string $currency = '<string>'): int |
83 |
markChecked(int $id, string $status = '<string>', string $errorText = ''): bool |
102 |
markProcessedById(int $id, string $transactionId): bool |
119 |
markProcessedByRefId(string $refId, string $transactionId): bool |
134 |
Declared classes: Anet_webhook_log.
| Named symbol | Source |
|---|---|
enableInternalSaveBypass(): void |
10 |
getSearchFieldsNames() |
16 |
getTableName() |
21 |
setId($id) |
26 |
setUniq_key($uniq_key) |
30 |
setEvent_type($event_type) |
34 |
setTrans_id($trans_id) |
38 |
setPayload_json($payload_json) |
42 |
setProcessed($processed) |
46 |
setError_text($error_text) |
50 |
setStatus($status) |
54 |
setCreated_php_time($created_php_time) |
58 |
setModified_php_time($modified_php_time) |
62 |
setUsers_id($users_id) |
66 |
getId() |
71 |
getUniq_key() |
75 |
getEvent_type() |
79 |
getTrans_id() |
83 |
getPayload_json() |
87 |
getProcessed() |
91 |
getError_text() |
95 |
getStatus() |
99 |
getCreated_php_time() |
103 |
getModified_php_time() |
107 |
getUsers_id() |
111 |
alreadyProcessed($uniq_key, $transactionId = '') |
116 |
getFromUniqKey($uniq_key) |
138 |
getFromTransactionId($transactionId) |
151 |
getExistingLog($uniq_key, $transactionId = '') |
166 |
createIfNotExists($uniq_key, $event_type, $payload_json, $users_id = 0, $transactionId = '') |
181 |
- 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