Click anywhere to close this dialog

Farewell

Great is the art of beginning, but greater is the art of ending
Henry Wadsworth Longfellow

I announce that I cease all development and activity in the programming universe indefinitely. My career has reached the turning point I was not expecting for at least another year, leaving me highly off guard and without laid-out plans for this hobby's continuity. I have begun a 5-year residency program in Neurosurgery which is clearly not compatible, time-wise, with programming.

I gave in all my passion for developing, and you gave me back your loyalty and trust, even when I did not deserve that much. Now it is the time for payback. I release all my present and past work as Open Source software, in the hope some talented developer will continue maintaining and expanding my vision of a modern, sleek forum software. The intrinsic flexibility of MyBB is the true hidden gem of an otherwise outdated codebase; I do hope the project can continue and be updated complying to the latest coding standards.

I hereby thank Euan, kawaii, andrewjs18, Ben, Matt, Omar G., effone, Eric J., Devilshakerz, Wildcard, JordanMussi and all the other team members I have had the opportunity to work with when I was a MyBB team member. I thank Tomm M, my mentor, who inspired me to pick up coding with his piece-of-art plugins. And finally, I thank all of you MyBBoost subscribers who have helped me getting through my toughest university years economically.

Yours sincerely, Filippo

BankPipe beta 11

14 May 2018 Edited
#1
BankPipe is an advanced and automated payments manager powered by Omnipay. You can create subscriptions with a wide range of custom options or monetize attachments singularly by setting their prices.

Minimum requirements


PHP 7.1
MyBB 1.8.0
PluginLibrary
664 permissions on inc/functions_post.php, attachment.php, global.php and inc/functions_upload.php

To install and configure BankPipe, read BankPipe documentation


Features


Powered by Omnipay


BankPipe's core functionalities are powered by Omnipay, a multi-gateway payments processing library. At present time, BankPipe accepts PayPal and Coinbase, a cryptocurrency exchange which supports BTC, BCH, DAI, USDC, USDT, ETH, SHIB, DOGE, LTC and APE.

Subscriptions


Subscriptions, a popular feature seen in similar plugins, are regularly embedded within BankPipe and come with a wide range of options:
- destination usergroup(s): usergroup(s) which users will be assigned to when purchasing a subscription. You can select multiple usergroups;
- usergroup changing mode: if users' primary or additional usergroups will be changed upon subscribing;
- expiration days: amount of days for the subscription to last. Can be set to infinity;
- expiration usergroup: usergroup to which users will be assigned when the subscription expires;
- allowed usergroups: usergroups allowed to buy each subscription;
- discount: a percentage-based discount relative to each subscription which, if bought, is applied to higher priced subscriptions.

Attachments monetization


One of BankPipe's flagships is its ability to handle single-item purchases by hijacking into MyBB's core attachments system. Each attachment can be monetized individually by simply setting a price. Selected usergroups you can choose are allowed to add their own PayPal address and earn from their own attachments, or contribute to the board's wallet(s) instead. Coinbase currently does not allow users wallets to be loaded.

You can control paid attachments download permissions by usergroup, by forum or both.

When attachments are updated, they inherit the payments' informations. If the name of the attachment differs, MyBB typically uploads a new attachment; in order to update a paid item with a differently-named attachment, check the "Update" radio button while uploading a new attachment: the old one will be deleted and the new one will inherit the old one's paid informations.

WARNING SIGN Attachments monetization requires proper permissions for both users and forums.

Promo codes system


Promo codes (aka discounts) are an exclusive feature of BankPipe. You can set up promo codes with various options, including type (percentage or absolute value), expiry date, permissions to use codes by user, usergroup and/or item, whether the code is "stackable" with other promo codes or not and a usage cap limit per code. Stackable codes can be added alongside other codes, whereas non-stackable codes are meant to be used singularly.

WARNING SIGN Validated codes are temporarily stored in the user's browser as cookies, until the purchase is cleared successfully or codes are removed manually.

Expiry notifications


You can set an unlimited amount of notifications sent either through PM or email to users whom subscriptions are about to expire or are already expired. This functionality uses MyBB's internal tasks system to automatically process expiring subscriptions and deliver notifications. You can also specify multiple BCC recipients to deliver expiry notifications.

Refunds


Refunds can be issued by administrators from BankPipe's Payments history panel. Only payments with a valid sale ID can be refunded. You can choose how much you want to refund per every payment. A refunded item is handled same way as an expired one.

WARNING SIGN Coinbase payments do not hold any sale and cannot be refunded at the moment. A workaround is under evaluation.

Webhooks support


From beta 6 onwards, BankPipe is able to listen actively to responses generated by gateways upon performing any action on their behalf. This is particularly useful for pending payments, which are always occurring with cryptocurrencies and seldom with certain PayPal configurations. Pending payments are handled automatically when approved or rejected.

Manual subscribing


A subscribing tool is available for administrators willing to process payments manually, for example to migrate from another payments management plugin. You can set the subscription's starting and expiring date, alongside the target and expiry usergroup. Users can be selected one by one using an autocomplete field or you can choose one or more usergroups to mass subscribe.

Logging system


BankPipe logs every internal action and displays the logs in a convenient fashion within the Admin Control Panel. Logs are stored separately from the actual payments and can be deleted safely if you desire.

BankPipe also stores a complete log of paid item downloads. This feature lets you filter out those who might benefit from a refund and those who do not, depending on your own internal policy.

Required fields


You can set up required fields to be filled right before a purchase; to do so, add a coma-separated list of field name(s) you want to be filled in the correct BankPipe's setting, then head over your bankpipe_cart* templates and add the field(s)' HTML wherever you want them to appear; they will be sent along the necessary data to purchase items, and they will be validated accordingly.

Let's say you want your users to check they have read a field named "agreement". After you have added it to your settings, the following piece of HTML code suffices:

<label><input type="checkbox" name="agreement" value="1" /> I have read the refund policy</label>
You can add any HTML form input you can imagine. Selects, radios, textboxes and textareas are fine as long as you reference them with the correct "name" attribute.

Got a question/issue?


If you encounter issues configuring providers or setting up BankPipe, feel free to open a support thread here on MyBBoost. Since I study a pretty hard university, I don't have much spare time to dedicate to support questions, but I will always provide the support you need as soon as possible. I usually reply within a day.

Demo


Despite a different UI, BankPipe is running smoothly here on MyBBoost. If you are purchasing BankPipe, you are also experiencing itself.

Previews


[Image: NcKdvca.png]

[Image: hiCNboD.png]

[Image: DLAAF1e.png]

[Image: 3FnnXPb.png]

[Image: JfsvWvE.png]

[Image: ETE3bxJ.png]

[Image: mu3bOZ3.png]

[Image: WwAC6x6.png]

Availability


BankPipe is available for free. WARNING SIGN Support is discontinued due to my departure from programming. Read more why here.


This project is licensed under

MIT


A simple license with little to no use restrictions, except for author's crediting. Read the provided LICENSE file for more informations.

Permissions

Commercial use
Modification
Distribution
Private use
Limitations

Warranty
Liability
Conditions

License notice
Copyright notice
Filename Size Downloads
1.12 MB 336
Shade 21 Jun 2018 Edited
#2

BankPipe beta 2 is out


This is a feature and bugfix release.

BUG Manually added subscribers do not benefit from discounts for higher priced subscriptions, if available. Reported by @kawaii
BUG Missing delete controls for notifications and subscriptions. Reported by @andrewjs18
BUG Prices of existing payments do not hold original value when changing subscription or item price
BUG Warning - [2] 'max(): Array must contain at least one element' when no notifications are set
BUG Minor typos and bugfixes
SQUARED NEW Send notification to certain users, typically admins, when a subscription or item is purchased. Requested by @andrewjs18
SQUARED NEW Sorting functionality to filter payments in the ACP by username or dates
SQUARED NEW Total revenue statistic in payments panel with filtering support

Before updating the package, ensure you have a backup of your existing files and database. To update, download and overwrite the old files with the new ones, open your Admin Control Panel and run the upgrade script when asked. Running the upgrade script is mandatory as some functionalities depend on database changes performed during the update.

The beta testing phase continues. I shall remember that everyone – even those who haven't yet access to BankPipe – can request new functionalities which are evaluated and eventually added in future updates.
tzar and Harry K. like this post
Shade 21 Jul 2018 Edited
#3

BankPipe beta 3 is out


This is a feature and bugfix release.

BUG PHP 7.2 incompatibilities lead to warnings when browsing the ACP module. Reported by @andrewjs18
BUG Minor typos and bugfixes with improved stability
SQUARED NEW Cart mode with multiple attachments support
SQUARED NEW Require custom fields to be filled before purchasing a subscription. Requested by @andrewjs18
SQUARED NEW Coupon system with ability to set an expiry date for discounts and much more with fine-grain tuning. Requested by @Harry K.
SQUARED NEW Paid download logs. Requested by @Harry K.
SQUARED NEW Storing buyer's country in database. Requested by @WallBB

Before updating the package, ensure you have a backup of your existing files and database. To update, download and overwrite the old files with the new ones, open your Admin Control Panel and run the upgrade script when asked. Running the upgrade script is mandatory as some functionalities depend on database changes performed during the update.

This release changes some templates and adds some. A patch file is available below; you can view the differences between beta 2 and beta 3 by using an online tool, or your preferred git manager.

The beta testing phase continues. Please check BankPipe development for updates on planned functionalities and bugfixes and keep on reporting bugs and issues and to request functionalities.
Filename Size Downloads
12.95 KB 4
Shade 23 Jul 2018 Edited
#4

BankPipe beta 4 is out


This is a hotfix release following @Harry K.'s helpful testing.

BUG SQL error when attempting to create a payment due to a table column not being correctly updated in installation routines
BUG SQL error when upgrading due to typo
BUG Subscriptions not created correctly if Destination usergroup is set to "Inherit user's primary group", which has been removed
BUG Code cleanup
SQUARED NEW Discount code titles for better readability to the end user

Before updating the package, ensure you have a backup of your existing files and database. To update, download and overwrite the old files with the new ones, open your Admin Control Panel and run the upgrade script when asked. Running the upgrade script is mandatory as some functionalities depend on database changes performed during the update.

This release changes 1 template. A patch file is available below; you can view the differences between beta 3 and beta 4 by using an online tool, or your preferred git manager.

The beta testing phase continues. Please check BankPipe development for updates on planned functionalities and bugfixes and keep on reporting bugs and issues and to request functionalities.
Filename Size Downloads
431 bytes 3
Shade 20 Mar 2019
#5

PUBLIC ADDRESS LOUDSPEAKER BankPipe beta 6 is out


I am proud to announce that the sixth beta of BankPipe is now available. This version mainly features a code rewrite from the ground up. This release is marked as beta 6 despite beta 5 has never been officially released; the leap is meant to cover the few who have tested beta 5 privately.

FIRE Code rewrite and new gateway processor


A huge effort has been put into refactoring the whole codebase to comply with an OOP structure. This allows for greater maintainability and flexibility towards third party plugins willing to use BankPipe's functionalities. PayPal Express Checkout, which powered all previous betas, has been replaced by Omnipay, a multi-gateway payments processor library. Although PayPal remains the only supported gateway, this change allows for new gateways to be added in future updates, such as Stripe (credit cards) and BitPay (cryptocurrencies).

ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS Webhooks support


Webhooks are now supported, which means BankPipe can automatically process payments marked as pending by PayPal for whatever reason. Once the merchant accepts or declines pending payments, the buyer is automatically granted access to the resource of interest.

BLOSSOM New ACP features


Logs and payment details have been refactored with a more intuitive and informations-rich interface. Logs are grouped by order rather than being sparse, while payments now list the status, date of purchase, fee and other useful informations.

Manually subscribed users are now listed in the payments section and marked as such in every single payment details page. This feature was suggested here: show manually subscribed users in payment history.

MyBB hooks support


Hooks have been added in strategic places throughout the whole codebase to give third party plugins easy access to BankPipe's functionalities. Refer to BankPipe documentation to see the available hooks with their exact names, files, lines and arguments available.

Other notable changes and fixes


SQUARED NEW CC in pms sent
SQUARED NEW buyers are now redirected to a "thank you" page, which you can style by editing bankpipe_purchases_payment template. This feature has been suggested in modularity/features
SQUARED NEW admins can now override the default merchant account on a per-subscription basis. This feature has been suggested in allow more than 1 paypal account
BUG notification PM issues

Critical changes


The following list of critical changes have been applied:
WARNING SIGN minimum requirement is now PHP 7.1
WARNING SIGN logs other than successful and genuine payments are deleted upon upgrading due to changes in the logging system
WARNING SIGN PayPal Pay Now button has now been replaced by a standard, customizable button. It is your responsibility to style it according to PayPal's policy, as they might require a clear reference to their brand

Upgrading to beta 6


The upgrade process is straightforward:
KEYCAP 1 delete /inc/plugins/BankPipe and /bankpipe folders
KEYCAP 2 upload the new version maintaining the same folder structure as in the release package
KEYCAP 3 run the upgrade script when asked in the ACP.

This release changes all templates and adds 1 new. A patch file is available below; you can view the differences between beta 4 and beta 6 by using an online tool, or your preferred git manager.

The beta testing phase continues. Please check BankPipe development for updates on planned functionalities and bugfixes and keep on reporting bugs and issues and requesting functionalities.
Filename Size Downloads
34.85 KB 1
Shade 2 Aug 2019 Edited
#6

PUBLIC ADDRESS LOUDSPEAKER BankPipe beta 7 is out


The seventh beta of BankPipe is now available. This version focuses on cryptocurrencies and multiple gateways support, while fixing all the reported bugs of beta 4 and beta 6.

MONEY BAG Cryptocurrencies support


Cryptocurrencies are now supported through Coinbase Commerce, a well known exchange service. Cryptos supported at the moment of writing this post are Bitcoin, Bitcoin Cash, USD Coin, Ethereum and Litecoin. A comprehensive tutorial on how to set up a Coinbase application and start receiving crypto payments has been added to BankPipe documentation.

This feature has been requested by @Harry K. and @day-day.

Other notable changes and fixes


BUG fixed Plugin fails to install on PostgreSQL. Special thanks to @kawaii for the extensive testing sessions
BUG fixed merging 2 accounts, possible bug in beta 5. Reported by @andrewjs18
BUG fixed a bug which prevented subscriptions editing in the ACP. Reported by @Serpius
BUG fixed popup overlay not disappearing when closing payment window in Firefox. Reported by @andrewjs18
BUG fixed a series of minor bugs which did not affect functionalities, but styling
SQUARED NEW a notification is now sent to the buyer upon payment approval alongside the already available notifications for admins and merchants
SQUARED NEW a notification is now sent to the buyer if the transaction fails for any reason
SQUARED NEW permitted users can now monetize their attachments without having personal wallet(s) set. The board's default wallet(s) will be used instead, contributing as a "collective"
SQUARED NEW all payments are now routed to the cart, which has been made permanent. This ensures consistency and a standardized place where to check out items, no matter the type, and simplifies existing and future third party plugins integrations
SQUARED NEW the popup now alerts the user if he is using a popup blocker which prevents BankPipe to open secure payment channels to the gateways

Critical changes


WARNING SIGN Cart mode has been made permanent and the option does not exist anymore
WARNING SIGN Webhook URL for PayPal has changed. The new syntax is:
- https://YOURBOARDURL/bankpipe.php?action=webhooks&gateway=PayPal
WARNING SIGN The popup general behavior has been made more consistent. For the new popup to work, bankpipe_script template has to be updated accordingly. This is performed automatically if you haven't customized the template; otherwise, ensure you have upgraded the template manually before using BankPipe

Note the &gateway=PayPal addition. Adjust the webhook URL in your PayPal application whilst upgrading.

Upgrading to beta 7


Make a backup of both your files and database before upgrading. The upgrade process is straightforward:
KEYCAP 1 delete /inc/plugins/BankPipe and /bankpipe folders
KEYCAP 2 upload the new version maintaining the same folder structure as in the release package
KEYCAP 3 run the upgrade script when asked in the ACP.

This release changes a lot of templates, removes and adds a few. A patch file is available below; you can view the differences between beta 6 and beta 7 by using an online tool, or your preferred git manager.

The beta testing phase continues. Please check BankPipe development for updates on planned functionalities and bugfixes and keep on reporting bugs and issues and requesting functionalities.
Filename Size Downloads
16.9 KB 1
Shade 22 Nov 2019 Edited
#7

PUBLIC ADDRESS LOUDSPEAKER BankPipe beta 8 is out


The eighth beta of BankPipe is now available. This version focuses on community suggestions, bringing adjustments and extras to existing features, while fixing reported bugs from beta 7.

Notable changes and fixes


SQUARED NEW separate subscriptions page. Requested by @ProX in Some ideas/suggestions
SQUARED NEW username filtering in payment history can now include substrings (eg.: "sh" will match "shade", "shenanigans", "ambushes")
SQUARED NEW add total revenue in Payments logs. Requested by @andrewjs18 in revenue
SQUARED NEW "gift to user" option. Requested by @ProX in Some ideas/suggestions
SQUARED NEW Add to an additional usergroup function. Requested by @day-day
SQUARED NEW Hide a usergroup until user is already in X usergroup?. Requested by @day-day
SQUARED NEW add "Fast checkout" option to add an item to the cart and quickly jump to it. Requested by @ProX in Some ideas/suggestions
SQUARED NEW Limit promo codes usage. Requested by @Fanatica Greats
SQUARED NEW revamped, more professional cart look
BUG ONLY_FULL_GROUP_BY is enabled in newer MySQL versions, breaking certain pages. Reported by @ZIZ in MySQL ONLY_FULL_GROUP_BY option breaks BankPipe
BUG fixed Error when merging 2 user accounts
BUG fixed date format stuck to European format dd/mm/yyyy which would cause troubles for US-style date formats (mm/dd/yyyy). Reported by @Fanatica Greats in Subcriptions Problem
BUG fixed an issue with PayPal's webhooks which logged an error with successful payments due to ID not being matched against the correct database field

Critical changes


WARNING SIGN subscriptions page has been moved from the UCP to a standalone page. The link has changed from usercp.php?action=subscriptions&env=bankpipe to bankpipe.php. Change your links accordingly.
WARNING SIGN in order to use the new Fast checkout option, you must alter your templates accordingly. Detailed instructions have been added to BankPipe documentation, under the Installation chapter, step KEYCAP 2
WARNING SIGN bankpipe_subscriptions* templates have been changed to accomodate the page shift. If you have customized those templates, you have to apply the changes manually. Specifically, you must remove every $this-> reference. For example, $this->mybb becomes $mybb, $this->lang becomes $lang, and so forth.

Upgrading to beta 8


Make a backup of both your files and database before upgrading. The upgrade process is straightforward:
KEYCAP 1 delete /inc/plugins/BankPipe and /bankpipe folders
KEYCAP 2 upload the new version maintaining the same folder structure as in the release package
KEYCAP 3 run the upgrade script when asked in the ACP.

This release changes a lot of templates, removes and adds a few. A patch file is available below; you can view the differences between beta 7 and beta 8 by using an online tool, or your preferred git manager.

The beta testing phase continues. Please check BankPipe development for updates on planned functionalities and bugfixes and keep on reporting bugs and issues and requesting functionalities.
Filename Size Downloads
23.92 KB 3
Shade 13 Dec 2019
#8

PUBLIC ADDRESS LOUDSPEAKER BankPipe beta 9 is out


The ninth beta of BankPipe is now available. This version is a hotfix release following community reports by @day-day, @ProX and @RocketFoot.

Notable changes and fixes


BUG removed dd() function which interfered with some plugins using the same function name. Reported by @ProX in Beta 8 error
BUG fixed permittedgroups field not added to the database with fresh installs. Reported by @ProX in Beta 8 error
BUG fixed a bug where special "p" value would be added to the discounts table by mistake, crashing certain purchases. Reported by @ProX in User paid with paypal, but haven't received an upgrade and @RocketFoot in Payment does not finalize when discount code is used
BUG fixed date format not adapted to the board's default in Discounts ACP panel. Reported by @RocketFoot in Discount Code Expiration Date Not Working
BUG fixed PayPal multiple webhook notifications which triggered multiple awards. Reported by @day-day in Bankpipe awarding every 3-4 hours? and @RocketFoot in Double purchases
BUG removed $this from appropriate templates. This would crash profile pages for admins. Reported by @day-day in Using $this when not in object context
BUG fixed username filtering in Payment history ACP panel.

Upgrading to beta 9


Make a backup of both your files and database before upgrading. The upgrade process is straightforward:
KEYCAP 1 delete /inc/plugins/BankPipe and /bankpipe folders
KEYCAP 2 upload the new version maintaining the same folder structure as in the release package
KEYCAP 3 run the upgrade script when asked in the ACP. The upgrade script for this version does nothing but bumps BankPipe version to beta 9.

This release alters bankpipe_purchases_purchase* templates by removing the $this prefix from language variables. Chances are that you have already applied the required changes. If not, replace $this->lang with $lang and $this->mybb with $mybb in all those templates.

The beta testing phase continues. Please check BankPipe development for updates on planned functionalities and bugfixes and keep on reporting bugs and issues and requesting functionalities.
ProX and Enes Palit like this post
Shade 22 Mar 2020 Edited
#9

PUBLIC ADDRESS LOUDSPEAKER BankPipe beta 10 is out


The tenth beta of BankPipe is now available. This version mainly provides a fix for Coinbase payments always being marked as "pending".

Notable changes and fixes


BUG fixed Coinbase payments which were always marked as pending due to Coinbase sending an undocumented request to BankPipe's complete() page, which was erroneously marking every payment as "pending". Then, the automatic pruning task would remove those after 1 week
BUG fixed fatal error which randomly appeared while watching threads with paid attachments under certain circumstances
SQUARED NEW added 3 new hooks to let developers extend BankPipe even more: one in every gateway's webhook handler, and one in the tasks handler

Upgrading to beta 10


Make a backup of both your files and database before upgrading. The upgrade process is straightforward:
KEYCAP 1 delete /bankpipe folder
KEYCAP 2 upload the new version maintaining the same folder structure as in the release package
KEYCAP 3 run the upgrade script when asked in the ACP. The upgrade script for this version does nothing but bumps BankPipe version to beta 10.

The beta testing phase continues. Please check BankPipe development for updates on planned functionalities and bugfixes and keep on reporting bugs and issues and requesting functionalities.
ProX likes this post
Shade 7 Aug 2020 Edited
#10

PUBLIC ADDRESS LOUDSPEAKER BankPipe beta 11 is out


The eleventh beta of BankPipe is now available. This version is a massive bugfix and feature request release, and stabilizes BankPipe even more towards its first release candidate. Special thanks to @Seeker-Smith, @Kalju, @Fanatica Greats, @sonixmodz, @0x7Dark and @encrypted for their valuable suggestions and reports.

Notable changes and fixes


BUG multiple items in one order are treated as single ones in notifications and logs
BUG Refunds and pending payments included in total revenue. Reported by @Kalju
BUG disallow direct access to webhooks endpoint. Reported by @sonixmodz
BUG Prices over thousands are not allowed. Reported by @Kalju. Prices are now limited up to 9999
BUG PayPal's webhook $data->create_time parameter can return invalid values. Reported by @Kalju in SQL Error after upgrading to MyBB 1.8.23
BUG plugin hooks in the tasks system break notifications. Reported by @Fanatica Greats in Users aren't reverted to member usergroup after subcription expires.
BUG no hard check for buying permissions. Reported by @encrypted in Custom Upgrade Page and links to subscriptions
BUG closed board disrupts webhooks. Reported by @0x7Dark in Coinbase transaction not confirming
SQUARED NEW ability to delete payments in the ACP. Requested by @Kalju
SQUARED NEW show the buyer's email and id in each payment recap. Requested by @Kalju
SQUARED NEW search for a specific transaction ID in the payments page. Requested by @Kalju
SQUARED NEW better management of user upgrades and demotions on code level
SQUARED NEW show Gateway beneath each payment in payments page
SQUARED NEW Add a revenue field for manual subscriptions. Requested by @Seeker-Smith
SQUARED NEW more precise handling of cancelled payments

Upgrading to beta 11


Make a backup of both your files and database before upgrading. The upgrade process is straightforward:
KEYCAP 1 apply minimum permissions 664 to your ./global.php file
KEYCAP 2 delete /bankpipe folder
KEYCAP 3 upload the new version maintaining the same folder structure as in the release package
KEYCAP 4 run the upgrade script when asked in the ACP.

WARNING SIGN bankpipe.js has been updated. If you are using a custom theme, please update your bankpipe_script template which contains the link to bankpipe.js in order to bust user caches upon repeated visits.

The beta testing phase continues. Please check BankPipe development for updates on planned functionalities and bugfixes and keep on reporting bugs and issues and requesting functionalities.
Fanatica Greats likes this post