PremiumExchanger.com – Updates

Script updates: PremiumExchanger actual version 2.2

PremiumExchanger version 2.2:

  • !Updated all merchants and automatic payments.
  • !Updated module system. New modules have appeared.
  • !Updated standard design.
  • Added a new standard design with two color schemes (light and dark) and a third column with an exchange form.
  • The «New modules» filter has been added to the Modules section
  • In the site control panel, the window for entering comments and notes can be moved around the screen.
  • For a pop-up notification window, it is now possible to set the button text.
  • A new type of notification window that can be used to notify about the use of cookies.
  • The ability to leave comments by users in the news.
  • Now you can mark checkboxes in forms by default.
  • For reviews, you can ask who can leave reviews: a registered user or a guest.
  • In the SEO section, you can now specify SEO settings for each exchange direction.
  • A quick search window by order ID has appeared in the Applications section.
  • An email template has appeared that notifies the user about adding his details to the black list on the site.
  • For add. fields in the form of a drop-down list are now set to «Not selected» by default, which forces the user to make a choice.
  • A new module that allows you to massively disable 2FA in the user area of ​​the site.
  • Changes in the work of the GEO IP module: mass activation of countries is possible and a search bar appeared; if the user, for example, has a defined country Estonia, but Estonia is not active, then the user will have the country «Not defined»; added country «Undefined» to blocked countries.
  • In the Bestchange parser, it became possible to bind the rate to the average rate of the range of positions. If you specify a position as 1-3, the system will determine and set in the direction of exchange the average rate of the first three positions.
  • The module «Determining the type of bank card» now has an option to remember already checked cards so that you do not re-access the API of the service for determining cards.
  • It is now possible to hide the «Cancel order» button in the merchant settings.
  • In the notification message templates, it is now possible to transfer created add-ons. fields through a special shortcode.
  • Currency tags can now be set separated by commas and in Russian.
  • Logging of requests has been added to the X19 module.
  • In the file /wp-content/plugins/premiumbox/userdata.php, the «PN_HASH_KEY» parameter has been added, which encrypts the API keys of the merchants’ payment systems and automatic payments for their additional protection.
  • The list of cryptocurrencies for checking the addresses entered by users has expanded.
  • For merchants, it became possible to set daily and monthly limits on the number of applications for receiving funds.
  • There is a new status for requests «Automatic payment error (payment system API)», which occurs when the payment system API is unavailable or issued an error.
  • For the option of recalculating the application, depending on the amount of payment, it is now possible to sеlect the status when this recalculation will be triggered.
  • For the option of recalculating the application, depending on the exchange rate, it became possible to set the time after which the recalculation will start.
  • In the settings of the merchants, it became possible to set what to do with the status of the application if the account number did not match, in case of overpayment / underpayment, or if paid in the wrong currency. It is possible to set the following statuses: New application, Under review, Paid application.
  • New possibilities for the newbie function: in the exchange direction settings you can set the max. exchange amount for I give. In the settings of the exchanger, you can sеlect the method for determining the newbie: if all the user details are new or at least one of the details is new.

PremiumExchanger version 2. 1:

  • !All merchants updated and automatic payouts enabled.
  • !Module system updated. New modules have appeared.
  • !Standard design updated.
  • Standard design has got adaptability.
  • The possibility to leave multiple comments in the website control panel in requests.
  • In some sections of the control panel, the search by parameter name functionality has been added.
  • The dеlete to trash functionality with the ability to restore deleted items from the trash has been added.
  • New user access levels have appeared
  • In the exchange form on the website, the exchange rate is now displayed.
  • The REST API for the affiliate program has appeared.
  • The possibility to set auto payout delay in minutes.
  • You can specify comments for custom coefficients in Parser 2.0.
  • Possibility of preventive removal of the exchange rated collected by Parser 2.0.
  • The possibility to create fields with a drop-down list during identity verification.
  • The opportunity to set a sample text of verification refusal has appeared for identity verification.
  • The possibility to check the details of the partner against the website blacklist and the BestChange blacklist when ordering partner’s remuneration.
  • If the user has created an order as an unregistered user, the order will be displayed in his account after he registers a personal account.
  • The module for determining the card type by the first digits of the card number. There is also a possibility to determine the type and the issuer of the card by the API of third-party services.
  • The possibility to freeze the reserve for the orders with auto payout activated.
  • Now Parser 2.0 writes a parsing log to the control panel. If any source of exchange rates is unavailable for the parser, it is possible to configure a notification about this event.
  • Parser 2.0 how has multi-threaded exchange rates parsing mode.
  • The ability to set a minimum payment amount on order.
  • The possibility of notifying about order recalculation.
  • The order window now has the date of the order recalculation.
  • If the payment on the order is received less or more than required, then the recount is made at the rate at which the order was created.
  • The Qiwi merchant now can specify the order number in the note without brackets. In addition, if the payment is processed by Qiwi, the merchant will change the payment status to «Waiting for a confirmation from the merchant».
  • The Qiwi auto-payout module now can determine the card type for the payment.
  • Support for some HTML text format tags has been added for the Notifications in the header module.
  • For the Block.io auto-payout, a possibility to manually set the network fee for the transaction paid has been added.
  • The possibility to associate the currency reserves and synchronously updаte them.

PremiumExchanger version 2.0:

  • !All merchants updated and automatic payouts enabled.
  • !Module system updated. New modules have appeared.
  • !Standard design updated.
  • Added support of PHP 7.3.
  • New merchants and auto payout modules added: Westwallet.info, Plasmapay.com.
  • Website control panel adaptability has been added for mobile devices.
  • Adding merchants/automatic payouts and creating their copies is now done through the website control panel.
  • Merchants/automatic payouts settings are made via the website control panel, there is no longer the need to specify the settings in index.php files.
  • In the exchange directions, one can set up several merchants/automatic payouts for receiving/making payments. Switching between the modules is performed automatically according to the new settings: the maximum order amount, daily limit, monthly limit.
  • Merchants and automatic payouts logs modules now record all queries to the API and responses.
  • A new status «Pending» for the order has appeared.
  • A possibility appeared to create orders with unverified users for the directions where verification of the identity or the card is required. Such orders are assigned «pending», and to continue to exchange, the user is asked to pass verification.
  • A possibility appeared to request verification of the account, depending on the amount received by the user.
  • Sending notifications to the administrator and the users via Telegram.
  • Authentication in the website control panel using a one-off PIN code to be sent to an e-mail, to Telegram, or in a short message.
  • Logging e-mail notifications.
  • The XML file with the exchange rates now supports the minimum and the maximum exchange amounts for the Receive currency.
  • An independent module has appeared, which can be used to limit the minimum and the maximum exchange rate in a certain direction, and reset the exchange rate to the specified standard exchange rate.
  • Any exchange direction can be disabled (by prohibiting to create orders), but not hidden from the website user. For this purpose, a new status for exchange direction has appeared, «Frozen direction».
  • A possibility to deduct additional fees of the exchange office from the amount given by the user, and add the additional fee of the exchange office to the amount received.
  • A possibility appeared to automatically convert the exchange amount depending on the amount of the payment, i.e., if a user pays more or less than required, the system will recalculate the amount received by a user.
  • A possibility appeared to recalculate the exchange amount upon changes in the exchange rates at the moment of changing the status of each order.
  • A possibility appeared to create a payment system and the currency code at the moment of creating the currency itself.
  • For the currencies, a possibility appeared to set tags (e.g., Banks, Crypto, etc.) that can further be displayed as filters under the exchange direction sеlect table.
  • The new module «BestChange parser», which by itself determines which part of the exchange rate needs to be adjusted, and how to sort the exchange rate. It can specify black and white lists of exchange offices in the setting of the exchange direction itself.
  • Now one can link the stock of one currency/exchange direction to other stock of other currency/exchange direction. One can also perform mathematical operations with currency stocks and exchange rates using the «Parser 2.0» module.
  • The new module «AutoBroker», which is now an additional feature of the «Parser 2.0» module. XML files with exchange rates of the exchange office are added to the «Parser 2.0» module as new exchange rate sources.
  • The settings of the «GEO IP» module now feature the possibility to set the API key, if a paid tariff is used for the IP address determination service.
  • The «Parser 2.0» module now provides a possibility to create custom [coefficients] that can be used for creating the exchange rate formula.
  • In the Currencies accounts module, a new option Copy appeared for the shortcode of the account, which refers to the function of copying the account number. Now the copy function may be deactivated altogether, or a copy icon for each account/word can be added.
  • The administrator now has an opportunity to create partnership payouts for adjusting the partnership balance, if necessary.
  • Notification about changes in the exchange rate in the exchange form.
  • Orders filter for searching for inexact occurrences.
  • A possibility to download the archive of certain customer’s orders via the control panel.
  • The Logout on all devices function in the user profile for each user in the website control panel.
  • New access levels for user roles.
  • One can set targets of Yandex.Metrics for certain buttons on a website. The SEO for settings the exchange directions are also available from a separate SEO section to the ease of providing access for SEO specialists.
  • Disabling semi-automatic directions on schedule (using a hook).
  • New sources of rates added: Garantex.io, Instaforex.com.

PremiumExchanger version 1. 6:

  • !Module system updаte. New modules added.
  • !Standard design updated. Module «Benefits» added to display a list of benefits on the home page.
  • Support for the «Rate Parser (old version)» module discontinued.
  • Script speed optimized.
  • BitcoinSV support added to the Paykassa merchant and autopayment.
  • Support for BSV, BCH, XVG, XEM, and TRX added to Coinpayments autopayment.
  • Proprietary visual editor for the website dashboard added. Extended short codes dashboard added.
  • Support for name codes for Livecoin autopayment added.
  • Payments to bank cards for Yandex.Money autopayment enabled.
  • Unique addresses for XML and TXT files with rates can be set.
  • XML and TXT files with rates with static data can now be created.
  • Website administrator can comment on customer reviews now.
  • Checkbox with the consent with the rules in any form can be displayed on the website now.
  • New services for determining the user’s IP address added: ip-api. com, 2ip.ua, sypexgeo.net.
  • All files created by the script and verification images are now converted to php files and uploaded to the domain_name/wp-content/pn_uploads directory.
  • Several options separated by commas can be set for the “First character” parameter.
  • Amount of the user’s discount for a completed exchange can be taken into account now when calculating the affiliate reward.
  • The created rate can be now copied through Parcer 2.0 by pressing a button.
  • Entered data are remembered in the exchange form by default now.
  • Exchange form for a certain direction can be displayed on the home page now.
  • Validity of Bitcoin address and bank card number can be checked during the request creation.
  • Administrator is now able to resend the message to the user to confirm the email.
  • A personal time limit for automatic page refresh can be set for each request status.
  • New technical status “Uncreated request” added.
  • Hiding personal details feature is now a common setting for all personal details.
  • If automatic user registration is enabled when creating a request without the email confirmation, the system automatically logs in to the personal account after creating the request.
  • New short codes: QR code, copying text, word break (if the word is very long and exceeds the bounds of the block).
  • Exchange rate is fixed in the “Log of request statuses” section at the time of changing the request status.
  • Account number automatically adds to the user personal account, if the user is logged in.
  • Other fields can be massively added to exchange directions, and other currency fields can be added to currencies.
  • Fields in the identity verification form can be hidden depending on the user country.
  • Notification of the identity verification or registration requirement is displayed immediately for the relevant user types in the direction of exchange. The notice for the identity verification depending on the amount appears after the amount of exchange is indicated.
  • Direct link to the account verification, which is displayed after filling out the form, can be displayed under the exchange form as well.
  • Example of the image that the user needs to upload during the identity verification can be shown.
  • Deleting verified accounts can now be forbidden. Adding an account if it has already been added can also be forbidden now.

PremiumExchanger version 1.5:

  • Добавлена поддержка PHP 7.2.
  • Module support terminated «Own CB exchange rate».
  • Fields locking (account number, payment amount, comment) has been added to the Qiwi merchant in the form of payment on Qiwi website.
  • USDT support has been added to the AskBtc merchant and automatic payout.
  • Doge, Ripple, Monero, Ethereum Classic support has been added to the PayKassa.pro merchant and the  automatic payout. Также появилась возможность автоматически получать баланс.
  • Blockchain.com, Coinmarketcap. com parsers have been added.
  • Request removal countdown timer shortcode has been added to the exchange direction settings.
  • A setting has been added, which allows setting the number of days for storing various system logs, and the number of days, after which the requests will be archived.
  • A pop-up ability has been added for the Notifications module.
  • A possibility to show pop-up window when the user clicks the «Exchange» button after filling the exchange form has been added.
  • In the exchange settings, the shortcode that displays the user verification status on the request page has been added.
  • A possibility to display icons of payment systems in the drop-down currency lists (via a hook) has been added to exchange table No. 3.
  • A possibility to set arbitrary option value tofor an XML file with exchange rates has been added.
  • A possibility of simplified sorting of exchange directions in section «Tariffs» (via a hook) has been added.
  • The request information now displays the partnership interest rate, the amount of the partner’s earnings, and the partner’s login.
  • Financial statistics for the «Send» amount has been added for each exchange direction.
  • The amount to be received is now displayed on the page with the «Go to payment» button.
  • In the settings of the XML and TXT files with the exchange rates, the user can now limit the number of decimals, regardless of the currency settings.

PremiumExchanger version 1.4:

  • !All merchants and autopayments updated. Qiwi, Paykassa.pro merchants and autopayments added.
  • !Modules system updated. New modules added.
  • !Standard design updated. Three new color schemes and a set of backgrounds added.
  • There is now the opportunity to add custom modules, merchants, autopayments to the directory of current theme.
  • New exchange rates parsing module able to multiply exchange rates and your own exchange rate format (e. g., 1 to X and X to 1). New exchanges connected: Binance.com, Poloniex.com, Livecoin.net.
  • Binding min. and max. exchange rate to the exchange rate in the BestChange parser. A new filter for exchange directions.
  • New table 4 for selecting an exchange direction for the main page, where the exchange rate is located in a separate column without any conversion. Table 1 remains, but is no longer supported.
  • In Tables 2 and 3 for selecting exchange directions, field amount is hidden with regard to the payment system fee, if the fee is not specified.
  • For currencies, option «Convert to» has been removed.
  • Page template without the sidebar has been added.
  • For internal cron jobs, you can choose the interval for starting each task.
  • The amount in the form of exchange that is contained in the minimum and maximum amount error has become clickable.
  • If the second step of exchange is disabled, the checkbox for accepting the rules of the service is displayed in the first step of exchange.
  • In the user’s personal account, the link for downloading a file with archived exchanges has been moved to tab «Your operations».
  • Exchange rates in the file are recorded with the number of decimals specified in currency settings.
  • The card of the request displays the code of the coupon that was redeemed via the merchant.
  • New short-codes: autopayment delay time, coupon code.
  • Logging internal exchange rates for currency codes.
  • Information about the module that changed the status of the application has been added to request status logging.
  • RLT support.
  • The possibility to set a personal pin code to be requested for authentication in the user’s personal cabinet and site control panel.
  • A possibility to create new user roles.
  • SMS templates (similar to e-mail templates) have been added.
  • The possibility to specify allowed characters for additional fields and additional fields of currencies.
  • The possibility to specify the reason of rejection during account verification.
  • For Coinpayments autopayments, the possibility to charge the fee to the sender of the payment has been added.
  • Support for the destination tag has been added to the Coinpayments merchant and automatic payout module.
  • Icon has been added for copying the exchange amount and transfer address for cryptocurrencies merchants.
  • Support for WML, WMH has been added to the Webmoney merchant.
  • The possibility to accept payment from users to bank cards of Russian banks has been added to Qiwi merchant, however, payment status check will not work.
  • The possibility to pay to bank cards of Russian banks has been added to Qiwi auto-payments.
  • Autopayments delay for unverified users.

PremiumExchanger version 1.3:

  • !All merchants and auto payouts have been updated.
  • !The system of modules has been updated. New modules have appeared.
  • !The standard design has been updated.
  • The Invest module has been updated. Support for Advcash EUR has been added.
  • The UAH support has been added to the merchant and Exmo payout.
  • The B wallet support has been added to the merchant and Perfect Money payout.
  • The logic of the Coinpayments payout has been reworked (the module requires reconfiguration).
  • New module for checking the details from the Bestchange blacklist.
  • New module allowing to specify additional commission of the exchange office depending on the exchange amount.
  • New module allowing to display additional commission of the exchange office in the general table with the exchange directions in the Control Panel.
  • New module allowing to link exchange rates on the site to the rates that are set in a special file.
  • Possibility to disable the second step of exchange (confirmation of the entered data).
  • The Yandex.Money merchant (card) became an independent merchant (requires reconfiguration).
  • Index support has been added to the database.
  • Support for SVG images has been added.
  • The site Control Panel in the console and Topbar display important information about the new changes in the script.
  • Now it is possible to hide the partner’s banner button.
  • The Contact information section is now clickable.
  • Now you can hide filters above the currency selection table.
  • It is now possible to switch the parser on and off massively, to shrink the course sources for easy search.
  • New exchange rates have been added to the parsers.
  • Now you can add comments to the black list.
  • The IP address base for GEO IP has been updated.
  • Now it is possible to transfer commission of payment system to Fromfee and Tofee parameters in the XML file with rates.
  • It is now possible to specify the sequence number of the confirmation from which their confirmation logging will start, as well as the number of confirmations that will be recorded in the log.
  • The rate depending on the exchange amount and on the reserve can now be set as % of the main rate value.
  • It is now possible to display a warning message to the user in the exchange form if the verification is needed.
  • A new type of allowed characters has appeared in the currency settings, which automatically deletes spaces from the account number.
  • In the blacklist settings, you can set the parameters for checking the blacklist.
  • In the exchange direction settings, you can limit the number of exchanges by parameters: to account, from account, e-mail, user login
  • It is possible to hide the payment instruction when working without the merchant if verification via SMS or e-mail is enabled.
  • The Orders section now features the filter by the partner’s ID.
  • New order archiving features: comments for administrator and user are transferred to the archive; the general table with archived orders displays the following info: dates of creation and archiving of orders, Send and Receive currencies. New filters by the dates of creation and archiving of orders, Send and Receive currencies. Optional deletion of text files with order details.
  • The user can upload the archived orders to a file in his/her personal account.
  • Logging changes to the order made through the order editor.
  • The minute support has been added to the exchange amount conversion module. The manual recalculation option using the button has appeared in the Orders section.
  • The name of merchants and payouts is now taken from the folder name of the module.
  • The request IP address has been added to the merchant log.
  • The terms for deleting merchant’s logs, payouts and confirmations are reduced to 2 months.
  • For certain order statuses in the settings of the exchange directions, the setting has appeared allowing you to disable the display of the instruction from the payout module settings.
  • For the payout modules, a hash for the crones and status files has been added.
  • The capabilities of the «Orders is on checking» status are enhanced. Optionally, the status can be set in the following cases: the order was paid from another wallet, the amount of payment is less or more than the required amount, or the order was paid in the wrong currency.
  • Now it is possible to specify for which status the ‘Transfer’ button will be displayed in the Order section Control Panel.
  • In Topbar, an icon appeared to notify of orders with the «Payout failure» status.
  • A new hook that launches the rates updаte immediately after importing the exchange directions.

PremiumExchanger version 1.2:

  • !All merchants and automatic payouts have been updated.
  • !The system of modules has been updated. New modules appeared.
  • !Standard design has been updated.
  • !The Invest module has been updated. Support for the following merchants was added: Nixmoney, Advcash, Paxum.
  • !BestChange parser has been updated: links to the BestChange parser are displayed in a separate table in the control panel; black and white lists of exchanger; the possibility to disable the parser for a particular exchange direction; the possibility to use the mathematical operations of division and multiplication, as well adding, subtracting, multiplication by % and division by % in field «Step»; the possibility to link the standard exchange rate to parsers (Central Bank, stock exchanges, etc. )
  • It is now possible to assign a unique hash to all cron addresses.
  • Verification of wallets on the website through uploading images/scans.
  • Editor of orders.
  • New module «Auto Broker» allows to link the exchange rate on the website to the exchange rate obtained from the XML file of another exchange.
  • New module «Exchange rate dependent on currency reserve» allows to set the exchange rate depending on the currency reserve.
  • New module «Automatic payout log» allows to record errors that occur during automatic payouts.
  • New module «Logging exchange rate changes» allows to track rate changes in exchange directions.
  • New module «Confirmation log» allows to record the time of receipt of confirmations in transactions with cryptocurrencies.
  • New module «Recalculation of exchange amount» allows to recalculate the Receive amount depending on the new exchange rate in a given number of hours.
  • Profit in the modules of financial statistics is now calculated on the basis of the amount of profit indicated in the settings of each exchange direction.
  • Restricted access to the control panel and the user personal account by IP address.
  • Restricted access to the control panel on schedule.
  • It is now possible to hide any fields from the user profile and also to forbid to edit them.
  • E-mail confirmation upon the personal account registration.
  • It is now possible to display a notification above the site header on schedule and link it to the operator status.
  • The IP address database (GEO IP) has been updated.
  • The administrator is now able to create orders in the maintenance mode.
  • E-mail answering machine upon adding a review.
  • It is now possible to limit the size of automatic reserve.
  • It is now possible to specify cities separated by commas in the XML file in the field. In this case, a personal entry in the XML file with rates is automatically created for each city.
  • A new parameterverifying has been added to the XML file with rates, which is automatically added if the direction is available only for verified users.
  • A currency exchange parser from Exmo exchange has been added.
  • It is now possible to sort currencies for the «Currencies» section in the control panel.
  • A filter by currency code has been added to the currency reserve widget.
  • Widgets of the last exchange and recent exchanges have been combined into one with the updаte option without reloading the page.
  • New widgets: check the order status, statistics of exchanges.
  • The ability to enable the page autorefresh has been added for all templates of exchange directions.
  • The ability to display only the available exchange directions in the drop-down list has been added in the exchange form.
  • Time to remove unfinished orders has been reduced to 60 minutes.
  • It is now possible to tie the order hash to the user IP address.
  • Confirmation of action before irreversible deletion of the order.
  • Links to images from the identity verification have been added to the user profile.
  • A new module-status «Automatic payout failure» has been added.
  • It is now possible to display bank card and phone numbers in the 1234 5678 9999 format in the control panel in the «Orders» section.
  • The ability to restrict access to: changing the order status, the order editor, the investment module, and the «Transfer» button has been added to the settings of user roles.
  • Ability to add an e-mail to the blacklist by mask.
  • The ability to download contacts from archived orders has been added to the export of contacts.
  • E-mail verification of the order creation (only in case of payment through a merchant).
  • It is now possible to set the minimum «Send» amount at which the identity verification on the website is required.
  • Hints for the fields of identity verification have been added.
  • The ability to sеlect the order status has been added to the exchange export.
  • It is now possible to reduce the currency reserve by the size of the partner payout.
  • It is now possible to set the amount of the payment system fee for partner payouts.
  • It is now possible to take the user discount in the exchange into account when crediting the partner reward in the profit calculation.
  • It is now possible to adjust the amount of partner reward.
  • The ability to filter users by the discount size, verified/non-verified has been added.
  • A tick of accepting the terms of the user agreement has been added in the feedback and review forms.
  • Search by parameters of archived orders has been added.
  • It is now possible to indicate a reserve currency in the exchange direction settings. A reserve can be specified: from the file, calculate by orders, automatic reserve, from the field.
  • Test mode for SMS sending.
  • Support for UAH, KZT has been added to Advcash merchant.
  • Support for UAH, KZT has been added to the Advcash module for automatic payouts, as well as payout to various payment systems and Advcash cards.
  • The ability of payouts to various payment systems and cryptocurrencies have been added to the Livecoin module of automatic payouts.
  • It is now possible to forbid the output of system errors that merchants and automatic payout modules can display.
  • It is now possible to set the specific values for the following parameters in the settings of each exchange direction: Max. amount for automatic payout per day, Max. amount of automatic payout per order, Delay of automatic payout in hours, Delay for whom.
  • It is now possible to delay automatic payout for unauthorized users.
  • It is now possible to set the maximum number of clicks on the «Transfer» button.
  • It is now possible to set the amount to pay in the settings of automatic payout: amount of exchange + PS fee + exchange fee, amount of exchange + exchange fee, the amount of exchange for reserve, amount of exchange with a discount.
  • It is now possible to display the coupon code in the user personal account in the «Your transactions» section.
  • The automatic payout modules Privat24 and Privat24 Visa, Perfect Money and Perfect Money E-vouchers have been combined into one module.
  • Verification of the payment record by API has been added for Advcash and Nixmoney merchants.
  • Verification of the payment record by API before making automatic payout has been added for Perfect Money, Nixmoney.
  • The config files dostup/index.php has been updated for the merchants Advcash, Nixmoney and automatic payout modules Advcash, Perfect Money.
  • It is now possible to sеlect the order status for automatic removal of unpaid orders.
  • It is now possible to set the maximum number of decimal places for the database. It is also possible to «cut» the required number of decimal places for the user personal account, currency reserves and widgets.
  • New short codes: text background with a custom style, currency reserves, last exchange, time of order removal, order status.
  • New hooks: hide «Mark all orders» tick, time to dеlete unfinished orders, drop-down list of order statuses from version 0. 8, hide the exchange direction on the website, depending on the custom settings of the XML file with rates.

PremiumExchanger version 1.1:

  • !All merchants and automatic payout modules been updated
  • !Set of modules been updated. New modules been enabled.
  • !Website design been updated.
  • !Invest module been updated.
  • !Bugs of version 1.0 have been fixed.
  • The possibility to make payments to third-party payment systems has been added to the Advcash auto payments module.
  • A new auto payment module Perfect Money E-Vouchers has been added.
  • The possibility of restricting access to the merchant’s status file by IP address (where the payment system sends the payment notification to) has been added.
  • An opportunity to make the merchant’s status file unique has been added.
  • A short code of the feedback form without displaying comments has been added.
  • An autoresponder e-mail template has been added for the feedback form.
  • A setting has been added that forbids setting account number in the user profile.
  • After identity verification, the passport number field in the user profile becomes read-only.
  • The database of IP addresses for GEO IP has been updated.
  • The possibility to disable exchange with unspecified countries has been added.
  • A search filter by the account of payment has been added.
  • The possibility has been added to specify the maximum number of decimals to be used for all calculations on the website.

PremiumExchanger version 1.0:

  • !Updated English and Russian translations.
  • !All merchants and automatic payout modules been updated
  • !Set of modules been updated. New modules been enabled. Some website sections and functions transformed into modules.
  • !Website design been updated.
  • !Invest module been updated.
  • WordPress 4.6.1 support added. Control panel font been updated.
  • Mobile version module added.
  • Logging payment system replies module for merchants added.
  • Logging manual reserve adjustments module added.
  • Archiving orders older than 2 months module added.
  • QR-code generation module for Block.io and Blockchain.info merchants added.
  • Up to 12 decimal characters support added.
  • Multilingual logo and favicon added.
  • Payment systems’ shortcode added (see payment instructions).
  • Ability to set technical names for each exchange direction added.
  • The following Skype command support on the primary website design added — skype:XXXXX?add (XXXXX – is your Skype login)
  • Ability to enter verification files w/o downloading images on your PC added.
  • Ability to add and/or edit verification requests using website control panel added.
  • Ability to request entering code from newcomers in Phone No./Account No. Verification module added. Moreover, an ability to limit an amount of re-sended SMS added.
  • Ability to view User’ order list in Users profile added.
  • A setting, which allows checking a payment amount received from client with a downward bias added in «Merchants» section. An awesome option, which allows to set an output section for merchant’ and automatic payout module’ payment instructions, added.
  • A sequence for «Send» button changed in cases when payout amount exceeds a maximum amount of payment allowed for one order. Note that from now on when you click this button automatic payout will be in process.
  • An ability to freeze automatic payout for a set number of hours available for all users. Moreover, such ability is available for all newcomers while making an exchange.
  • A smart filter (multiple-choice ability) for order status added in the «Orders» section. Is this section, you are able to look through your request and notice the code, which is generated by automatic payment modules such as BTC-e, Exmo and Livecoin.
  • In «Orders» section, all requests are to change their status online without a need to refresh a page.
  • An ability to notify operators that your order is in process added.
  • Additional abilities to divide and multiply rates added. This is of great help for rate and Central Bank rate automatic correction.
  • In the section «Appearance» → «Menu» an additional «Header constructor» section is added, which allows showing a page header in multiple languages.
  • An authorization form appearance in a website Control panel changed. The «Parsers» section updated. An ability to modify digits in the left part of a rate added. An output format for some rates used by Wm.exchanger changed.
  • The «Order status» section updated. For now, you can find «E-mail settings» section in «Exchange settings» section («E-mail settings» → «Exchange settings»). Exchange direction template settings are in «Exchange direction templates» section («Exchange directions» → «Exchange direction templates»).

PremiumExchanger version 0.9:

  • !All merchats and autopayment modules have been updated.
  • !Module system has been updated. New modules. Some sections and the functions of the site are converted into modules.
  • !Design refreshing
  • New capcha modules: image choice, mathematical operations (multiplication, addition, subtraction). Captcha module is divided into modules for frontend and backend of the site.
  • Module with possibility to set individual time for removal of an unpaid claim for each exchange direction.
  • Module for changing the current number of the application.
  • Module for simplifying the filling e-mail templates.
  • Module for generation of an individual cron-link to updаte the currency reserve.
  • Module for SMS verification of phone number specified in the fields «From account» or «To account» or «Phone» for any direction of exchange.
  • Module to display the number of received confirmations for administrator and user.
  • Module Invest was updated.
  • Generating of XML and TXT files with courses are transferred into the module. Opportunity to schedule the display of the directions in the file rates, the exchange type (manual, automatic), transfer from the entity, and output the city in the XML file with the course.
  • Pop-up window with error is transferred to a separate module.
  • Opportunity to prohibit the e-mail notification of users about password change by an administrator in the control panel.
  • Individual links for each tusk in cron.
  • Opportunity to disable the output of the field «patronymic» in user’s personal account.
  • Opportunity to forbid the e-mail change in user’s personal account.
  • Parser BYR (BYN) has been changed.
  • Individual tips for fields »From account’ and «To account»
  • Opportunity to disable the display of text materials in the affiliate program.
  • When paying via the merchant more than required, this amount is highlighted in red in the card application.
  • Opportunity to enable page auto updаte for user statuses.
  • Opportunity to set additional commission of the exchanger and in an amount and as a percentage at the same time.
  • Additional fields have an opportunity to set technical name that is used only in the control panel.
  • Email template for administrator when a provision by the user is requested is appeared.
  • Email template for both administrator and user when generating transit ‘ for the payment of the cryptocurrency is appeared.
  • Short code to the id request appeared in e-mail templates for autopayment BTCE codes, Exmo, Livecoin.
  • The ability to restrict automatic exchange without operator involvement depending on the amount of exchange in the application.
  • It is possible to set parameters to «autopayment without confirmation of the operator» and «autopayment if a claim is paid from another wallet» individually for each direction of exchange.
  • Merchant and autopayment module BTCE have support for 6 decimal places.
  • Merchant Block.io changes the status to «waiting for confirmation from the merchant» after you create a transaction with zero amount of evidence.
  • Each autopayment module Block.io can have specified priority of payment.
  • Webmoney autopayment module has support of WenPro (Light) keeper.
  • If the autopayment module Privat shows an error in the payment, the order status is set to «Incorrect application».
  • Opportunity to set your own text on the main page after the deactivation of an exchange plugin.
  • Control panel displays the number of days before the license expiration in the section «the Console» and in the footer of the control panel.
  • Opportunity to hide the exchange rate on the home page for mode «Table 1» with the insertion of the hook.
  • Opportunity to freeze the required amount in case of automatic loading of provisions for the API.
  • A special mode of maintenance for the administrator in which the administrator has no limited access to the user part of the site.
  • All user settings from file premiumbox.php were moved to file userdata.php.
  • Opportunity to turn off the counting of requests amount in the «Request» section in control panel.
  • The link for curscron updаte has changed: domain_name/request-curscron.html. The old variant of the link is also supported in current version.
  • The link for XML map of the site has changed: domain_name/request-sitemap.xml. The old variant of the link is also supported in current version.
  • The function of memorization the security password can be disabled.
  • New contact data can be display in header: telegram, viber, whatsup, jabber.

PremiumExchanger version 0.8:

  • !All merchats and autopayment modules have been updated. New autopayment module Payeer.
  • !Module system has been updated. New modules. Some sections and the functions of the site are converted into modules.
  • !Design refreshing
  • !A new method of exchange calculator work has been introduced. Now it is easier to work with users.
  • The database uses InnoDB data storage system now.
  • Jquery has been updated to the latest version.
  • The button to syncronize the reserve currency.
  • Improved exchange directions sorting. Added a separate sorting areas for the exchange rates section.
  • An opportunity to ask the maximum amount of autopayment per day for each module.
  • An opportunity to specify the maximum number of applications that a user can create with a single IP address.
  • An opportunity to set the timing of cookies in the Affiliate Program settings.
  • The autopayment module Blockio has a new function to set the priority of payment transfer network.
  • Ability to hide currency reserves from the home page.
  • The module log application status has been added the display of seconds to the time change of status of the application and information about the person changed the application status (the system or user/admin).
  • Now one can not add more decimal places in the exchange rate than specified in setting currency.
  • When the non standard commission is on, you can transfer the amount and/or percentage.
  • A new section where you can specify detailer the site maintenance.
  • A special way of tech support with automatic installing while activating or deactivating the exchange plugin.
  • The payment instructions of the short code has appeared for the amount transferred.

PremiumExchanger version 0.7:

  • !Обновлены все мерчанты. Упрощена возможность создания копий/дублей мерчантов.
  • !Обновлены все модули автовыплат. Упрощена возможность создания копий/дублей модулей автовыплат.
  • !Обновлена система модулей. Появились новые модули. Некоторые разделы сайта преобразованы в модули.
  • Новый модуль логирования изменения статусов заявок.
  • Добавлен внутренний счет (баланс) в личный кабинет пользователя с возможность совершать обмены с его участием. Добавлены мерчант и модуль автовыплат для внутреннего счета.
  • Для режима автоматической выплаты с подтверждение оператора, появилась возможность задать пароль безопасности, который необходимо ввести, чтобы совершить выплату по заявке.
  • Появилась возможность (отдельный модуль) устанавливать несколько уровней курса в зависимости от отдаваемой суммы обмена.
  • Добавлены два новых статуса: «Ожидание подтверждение от мерчанта», «Ожидание подтверждения от модуля автовыплаты». Применяется автоматически для мерчанта Приват24, Okpay и модуля автовыплат Приват24.
  • Месячный лимит покупки/продажи для валюты.
  • Парсер курсов для НБУ заменен на парсер курсов ПриватБанка с возможностью выбора курса покупки или продажи.
  • Добавлен новый биржевой источник курсов валют с сервиса, который предоставляет поисковая система Yahoo, по направлениям: USD-RUB, USD-EUR, USD-UAH, EUR-USD, EUR-RUB, EUR-UAH ,RUB-USD, RUB-EUR, RUB-UAH, UAH-USD, UAH-EUR, UAH-RUB.
  • В разделе «Заявки» для каждой заявки выводится ID мерчанта или номер кошелька на который была совершена оплата клиентом и с которого была совершена автовыплата обменником. Также выводится ID транзакции, если такая информация предоставляется платежной системой.
  • Добавлена настройка, которая позволяет отключать конвертацию (приведение) курса в разделе «Тарифы» на сайте.
  • Режим технического обслуживания теперь можно привязать к статусу работы оператора. Также в раздел «Консоль» был добавлен блок для быстрого переключения обменника в режим технического обслуживания.
  • Обновлены и добавлены стили в раздел «Заявки» (необходимо активировать соответствующий модуль).
  • Из XML файла с курсами убирается параметр manual, если направления работает в автоматическом режиме.
  • В ajax-чекер добавлена настройка для периодичности срабатывания проверки. Это поможет оптимизировать нагрузку на сервер.
  • Любое направление обмена можно скрыть из файлов с курсами.
  • Для каждого статуса заявки можно задавать нестандартный заголовок для сайта и комментарий к статусу.
  • Возможность задать фиксированную сумму выплаты по партнерской программе для каждого направления обмена.
  • Теперь можно закреплять приглашенного пользователя за партнером по куке (cookies) — это позволяет сделать партнерскую программу более справедливой по отношению к партнерам.
  • Можно ограничить минимальную и максимальную сумму отчислений по партнерской программе.
  • Возможность задать заголовок для описания обмена на странице под формой создания заявки.
  • Возможность разделять пробелом тысячи и сотни тысяч в курсе и резерве.
  • В блоке «Новости» на главной страницы теперь выводится кликабельный заголовок новости.
  • Появился новый виджет «Последние обмены» для боковой колонки, в котором можно задать количество последних обменов, которые будут выводиться и общее количество обменов.
  • Блок «Последний обмен» теперь можно отключать с главной страницы.
  • Над формой верификации личности можно вывести поясняющий текст.
  • Для блока «Резервы валют» на главной странице и виджета «Резервы валют» для боковой колонки добавлена возможность сортировки резервов.
  • Появилась возможность задать две комиссии платежной системы: для верифицированного и не верифицированного кошельков.
  • SMS информирование администратора о совершенной автовыплате.
  • Обновлена база данных IP адресов для разделе GEO IP.
  • Над шапкой сайта можно вывести предупреждение на красном фоне.

PremiumExchanger version 0.6:

  • Обновлены все мерчанты и модули автовыплат.
  • Добавлен новый мерчант и модуль автовыплат Block.io.
  • Добавлены горячие клавиши изменения статуса заявки.
  • Изменен внешний вид карточки заявки в разделе Заявки.
  • В виджетах новостей выводится заголовок новости вместо части текста самой новости.
  • В виджетах отзывов добавлено время публикации отзыва.
  • В примечание платежа добавлен шорт код для номера паспорта.
  • Добавлен дизайн для страниц мерчантов.
  • Хук для изменения положения статусов заявок в разделе Заявки (сортировка статусов).
  • В разделе Live заявки синхронизируются статусы заявок в режиме реального времени.
  • В разделе Live заявки появилась возможность скрыть заявку при переходе к ней.
  • Исправлены мелкие ошибки версии 0. 5.

PremiumExchanger version 0.5:

  • Добавлены модули автовыплаты для платежных систем Perfect Money, Okpay, Livecoin code.
  • Добавлен новый мерчант Livecoin code.
  • В мерчантах Perfect Money и Liqpay появилась проверка платежей по истории.
  • Обновлен стандартный дизайн.
  • Добавлена возможность получения значения резерва на кошельках для которых настроена авто выплата.
  • Появился AJAX-чекер для будущий новых функций.
  • В GEO IP появилась возможность удалить информацию о добавленной стране.
  • Статус работы сервиса получил новые режимы изменения статуса: автоматический, по расписанию.
  • В виджете «Последний обмеа» появилось время последнего обмена.
  • Появилась возможность для «Запрещенных стран» в направлениях обмена выделить все значения сразу.
  • Исправлены мелкие ошибки версии 0.4.

PremiumExchanger version 0.4:

  • Добавлена возможность автоматической выплаты по заявкам (с подтверждением оператора или без участия оператора) для платежной системы Webmoney (ХХХ -> Webmoney).
  • Из разделе Заявки можно перейти к редактированию направления обмена.
  • Виджет со статусом работы сервиса стал кликабельным.
  • В роли пользователей добавлены опции для доступа к темам, настройкам тем и плагинам.
  • В режиме технического обслуживания автоматически отключаются файлы с курсами для мониторингов.
  • Тестовая отправка письма через SMTP.
  • Исправлена мелкие ошибки версии 0.3.

PremiumExchanger version 0.3:

  • Добавлены пасеры биржи wm.exchanger.
  • Доработано API для виджетов.
  • Добавлено API автоматических выплат для обменов.
  • Исправлена мелкие ошибки версии 0.2.

PremiumExchanger version 0.2:

  • Добавлены новые типы разрешенных символов при создании валюты: «Email», «Любые символы».
  • В разделе Валюты в общую таблицу добавлены поля «Дневной лимит для Отдаю», «Дневной лимит для Получаю».
  • В разделе Настройки темы появилась возможность задать имя домена в текстовом виде.
  • На главной странице панели управления добавлено уведомления об отключенной авторизации по одноразовой ссылке.
  • Добавлен специальный режим для технического обслуживания без блокировки направлений обмена.
  • Возможность задать персональный логотип для каждой валюты.

PremiumExchanger version 0.1:

  • Появилась первая версия скрипта.

Как я сделал и открыл свой онлайн электронный обменник валюты криптовалюты и биткоина

В период криптовалютного бума, где-то сентябрь 2017 — февраль 2018 года , когда пытались майнить даже на микроволновках, о крипте до тошноты в ушах кричали со всех углов, когда с пустого места, прямо на глазах, начала появляться армия криптоэкспертов, лихое время было)
Предложил один знакомый создать собственный онлайн обменник, это как казалось по математике, довольно неплохой бизнес, не без своих камней, но все же, не пыльное дело.

Как создать свой собственный онлайн обменник

Почему я решил сделать свой онлайн обменник

Популярность обмена крипиты и фиата в любом направлении пользовалось сверх спросом в тот момент времени. Тогда мы плотно занимались обменом крипты, у нас было свое безопасное место в центре города (больше похожее на уютный бункер, железные двери, маленькие окна с решетками, несколько камер в каждом помещении, системы доступа на дверях, тревожная кнопка), по сарафану появлялось все больше и больше клиентов, увеличилось количество небольших сделок и настал момент, когда обмены на небольшие суммы стал отнимать много полезного времени. Кто переводил крипту в тот период помнит, что перевод монет с одного кошелька на другой мог занимать даже сутки и более, а это стрессы для обоих сторон. Для того что бы автоматизировать процесс работы с небольшими суммами онлайн обменник стал идеальным решением.

Разузнав у всех знакомых что да как в этой теме, понял что особо сложного ничего нет, для понимания разделим всю инфу на несколько направлений

  • Техническая часть обменного пункта — скрипт, безопасность, анонимность, автоматизация, дизайн, скорость обменных операций, защита от фрода, спама, стилла и, DDoS защита и тд
  • Платежные системы, финансовая часть и юридическое сопровождение обменного пункта — карты, счета, дропы, кошельки, биржи, хранение резерва, математика резрва, управление остатками и тд. 
  • Маркетинг обменного пункта — постоянный трафик, клиентская поддержка, репутация и тд

Качественная проработка этих пунктов на мой взгляд помогла организовать качественный онлайн обменный пункт, для себя я понял, что хочется сделать обменный пункт который не стыдно было бы рекомендовать друзьям и знакомым, нацеленный на долгосрочную работу.

Техническая часть организации онлайн обменного пункта

Изучив мат часть по все тематике — теорию, топовые обменники и опыт коллег увидел что не все так просто и банально в этой теме.
Проанализировав потенциальных конкурентов и свой опыт пользования обменниками, я понял что обменником пользуюсь для

  1. Обмена валюты (покупка/продажа/перевод) — у меня есть одна валюта, хочу получить другую. Банально, но да, это основная задача обменника)
  2. Отмыть полученные деньги — актуальное если деньги пришли за грязные делишки, не важно какие, но суть в том,  владельцу необходимо запутать цепочку их получения на его личный кошелек (как и зачем это делается, сколько раз, кругов все это не в этой статье)
  3. Пополнение электронных платежных систем — есть платежные системы, которые фиатными (традиционными деньгами — рубли, доллары и тд) не так просто пополнить, и для этого используются обменные пункты.

Но суть всех этих пунктов одна, обменник должен хорошо делать одно — должен надежно обменивать одну валюту на другую, все.

По личному опыту использования онлайн обменников сразу искал решения с

  • Партнерской/реферальной программой (нужно хоть как-то мотивировать знакомх пользоваться моим сервисом)
  • Наличие личного кабинета, который автоматически создается при первом обмене (что бы новые пользователи сразу оставляли свои контактные данные для дальнейшей маркетинговой работы)
  • Наличие в скрипте отдельной странички для каждого направления обмена (где-то читал что крутая тема для seo омбенного пункта, можно нечаянно даже попасть в выдаче поисковиков такими страничками)
  • Наличие в скрипте блога, скрипт должен быть seo френдли (надо же и контентом заниматься и продвижением)
  • Парсинг курсов с мониторингов обменников, управляемый парсинг (что бы актуальные курсы автоматически ставились в обменнике, руками медленно и можно наделать кучу ошибок, управляемый парсинг, возможность держать свои курсы на определенный позициях в мониторингах)
  • Удобный, логичный интерфейс, хороший дизайн (что бы при первом посещении обменника клиент видел красиво и надежно,а не колхозно и подозрительно)
  • Надежность и правильность скрипта (как оказалось не все скрипты технически и физически могут попасть в мониторинги, некоторые из скриптов мониторинги просто не хотят размещать, мол скрипт не надежный и легколомаемый, делается это в целя безопасности посетителей  мониторингов)
  • Легко ставилась защита от DDoS атак (некоторыми скриптами есть сложности)
  • Ограничение прав доступа для сотрудников (планировалось взять человека, оператора, который бы обслуживал 24/7 обменные операции)
  • Простота управления админкой обменного пункта (что бы без специфичных знаний можно было быстро менять различные параметры сайта)
  • Простота управление емэйл базой (что бы можно было запускать ретаргет и делать простые емэйл рассылки — оповещения, регистрацию, подтверждение)
  • Доступ к коду скрипта (возможность самостоятельно дорабатывать, улучшать, автоматизировать рабочий процесс обменника)
  • Простота внедрения шлюзов валют (что бы без проблем можно было осуществлять прием платежей с электронных платежных систем)
  • Возможность интеграции с мониторингами обменных пунктов (без этого вообще смысла нет работать)

Определившись что мне нужно я начал искать как все это сделать, кажется все просто, но на рынке много ненужного хлама, а то что нужно найти так просто не получилось.

Свой онлайн обменник, как его сделать?

После функций обменника встал вопрос поиска скрипта. Промониторив ситуацию я нашел несколько вариантов:

  1. Скачать с форумов и магазинов. Углубляясь в в эту тему, я нашел сотни продавцов, которые продавали обменники, цена вопроса от 10$ и до бесконечности, отличались они немного различными версиями, производителями, жадность продавца. Меня во всем это смущало одно — бекдоры. Боюсь их как черт ладана. Дословно переводится — черная дверь, продавец мог дописать к скрипту вредоносный код, который тем или-иным способом мог слить все деньги с обменника. В среде владельцев обменников есть пару баек на эту тему, мол определенно число определенной валюты(такое число, которое случайно не пропишешь), и весь резерв обменного пункта направляется на кошельки мошенника.

    Минусы: так же это забагованность, такие скрипты могут работать, но в скорость, ошибки в них частое явление (а вопрос как вы понимаете касается работы с деньгами, и не хочется нервировать не клиентов не себя лишними ошибками). Так же из минусов так же безопасность таких скриптов, продавецы могут и не догадываться, но уже все популярные в продажах на форумах скрипты тысячи раз ломали, делов в том что они не обновляются и соответственно устаревают по всем параметрам.

    Плюсы — Цена от 10$ и до бесконечности, скорость запуска купил, распаковал и он работает

  2. Создать свой код с нуля. Индивидуальный код.Решение неплохое, даже я бы сказал идеальное по всем параметрам, пообщавшись со всеми в свое городе кто может такое, потом сходил с этим вопросом в интернет), узнал следующие моменты — супер гибкая система, уникальный интерфейс, уникальный код, гарантии на создание, гарантия на техническую работу, уверенность в защите, юридические обязательства компании и тд но есть  и обратная сторона, это скорость создания и цена. А каждый день когда обменник не работает, мы теряем деньги

    Плюсы: Надежность и юридические гарантии создателей, техническая поддержка, уникальный и неповторимый, свой родной)

    Минусы: Не дешево, нашел предложения от 6к дол и выше, одни даже за 100к дол предлагали, сроки реализации от 6 мес, не факт что по прошествии этого времени все будет готово.

  3. Купить рабочий обменный пункт.Во время поисков встречал предложения по покупке рабочих обменных пунктов, которые были даже размещенный в каталогах обменных пунктов (BestChange, Kurs.Expert  и тд, о них будет ниже). Предложения неплохие, бизнес под ключ, купи ии работай, но что-то смущало, все же работа с деньгами, надо быть уверенным на 110%

    Плюсы: Сразу работает — быстрый запуск, возможная техническая поддержка, присутствие в мониторингах онлайн валют, наработанная база клиентов

    Минусы: Анонимность продавцов, до продажи они обещают горы, не факт что выполнят обещания после передачи денег, возможность наличия бекдоров, неадекватность цены от 11к долларов, репутация продаваемых не всегда была кристально чиста, наработанная база клиентов у некоторых это были случайные обмены,а не постоянные пользователи и тд.

  4. Готовый скрипт от студии, с юридической гарантиейНашел пару студий, которые продают готовые скрипты. Они профессионально занимаются создание обменных пунктов, есть выбор по вариантам конфигураций и обязательства перед покупателем, само собой отзывы, плюс показали реально работающие обменники сделанные ими, как оказалось в некоторых сам менял.

    Минусы: не совсем дешево от 5к дол (аренду не рассматривали)

    Плюсы: Юридические гарантии и обязательства, реальные примеры работ, постоянная техническая поддержка, скорость запуска

В общем был выбран 4 пункт, как наиболее адекватны, рисковать деньгами своих оффлайн клиентов не хотел бы, и искал максимально надежное решение.

Пример скрипта для обменника

С скриптом определились, дальше домен и хостинг. Домен и хостинг было принято решение купить за пределами СНГ, так, на всякий случай).

Защита хостинга и кода обменного пункта

Так же сразу же была проведена работа над DDoS защитой, были случаи когда в планируемые пики посещаемости обменных пунктов сайты были атакованы продолжительными атаками, более суток на сайт невозможно было зайти.

По советам знакомых и друзей порекомендовали умельца, который под ключ настроил защиту, от почти любого уровня атак, так же он помог с дополнительной защитой хостинга от разных стиллеров, немного доработал скрипт по увеличив общую безопасность обмена. Помог организовать максимальную анонимость работы пункта, сделали инструкции для операторов по так называемой цифровой гигиене. Если вам нужен будет такой человек, оставлю на ссылки на него координаты. Не раз пользовался его услугами в других проектах.

Вы не поверите, но при желании мошенники и проходимцы могут навредить работе почти любого онлайн ресурса — от ддос атак, до полного завладение вашими кошельками, все зависит от желания и потенциальным сумм. Я хотел максимально себя обезопасить от этого, т.к. соотношение потенциальных потерь не на шутку пугало.

Дизайн обменного пункта был выбран выбран с помощью фокус-группы, пару дрезей и знакомых разных возрастов спросил что им больше нравится и внушает большее доверие, так и решили, сильно не углублялись в это.

Платежные системы и юридическая часть в организации онлайн обменного пункта

Поиски в интернете по части юридической организации обменного дела, внятных ответов найти было сложно, ребята которые держат свои обменники не охотно делились ответом на этот вопрос, как я понял? тут кто на что гаразд — от около обнальных схем до дроповодства. Частыми ответами были:

  1. Покупка японской лицензии, которая стоит 100к$, что на мой взгляд не совсем мне подходит.
  2. Осуществлять работу как ИП, оформлять поступление средств и тд
  3. Оформление договоров займа (это больше подходит для оффлайн операций)
  4. Работать как все, строго соблюдая лимиты, в зависимости от платежной системы.

В работу был принят последний вариант, методом проб и ошибок был выявлен лимит операций по каждому банку, платежной системе, работа по этому направлению идет до сих пор, выдать ее результаты не хочу, т.к. это уже коммерческая тайна)

Сразу было приятно решение — в начале работы с безналом от юридических лиц не работать, просто на всякий случай) 

Как я выбирал валюты, банки, платежные системы для обменного пункта

Правильный выбор валют для обмена это хлеб обменного пункта, вроде кажется  чем больше валюты, тем лучше, но по сути чаще всего обменные операции осуществляется на 10 полярных валют, да, по ним будут проценты маржи меньше чем на непопулярных валютах, но за счет количества операций это нивелировалось.

Для выбора нужных и популярных валют было сделано очень простое действие — открыл вкладку популярные направления обменов на мониторинге БестЧендж и там выбрал те валюты, которые чаще всего используются

Как выбрать валюты для обменного пункта

Как вы понимаете все валюты и варианты обмена с мониторинга брать смысла нет, их только на сайте больше 180 штук, я выбрал 15 валют и платежных систем, который на мой взгляд пользуются спросом (это и крипта и электронные платежные системы и банковские карты). Остальные 180+ даже для количества не брал, они больше бы запутали клиентов и операторов, а пользы ноль.

Как подключали электронные платежные системы в онлайн обменник

Из-за того что мы сразу понимали какой скрипт обменного пункта нужен, выбранный нами разу имел все эти настройки, это закрыло уже в самом начале кучу вопросов, но все же каждую валюту надо было вносить вручную, после того как внесли каждую отдельную валюту, руками настраивается каждое направление обмена. Все это было с инструкциями к скрипту, что сильно облегчило работу.

*Направление обмена — обмен одной валюты на другую в одном направлении,(Киви на BTC — это одно направление обмена, BTC — Киви — это уже совсем другое направление)

Грубо, если мы выбрали 15 валют, то направлений обмена 225 (15 умножаем на 15, это конечно же неправильно, но прикидка грубая, чисто для понимания) и каждое направление обмена настраивается в начале руками:

  • прописывается ваша маржа, 
  • комиссия рефералам и партнерам, 
  • если есть скидка для  рефералов и партнеров,
  • в некоторых случаях даже комиссия платежных систем. 

Все это заполнение дело кропотливое и надо делать с пониманием, ведь ошибка хотя бы на 1-2 рубля может привести к значительным потерям, а замечаются такие ошибки когда уже поздно. Будьте внимательными при заполнении.

У нас заполнение и настройка эта заняла чуть меньше месяца кропотливой работы, все перепроверяли и сверяли по несколько раз.

Актуальность и обновление текущего обменного курса в обменнике

Что касается актуальности обменных курсов, то это из-за удобности скрипта сделалось очень быстро и просто — заполняя все направления, мы сразу же прописывали рандомный курс обмена.
Как только мы закончили с заполнением — запускается парсинг актуального текущего курса с БестЧейнджа. Настроив постоянное обновление и нужные нам позиции в мониторинге, мы получали актуальные обменные курсы раз в 3 минуты, тем самым, руками мы этот курс не двигали, все происходило 24/7 автоматически (руками мы тоже могли ставить курсы, т.к. иногда эта функция была нужна, допустим когда в резерве оставалось мало какой-либо из валют или стихийные колебания  крипты)

Платежные системы и прим средств онлайн обменным пунктом

Как вставить в обменный пункт номера карт банков и крипто кошельки — все было в инструкции к обменному пункту, инструкция сильно облегчила этот вопрос, что бы вы понимали там даже есть автоматическая настройка лимитов в день, лимитов на кол-во операций, таймер и переключение на следующий кошелек по достижению лимитов, удобно)

Так же инструкция помогла автоматизировать обменные операции, ведь большинство операций получается до 200$, если все их на 100% делать вручную, то оператор точно ошибется в запаре, для этого мы максимально попытались автоматизировать все возможные платежные движения, оператор лишь проверяет и контролирует. Как конкретно все организованно это тоже, у каждого свой рецепт.

По каждой платежной системе для операторов была прописана инструкция, были сделаны все возможные защиты и аутентификации, что бы только с этого компьютера и только с этого телефона можно было давать добро на перевод, пароли на все менялись раз в два дня автоматически.

Крипту хранили часть на бирже, большую часть на холодном кошельке, тоже были включены все возможные настройки и доработки по защите и безопасности.

*Направление обмена — обмен одной валюты на другую в одном направлении,(Киви на BTC — это одно направление обмена, BTC — Киви — это уже совсем другое направление)

Математику и маржинальность каждой операции и направления обмена вручную можно регулировать в админке обменного пункта, что очень удобно, это помогало держать среднюю маржу с каждой операции, понятно что для популярных направлений маржа ниже. Парсинг был сделан таким образом, что даже с учетом нашей наценки мы могли попадать в нужные нам строчки на мониторингах.

Управление остатками и резервами онлайн обменного пункта на конец рабочей смены или периода

Учет всех денег, регистрация операций это основа любого скрипта, мы могли в любой необходимый момент выгрузить обороты зарегистрированные в операциях обменника по любой валюте, за любой период. В отчете показывался оборот (приход/расход по каждой операции), и наша прибыль по каждой операции в моменте. Для сравнения поступлений делали выгрузку из отчетов платежной системы и сравнивали отчеты с обменника и с платежной системы.
У нас это делали операторы, схема такая —  два человека, друг с другом не знакомы, работали 2/2, у каждого был свой личный аккаунт, с ограниченным доступом, один проверял работу другого, если находил косяк то получал бонус.
Раз в неделю дели общую инвентаризацию и все отчеты проверял назовем так, бухгалтер по сверке).

Скрин из админки обменного пункта, учет обменных операций

Резервы обменного пункта

С этим было всегда стихийно, все резервы доступные для пользования вбивали в скрипт, это помогало и нам видеть текущую ситуацию, и формировать достоверные отчеты.
Начинали мы с резерва в 10к$ на все фиатные деньги и с 3-х монет битка.

Если мы видели что резерв какой-то валюты заканчивается, мы просто покупали его у других обменных пунктов , это не всегда получалось, не со всеми получалось завести такие отношения, из 100% этих обменников мы были знакомы с владельцами лично. Конечно же  в моменты колебания крипты, некоторые валюты в принципе были в дефиците и они либо стоили дорого, либо не продавались вообще, но такое бывало крайне редко, скорее почти не бывало.
С резервами в принципе никакой магии нет, больших держать смысла нет, они просто будут не нужны в таком количестве, нет такой зависимости, больше резерв — больше маржа. Все зависит от количество обменных операций в день, у нас получилось следующее — для комфортной работы пункта, т.е. без резких поисков резервов, невыгодных покупок денег, нам нужно около 30к$ общего денежного объема, и около 3-4 монет  битка в эквиваленте.

Маркетинг и продвижение онлайн обменного пункта

Для вас не будет секретом, что онлайн обменник, это не совсем скажем так обычный сайт, блог или интернет магазин, т. е. есть своя специфика продвижения, плюс конкуренция бешеная, но если есть конкуренция, значит и есть спрос.
Маркетинг можно было бы разделить на два пункта столпа со своми подпунктами

  • продукт (т.е. само качество обслуживания)
  • генерация трафика (увеличение кол-ва посетителей сайта)

Продукт онлайн обменного пункта

  • Обучение персоналаВ качестве обслуживания первое что сделали это было написание и обучение инструкций для операторов, инструкции были написаны для каждой платежной системы, как пользоваться, что делать если и тд. это помогло ребятам сразу вникнуть в суть работы каждого этапа сделки, чем увеличилось качество и скорость работы, снизилось количество косяков и геморроя.
  • Оповещение клиента о этапах сделки по всем возможным каналамБыл настроент сбор телефонов, эмэйлов клиентов
    Клиент меняя деньги сильно переживает из-за того что отправил свои кровные непонятно кому в интернете, для снижения этого стресса клиент оповещается в ватсапе и на емэйл о каждом этапе (получение средств, обмен, перевод и тд)
  • Адекватная реферальная системаКлиент должен легко понимать суть и мотивацию для себя
  • Генерация отзывов на сайте
    Социальное подтверждение качества вашей работы, генерация — понимайте под этим какое вам угодно значение, но отзывы это очень важно, особенно если они постоянно появляются, клиентам нравится когда постоянно есть свежие отзывы, это говорит что обменник не заброшен, соответственно можно ему доверять.

Генерация трафика в онлайн обменный пункт

без паники, дописывается, надо актуализировать информацию

Nulled — Premium Exchanger Nulled — Exchangebox

Скрипт автоматического обменного пункта Premium Exchanger

Режимы работы скрипта обменника валют

  • Автоматический обмен без участия оператора или с подтверждением оператора. Отключаемый режим.
  • Полуавтоматический обмен с участием оператора. Процедура обмена (графическая схема): заявка на обмен → онлайн оплата через сайт платежной системы с помощью мерчанта оплаты → проверка оплаты оператором (админом) обменника → ручной перевод клиенту;
  • Ручной обмен с участием оператора. Процедура обмена: заявка на обмен → ручной перевод средства клиентом на указанные реквизиты → проверка оплаты оператором (админом) обменника → ручной перевод клиенту;

Веб-сайт………….: Скрипт обменника электронных валют — купить и скачать скрипт обменного пункта
Стоимость. ……….: $4990
Кряк……………….: Пролечен!
Благодарность….: @brainless
Примечание……..: Хотите полную поддержку? Покупайте у авторов.
Спойлер: Скачать

Скрытый контент. Для просмотра Вы должны быть зарегистрированным участником.

Нажмите, чтобы раскрыть…

[ ExchangeBox Nulled ]

Скрипт полуавтоматического обменника ExchangeBox

Веб-сайт………….: Скрипт обменника электронных валют — купить и скачать скрипт обменного пункта
Стоимость………..: $599
Кряк……………….: Пролечен!
Благодарность….: @brainless
Примечание……..: Хотите полную поддержку? Покупайте у авторов.

Спойлер: Скачать

Скрытый контент. Для просмотра Вы должны быть зарегистрированным участником.

Нажмите, чтобы раскрыть…

[ Дополнительные платные модули обменного пункта ]

  • Парсер курсов BestChange.ru
  • Модуль сбора курсов криптовалют Crypto
  • Модуль работы с заявками Live App
  • Модуль X19
  • Модуль Userverify
  • Модуль Мобильная версия
  • Модуль Blockedcoip
  • Модуль Invest
  • Модуль Export
  • Модуль PM Check

Спойлер: Скачать

Скрытый контент. Для просмотра Вы должны быть зарегистрированным участником.

Нажмите, чтобы раскрыть…

[ Парсер курсов Bestchange.ru для скрипта ExchangeBox 6.1+]

Модуль позволяет привязать курс обмена на вашем сайте к курсу обмена на сайте BestChange.ru для заданной позиции. Модуль позволяет держать курс обмена на вашем сайте выгоднее чем первая позиция на BestChange.ru или же просто держать курс актуального значения (например пятая позиция на BestChange.ru для определенного направления обмена).

Спойлер: Скачать

Скрытый контент. Для просмотра Вы должны быть зарегистрированным участником.

Нажмите, чтобы раскрыть…

[ Мануалы ]
Спойлер: Скачать

Скрытый контент. Для просмотра Вы должны быть зарегистрированным участником.

Нажмите, чтобы раскрыть…


Подключение к PlasmaPay обменного пункта на базе скрипта Premium Exchanger | PlasmaPay

PlasmaPay — это децентрализованная платежная система, аналог PayPal и Stripe, поддерживающая счета в крипто и фиатных валютах на базе блокчейна Plasma.

Сервис PlasmaPay предоставляет мультивалютные счета для онлайн бизнеса, крипто бирж, криптовалютных кошельков и обычных пользователей. PlasmaPay позволяет принимать и отправлять платежи не только в криптовалютах, но и с помощью карт Visa/MC и банковских переводов.

Основные продукты для бизнеса:

  • Business checkout. Прием карточных платежей на сайте, аналог PayPal.
  • Crypto checkout. Модуль для продажи Bitcoin с помощью кредитных карт Visa/MC. Возможность встраивать модуль на сайты для пополнения балансов пользователей в биткоине. Также можно встроить страницу crypto checkout на своем сайте или блоге и зарабатывать по реферальной системе % с каждой покупки пользователя. Продукт является аналогом Simplex.
  • Wallet-to-wallet. Интеграция позволяет встраивать PlasmaPay кошелек в сторонние системы, игры и сервисы, обменники, биржи, создавать аккаунты и процессить платежи с использованием стабильных валют.

PlasmaPay имеет широкую пользовательскую базу в более чем 150 странах.

❗️На базе PlasmaPay готовится к запуску Plasma DEX — децентрализованный биржа для криптовалют и крипто форекса.

Публичный блокчейн Plasma был спроектирован как цифровой аналог существующей макроэкономики. В существующей конфигурации PlasmaDLT может поддерживать до 160.000 операций в секунду. 

На базе блокчейн осуществляется процессинг следующих цифровых активов:

  • 42 фиатные валюты — стейбл коины (или цифровой кэш — USDp, EURp, RUBp, BYNp и тд) со 100% резервами в финансовых институциях. Каждый пользователь может эмитировать нужную валюту, перевести, обменять на другую валюту или актив, либо погасить.
  • SDRf — индекс взвешенной корзины 35 фиатных валют, аналог существующего SDR от IMF, решает задачу сбалансированной и стабильной валюты в системе блокчейна с защитой от инфляции
  • SDRc — индекс взвешенной корзины 30 криптовалют
  • BTCp — сайдчейн для криптовалют Bitcoin
  • Plasma — алгоритмическая внутренняя валюта, образована взвешенной корзиной всех активов блокчейна, имеющих резервы. Является прямым и более совершенным аналогом валюты Libra от Facebook. Plasma является математически совершенной цифровой валютой, инструментом монетарной политики закрытой блокчейн экосистемы и прямым отражением капитализации цифровой экономики.

❗️Комиссия по всем транзакция в сети блокчейна Plasma составляет 0,01% от базового актива. Оправляя 1.000 USD комиссия блокчейна составит 10 центов.

Дополнительная информация: https://plasmapay.com/plasma-dlt-blockchain

Пользователи и бизнес используют стабильные валюты как внутренние расчетные единицы между аккаунтами сети для приема и отправки трансграничных платежей, для пополнения балансов на криптовалютных биржах и покупки криптовалют.

❗️Обменники могут зарабатывать существенную прибыль на предоставлении пользователям возможности менять стабильные валюты с помощью банковских транзакций, карт Visa/MC или других платежных систем.

На сегодняшний день для работы доступны 42 стейбл коина, BTCp (сайдчен Bitcoin) и Plasma (основная валюта блокчейна).

Выбор подключаемых стабильных валют зависит от валют вашего обменника. Если у вас есть направления рубля, то подключать необходимо валюту RUBp, если у вас доступны направления обмена по Украинской гривне, то подключайте UAHp.
Все остальные валюты также доступны для подключения, курсы обмена вам будут доступны в модуле либо по АПИ.

Наиболее популярные валюты для региона СНГ:
USDp — US Dollar
RUBp — Russian Ruble
UAHp — Ukraine Hryvnia
BYNp — Belarusian Ruble
BTCp — Bitcoin on PlasmaDLT
Plasma — main PlasmaDLT currency

Название валют в обменнике желательно использовать PlasmaPay USDp или USDp stablecoin.

Полный список валют можно найти на портале Plasma Blockchain Explorer — https://plasmadlt.com/currencies

Процедура получения API ключа для работы с кошельком Plasma:

1. Зарегистрировать аккаунт на PlasmaPay https://app.plasmapay.com/id/sign-up

2. Активировать Plasma Account
Нажмите на кнопку «Активировать Аккаунт» на главной странице сервиса.

Процедура активации Plasma Account:

  • Придумайте название своему аккаунту в блокчейне. Название должно состоять из 12 символов, использовать можно все буквы латинского алфавита и числа от 1 до 5. 
  • Придумайте и запишите пароль от своего кошелька. Это будет уникальный пароль именно от кошелька Plasma (не от вашего аккаунта на PlasmaPay), с помощью которого вы сможете подписывать операции с созданного кошелька.
  • Скачайте и сохраните в безопасном месте (а лучше распечатать и файл удалить) pdf файл с вашим приватным ключом от кошелька Plasma. Потеря данного ключа сделает невозможным восстановление доступа к средствам на кошельке (❗️blockchain feature).
  • Выберите валюты, с которыми вы желаете работать в вашем кошельке.

После активации вы увидите на дешборде адрес вашего кошелька и доступные валюты.

3. Пройти верификацию аккаунта и получить статус «Digital Citizen»
Для прохождения верификации аккаунта подготовьте фото главной страницы вашего паспорта, страницы регистрации и сделайте селфи с паспортом. Процедура верификации занимает от нескольких минут до нескольких дней.

Страница верификации находиться в разделе Profile > Verification по адресу: https://app.plasmapay.com/id/profile/main

4. Запросить доступ к API ключам
После прохождения верификации отправьте нам на почту [email protected] или в чат поддержки на сайте ваш email от аккаунта PlasmaPay и адрес обменного пункта с запросом включить для вас Public Wallet API

4.1. Сгенерировать ключи
Перейдите в раздел Business

На вкладку Public wallet application и создайте новый application

Введите название вашего обменного пункта и обязательно отметьте connect your plasma wallet

В результате откроется страница с API ключом для вашего обменника. В случае компрометации API ключа необходимо незамедлительно удалить старый ключ и создать новый application. 

4. Установить и настроить модули для обменника
Модули доступны на официальном сайте https://premiumexchanger. com/modules/

Процесс добавления валюты в обменник и настройки направлений обмена такой же как и у других валют. Видео инструкция — https://youtu.be/ogtbT88YN6w

5. Установить комиссии по направлениям обмена

👍Желаемая комиссия обменника по обмену стабильных валют должна составлять 0,1 до 0,5 % от суммы операции. Наименьшая комиссия позволит привлечь на вашу площадку существенный трафик.

6. Пополнить резервы необходимых валют для обмена (инструкция в разделе ниже)

7. Запустить обмен и зарабатывать

7.1. Сообщить нам о вашем обменнике. Мы разместим ссылку на него в личных кабинетах пользователей.

Для приобретения резервов необходимых валют обратитесь с запросом на почту [email protected] либо в чат поддержки на сайте plasmapay.com

Отправьте текст содержащий следующие сведения:

  • ваш email аккаунта зарегистрированного в PlasmaPay
  • адрес вашего Plasma account
  • сумму и требуемую валюту
  • метод платежа / платежная система

Пример: Я хочу приобрести 100. 000 RUBp для аккаунта @testaccount1 используя мой PayPal ([email protected]). Моя почта PlasmaPay аккаунта [email protected].

Для обменных пунктов приобретение и погашение резервов валют производится с нулевой комиссией платформы PlasmaPay и не включает дополнительные комиссии взимаемые внешними платежными сервисами или банками за осуществление перевода.

В случае переизбытка ликвидности в обменном пункте, либо в случае его ликвидации вы можете погасить все ваши резервы и получить фиатные средства на любой аккаунт — карту, банковский счет либо счет в сторонней платежной системе.

Для погашения необходимо обратиться в чат поддержки с адресом вашего Plasma аккаунта, суммой погашения и способом получения фиатных средств.

Все эмитированные стабильные валюты на блокчейне Plasma имеют 100% резервов на погашение. За каждым выпущенным 1 USDp находится 1 USD на резервных счетах. Резервы хранятся на мультивалютных счетах в финансовых институциях и платежных системах, сотрудничающих с PlasmaPay в различных странах.

❗️Это гарантирует стабильность финансовой системы и 100% ликвидность для погашения выпущенных стабильных валют в эмиссионном центре PlasmaPay.

Для развития партнерских отношений с p2p обменными площадками и биржами мы размещаем информацию о партнерах внутри платформы PlasmaPay. Так пользователи смогут получить быстрый доступ к обменному пункту для покупки или продажи стабильных валют.

После интеграции и запуска обмена отправьте на [email protected] адрес сайта вашего обменника и .svg векторный логотип.

❗️В скором времени валюты USDp, EURp, RUBp, Plasma и прочие появятся на площадке bestchange.ru Будьте в числе топ обменников, подключив обмен стабильных валют первыми.

Желаем удачи и больших оборотов!
Команда PlasmaPay

По любым вопросам обращайтесь на почту [email protected] либо в чат поддержки на сайте.
Документация для разработчиков:

Скрипт Обменника и Биржи Криптовалют

KYC и AML модули

В последнее время часто всплывают новости – та или иная страна запретила биржи. Facebook запретил рекламу криптовалют. Binance перенес операционную деятельность из Японии в Мальту, а ведь это крупнейшая биржа в мире. Требования к биржам, и сложность их открытия возрастает в Индии. А Беларусь и вовсе с Эстонией легализовали эти бизнесы.

Однако, это ни в каком случае не отменяет что нужно соблюдать требование ваших стран. Знать своего клиента требуют от бирж и платежные системы. Что же входит в минимальный набор для KYC? Для большинства стран достаточно предоставить данные пользователей, их идентификация с помощью ID-карт, международных паспортов, и водительских удостоверений.

Следующий уровень идентификации предполагает обладание информацией о месте проживания пользователя. Выписка из банка, счет за коммунальные услуги, или счет по оплатам мобильного оператора. KYC важно не только для торговых площадок, и и при запуске ICO. AML или борьба с отмыванием денег. Вкратце, чтобы обезопасить себя вы обязаны предоставлять отчеты по финансовым операциям, проходящим через вашу биржу вышестоящим органам управления, государству.

Важно помнить, что это все необходимо только для биржи, которые работа с фиат деньгами, как доллар, евро и другими регулируемые государствами. Если на вашей биржи представлены торговые пары криптовалюта к криптовалюте, тогда не обязательно внедрять эти модули. Однако, как только вы решите запустить фиат деньги, будьте готовы.


Ликвидность самый важный элемент при разработке криптовалютной биржи. Без достаточной ликвидности вашу биржу не разместят на Coinmarketcap, пользователи будут недовольны, и как следствие отток клиентов. Дезинформация существовала всегда, но существует всего 2 варианта генерации ликвидности.

Локальные маркетмейкеры. Генерация заявок, основанная на алгоритмах, текущем курсе валют, и общем состоянии рынка. Маркетмейкеры работают от имени владельцев платформы и их кошельков. По данным 2017 года, каждая крупная биржа имеет локальных маркетмейкеров.

Внешняя ликвидность. Если первый вариант вас не устраивает, есть куда более интересный – получение внешней ликвидности, например с Kraken. Что же происходит в таком случае? Биржи синхронизируются между собой, как только заявка появляется на Кракене, она тут же и у Вас и наоборот. Какой из этих двух вариантов выбрать — сложно сказать. Плюсы и минусы есть в каждом из них. Добиться единства и гармонии в ликвидности можно однозначно только совмещая оба варианта в платформе.

Итак, теперь у вас есть инструмент, который можно использовать для выполнения задач, но вы все равно должны сделать это самостоятельно или нанять эксперта по PowerShell. Усилия можно уменьшить еще больше, не так ли?

Автоматизация и делегирование с помощью ScriptRunner

Вы хотите передать то, что вы сейчас реализовали изначально с помощью сценариев PowerShell, коллегам для выполнения — даже тем, у кого нет опыта работы с PowerShell или полных прав администратора? Вы также хотите, чтобы сценарии разрабатывались и выполнялись в команде, даже если требуется более трех параллельных сеансов?

Затем первым шагом является создание стандартизированной процедуры. С помощью подключаемого модуля ISE в ScriptRunner пользователи могут видеть все доступные сценарии — независимо от того, разработаны ли они сами по себе или в соответствии со стандартами GitHub, — их версии и возможные проблемы с доступом в центральной точке. Здесь вы можете видеть, какие скрипты выпущены для редактирования, вносить изменения, отмечать их напрямую и оставлять комментарии для своих коллег.

С помощью приложения администратора ScriptRunner теперь вы можете настраивать определенные действия. Например, некоторые пользователи могут редактировать настройки отсутствия на работе для организационного подразделения EMEA.Эти действия связаны с другими объектами, так что управление может осуществляться: с помощью так называемых запросов. Например, вы определяете, какие учетные записи могут быть выбраны для пользователя ScriptRunner, чтобы на следующем этапе выполнить желаемые настройки для этих почтовых ящиков.

У вас есть три варианта:

  • Включение вне офиса
  • Выключить вне офиса
  • Прекращение расписания отсутствия на работе

Планирование уведомления, безусловно, является наиболее распространенным сценарием.

Для этого сначала выберите почтовые ящики, для которых вы можете настроить отсутствие на работе, а затем определите текст или выберите предопределенное содержимое. Возможность централизованно определять текстовые модули для различных вариантов использования, таких как отпуск, болезнь или обучение, обеспечивает единообразный внешний вид всей компании. Даты начала и окончания отсутствия могут быть вставлены динамически как переменные в уведомлении об отсутствии. Удобное управление календарем доступно здесь. Как администратор, это уже настоящее облегчение работы, но никто другой не может взять на себя эту задачу.

С помощью приложения-делегата ScriptRunner администраторы теперь могут безопасно делегировать упомянутые задачи сотрудникам службы поддержки или коллегам из отделов. Им не нужны знания PowerShell или привилегированные разрешения, поскольку фактическую обработку выполняет ScriptRunner Server. С помощью запросов определяется, может ли сотрудник управлять почтовыми ящиками всей организации или он / она отвечает только за определенные отделы.

Делегированные действия доступны пользователям через удобный веб-интерфейс.Каждое действие представлено плиткой в ​​приложении делегата. Чтобы сохранить обзор даже при большом количестве назначенных действий, похожие задачи могут быть помечены цветом и сгруппированы с помощью свободно определяемых тегов. Кроме того, пользователь может отмечать часто используемые действия как избранные. Это делает их доступными сразу после запуска приложения Delegate.

Краткий обзор варианта использования «Управление отсутствием»:

  • Действие: активировать вне офиса
  • Запрос: выберите почтовый ящик
  • Цели: Exchange или Exchange Online
  • Скрипты: Set-Out_Of_Office. ps1
  • Учетные данные: Сервисный аккаунт с необходимыми разрешениями
  • Делегация: пользователь службы поддержки, конечный пользователь

Идем в ногу благодаря мониторингу

С помощью ScriptRunner администраторы также могут выполнять сценарии на нескольких серверах по расписанию. Панель мониторинга ScriptRunner обеспечивает централизованный обзор всех действий PowerShell. Среди прочего, он показывает, какое действие будет выполнено пользователем и в какое время. Это позволяет лучше отслеживать задачи, а также распознавать возможные разные результаты выполнения.


Комбинация Exchange On-Premise и Exchange Online с соответствующими модулями PowerShell и функциями ScriptRunner делает автоматизацию и делегирование Exchange очень удобными и безопасными. Это освобождает администраторов от рутинных задач, а команда службы поддержки может обрабатывать многие запросы от конечных пользователей быстрее и стандартизированным способом.

Помимо использования ScriptRunner с Exchange и Office 365, всеми системами поддержки PowerShell можно управлять с помощью ScriptRunner.Примеры: Sharepoint, Azure, Hyper-V, VMware, AWS и т. Д.

Хотите узнать больше по теме? Тогда ознакомьтесь с записью нашего бесплатного вебинара «Автоматизация и делегирование администрирования Exchange / O365 с помощью PowerShell».

PowerShell Script: Exchange Weekend Out of Office

Вот простой сценарий, который я написал для PowerShell, чтобы автоматизировать ответы пользователей об отсутствии на работе на выходных. Это один из моих первых способов, возможно, это не лучший способ, но он работает!


 $ time = get-date -format t
$ dayVal = (дата получения).DayOfWeek.value__
# $ dayVal # вс 0, пн 1, вт 2, ср 3, чт 4, пт 5, сб 6, вс 7
# напишите здесь сообщения
$ msg = ' Здравствуйте, 

Ваше письмо было получено нашей системой. Наша группа обработки продаж не работает до 7:30 утра понедельника по восточному стандартному времени.
Таким образом, до этого времени у нас не будет видимости заказа или возможности обрабатывать или изменять какие-либо существующие заказы на покупку.
В случае возникновения чрезвычайной ситуации свяжитесь напрямую со своим представителем.

Группа обработки продаж ' $ intmsg = 'Группа обработки продаж находится вне офиса с 16:45 пятницы до 7:30 понедельника.' # проверьте, сейчас пятница if (($ dayVal -eq 5) -and ($ time -like '4: 4 * PM')) { #Пятница # $ time # включить автоответ # write-host 'Ушел из офиса .... Спокойной ночи!' Set-MailboxAutoReplyConfiguration -Identity '[email protected]' -AutoReplyState Enabled -ExternalMessage $ msg -InternalMessage $ intmsg "Автоответчик включен". } # если не пятница, проверьте, не сегодня ли понедельник Еще{ if (($ dayVal -eq 1) -and ($ time -like '7: * AM')) { # отключить автоответчик Set-MailboxAutoReplyConfiguration -Identity 'продажи[email protected] com '-AutoReplyState Enabled -ExternalMessage $ null -InternalMessage $ null "Автоответ отключен". } # если сегодня не понедельник, проверьте, суббота сейчас или воскресенье Elseif (($ dayVal -eq 6) -or ($ dayVal -eq 7)) { # включить автоответчик Set-MailboxAutoReplyConfiguration -Identity '[email protected]' -AutoReplyState Enabled -ExternalMessage $ msg -InternalMessage $ intmsg "Автоответчик включен". } # если сейчас не понедельник, пятница, суббота или воскресенье, правило должно быть отключено по умолчанию. Еще{ Set-MailboxAutoReplyConfiguration -Identity 'продажи[email protected] '–AutoReplyState Disabled –ExternalMessage $ null –InternalMessage $ null "Автоответ отключен". } }

Если вы запустите это прямо из Exchange PowerShell, проблем не будет. Вам нужно будет использовать учетные данные, если вы решите запустить из обычной PowerShell.

РЕДАКТИРОВАТЬ: этот сценарий запускается с помощью запланированной задачи.

Отредактировано 20 февраля 2018 г. в 15:58 UTC

Индекс сценариев PowerShell — o365info.com

Управление аудитом почтовых ящиков Exchange Online — сценарий o365info PowerShell

Сценарий меню Audit PowerShell поможет вам выполнять различные задачи управления, связанные с параметром почтового ящика аудита Exchange, например — включить аудит почтовых ящиков один почтовый ящик Exchange или, для нескольких почтовых ящиков Exchange Online (массовый режим), экспорт журнала аудита почтовых ящиков Exchange в различные типы файлов (TXT, CSV, HTML), поиск почтовых ящиков Exchange с включенным аудитом и многое другое.

Более подробную информацию о команде PowerShell, которая используется в сценарии, можно прочитать в статье: Управление аудитом почтовых ящиков с помощью PowerShell | Office 365

Использование команды Get-MessageTrace PowerShell для просмотра и экспорта информации об отправленной и полученной почте

Сценарий меню PowerShell, используйте командлет PowerShell — Get-MessageTrace для доступа, поиска и экспорта файла журнала Exchange Online, который включает документация по каждой входящей и исходящей почтовой транзакции. Меню сценариев позволяют вам определить «фильтр поиска», ищущий информацию о конкретном потоке почты, например — электронное письмо, которое было отправлено определенным отправителем или получено определенным получателем, письмо, отправленное от отправителя с определенным доменным именем. суффикс, письмо, которое было отправлено в определенный диапазон дат и многое другое.

Более подробную информацию о командах PowerShell, используемых в сценарии, можно найти в статьях:

Управление почтовым ящиком комнаты с помощью PowerShell | Сценарий меню PowerShell для Office 365

, который поможет вам выполнять задачи управления, связанные с почтовым ящиком комнаты, такие как — создание нового почтового ящика комнаты, настройка почтового ящика комнаты — параметры бронирования, назначение или удаление полного доступа, разрешения «Отправить как», назначенные почтовому ящику комнаты , экспортировать информацию о существующих почтовых ящиках комнаты, преобразовать почтовый ящик комнаты в обычный почтовый ящик и наоборот и многое другое.

Более подробную информацию о командах PowerShell, используемых в сценарии, можно найти в статье: Управление почтовым ящиком комнаты с помощью PowerShell | Office 365

Управление общим почтовым ящиком с помощью PowerShell | Office 365

Сценарий меню PowerShell для общего почтового ящика поможет вам выполнять различные задачи управления, связанные с общим почтовым ящиком Exchange, такие как: назначение или удаление полного доступа, разрешения «Отправить как», назначенные общему почтовому ящику, экспорт информации о существующих общих почтовых ящиках, преобразовать общий почтовый ящик в обычный почтовый ящик и наоборот и многое другое.

Более подробную информацию о командах PowerShell, используемых в сценарии, можно найти в статье: Общий почтовый ящик — справочник по командам PowerShell

Управление корзиной Office 365 с помощью PowerShell | Office 365

Сценарий меню PowerShell, который поможет вам выполнять задачи управления, связанные с — корзиной Azure Active Directory (хранилище удаленных пользователей Office 365), таких как: восстановление пользователей Office 365, отображение и экспорт информации об удаленных пользователях, хранящихся в Корзина Azure Active Directory, удаление удаленного пользователя из корзины Azure Active Directory и многое другое.

Более подробную информацию о командах PowerShell, используемых в сценарии, можно найти в статье: Управление корзиной Office 365 с помощью PowerShell | Office 365

Управление пересылкой почты с помощью PowerShell | Office 365

Сценарий меню PowerShell, который поможет вам выполнять различные задачи управления, относящиеся к параметрам пересылки электронной почты почтового ящика, такие как — установка или отключение пересылки электронной почты для одного почтового ящика Exchange, экспорт информации обо всех почтовых ящиках Exchange, которые имеют Возможность пересылки электронной почты, импорт настроек пересылки электронной почты из файла CSV и многое другое.

Вы можете прочитать более подробную информацию о командах PowerShell, которые используются в сценарии, в статье: Пересылка почты — команды PowerShell

Тема «Управление адресами электронной почты» в среде Exchange может быть переведена на различные административные задачи, такие как — массовое добавление псевдонима адреса электронной почты в несколько почтовых ящиков Exchange Online, массовое удаление псевдонима адреса электронной почты из нескольких почтовых ящиков Exchange Online, резервное копирование существующего адреса электронной почты, замена основного адреса электронной почты и т. д.
Для выполнения этих различных задач я создал семь сценариев меню PowerShell, которые помогут вам в выполнении этих задач.

Экспорт адресов электронной почты | Exchange Online | Использование PowerShell | 1 # 7

Сценарий меню PowerShell, который поможет вам:
Создать отчет (который будет экспортирован в файлы) о — всех получателях Exchange Online и их различных типах адресов электронной почты, таких как адрес электронной почты SMTP (Адрес электронной почты для начинающих и адрес электронной почты псевдонима), SIP-адрес, X.500 Адрес электронной почты и т. Д.

Более подробную информацию о командах PowerShell, которые используются в скрипте, можно прочитать в статьях:

Поиск адресов электронной почты + экспорт | Exchange Online | Использование PowerShell | 2 # 7

Сценарий меню PowerShell, который поможет вам:
Выполнять поиск определенного адреса электронной почты или адреса электронной почты, который использует суффикс определенного доменного имени получателей Exchange Online, и экспортировать информацию в файлы.

В случае, если вы хотите получить более подробную информацию о поиске конкретных адресов электронной почты, вы можете прочитать статьи:

Массовое добавление псевдонима адреса электронной почты — суффикс конкретного доменного имени | 3 # 7

Сценарий меню PowerShell, который поможет вам:
TEST + реализовать процесс — Массовое добавление дополнительных псевдонимов адресов электронной почты с определенным суффиксом доменного имени в несколько почтовых ящиков Exchange Online.

Дополнительная информация

В случае, если вы хотите получить более подробную информацию о теме — добавлении дополнительного псевдонима адреса электронной почты, вы можете прочитать статьи:

Добавить дополнительный прокси (псевдоним) E-mail адрес | импорт из CSV | 4 # 7

Сценарий меню PowerShell, который поможет вам:
TEST + реализовать процесс — Массовое добавление дополнительных прокси (псевдонимов) адресов электронной почты получателю Exchange Online, которые импортируются из файла CSV.

Дополнительная информация

Если вы хотите получить более подробную информацию о теме — Добавить дополнительный псевдоним электронной почты, импортировав информацию из файла CSV, вы можете прочитать статьи:

Массовое удаление Псевдоним E-mail — суффикс конкретного доменного имени | 5 # 7

Сценарий меню PowerShell, который поможет вам:
TEST + реализовать процесс — массового удаления существующих псевдонимов адресов электронной почты с определенным суффиксом доменного имени из нескольких почтовых ящиков Exchange Online.

Дополнительная информация

В случае, если вы хотите получить более подробную информацию о теме — удаления (удаления) адреса электронной почты с определенным суффиксом доменного имени, вы можете прочитать статью — Удалить электронную почту адреса с помощью PowerShell | Office 365 | Часть 12 # 130

Назначьте НОВЫЙ основной адрес электронной почты, используя определенный суффикс доменного имени | 6 # 7

Сценарий меню PowerShell, который поможет вам:
ТЕСТ + реализовать процесс — Массовая замена (удаление) существующих основных адресов электронной почты НОВЫМ основным адресом электронной почты с определенным суффиксом доменного имени. .

Дополнительная информация

В случае, если вы хотите получить более подробную информацию о теме — замены основного адреса электронной почты, вы можете прочитать статью — Добавление адресов электронной почты с помощью PowerShell | Office 365 | Часть 3 # 13

Управление адресами электронной почты — Единый почтовый ящик | Exchange Online | 7 # 7

Сценарий меню PowerShell, который поможет вам:
Управлять адресом электронной почты определенного почтового ящика Exchange Online (добавить псевдоним, удалить псевдоним, заменить основной адрес электронной почты).

Командлет PowerShell Search-Mailbox очень мощный и может использоваться для различных типов административных сценариев. По этой причине я создал «серию» сценариев PowerShell, которые помогут вам «зарегистрировать» командлет PowerShell Search-Mailbox для реализации различных типов задач:

Поиск почтовых элементов с помощью командлета PowerShell Search-Mailbox ( 1 # 4)

Сценарий меню PowerShell, который используется для — выполнения поиска в одном почтовом ящике Exchange Online с использованием различных типов фильтров, таких как — конкретный текст, конкретная дата, определенный тип почтовых элементов (календарь, контакт , так далее. ), почта с вложением и многое другое.

Восстановление почтовых элементов с помощью командлета PowerShell Search-Mailbox (2 # 4)

Сценарий меню PowerShell, который используется для: — Восстанавливает почтовые элементы, хранящиеся в папке восстановления почтовых ящиков (корзина почтовых ящиков Exchange Online). Сценарий PowerShell поможет вам восстановить все содержимое почтовой папки для восстановления или использовать фильтр поиска, который будет восстанавливать только определенные почтовые элементы, отвечающие определенному символу, например — конкретный текст, определенная дата, определенный тип почтовых элементов ( календарь, контакт и т. д.), почта с вложением и многое другое.

Удаление почтовых элементов — несколько почтовых ящиков Exchange (массовое) с использованием PowerShell (3 # 4)

Сценарий меню PowerShell, который используется для — выполнения удаления определенных почтовых элементов из нескольких почтовых ящиков Exchange Online (массовый режим). «Удаление» этого почтового элемента осуществляется путем выбора «поискового фильтра», который удаляет только те почтовые элементы, которые имеют определенные символы, такие как — конкретный текст, конкретная дата, определенный тип почтовых элементов (календарь, контакт и т. Д.)), почта с вложением и многое другое.

Поиск и удаление почты из отдельных почтовых ящиков Exchange с помощью PowerShell (4 # 4)

Сценарий меню PowerShell, который используется для — выполнения удаления определенных почтовых элементов из одного почтового ящика Exchange Online.
«Удаление» этого почтового элемента осуществляется путем выбора «поискового фильтра», который удаляет только почтовые элементы, содержащие определенные символы, такие как — конкретный текст, конкретная дата, определенный тип почтовых элементов (календарь, контакт и т. Д.) .), почта с вложением и многое другое.

Как использовать новый модуль PowerShell для Exchange Online V2

Если вы администратор Office 365, вы, вероятно, используете сценарии PowerShell для выполнения различных задач автоматизации. Однако маловероятно, что вы используете MFA для аутентификации автоматических сценариев PowerShell в Exchange Online. Это будет означать, что ваши скрипты все еще используют базовую аутентификацию.

Microsoft изначально планировала удалить базовую проверку подлинности для Exchange Online 13 октября 2020 г.Затем план был перенесен на ориентировочную дату во второй половине 2021 года на .

Рано или поздно администраторам необходимо изменить дизайн своих скриптов, учитывая следующее:

  • Сценарии PowerShell должны использовать современную проверку подлинности, сохраняя при этом возможность запуска без присмотра.
  • Сценарии PowerShell должны проходить безопасную проверку подлинности без исключения учетной записи службы для многофакторной проверки подлинности в Office 365.

Ранее эти два условия не могли быть выполнены с помощью существующих решений.К счастью, Microsoft выпустила модуль Exchange Online V2 PowerShell версии 2. 0.3-preview. В этой новой версии добавлена ​​возможность использовать проверку подлинности на основе сертификатов, связанную с приложением Azure AD.

В этой статье вы узнаете, как подготовиться к использованию модуля EXO V2 для запуска автоматических сценариев Exchange Online с современной проверкой подлинности только для приложений. Вы узнаете, как:

  • Зарегистрируйте новое приложение в Azure Active Directory и включите его субъект-службу.
  • Назначьте разрешения и роли API.
  • Создайте и загрузите самозаверяющий сертификат.
  • Используйте приложение и сертификат для проверки подлинности с помощью Exchange Online PowerShell.

С учетом сказанного, не ожидайте увидеть в этой статье много инструкций по щелчку мыши. Большая часть пошаговых инструкций будет выполнена в PowerShell.

Предварительные требования

Для успешного выполнения инструкций убедитесь, что у вас есть следующие требования.

  • Доступ к клиенту Office 365 с разрешениями глобального администратора. Используйте для тестирования непроизводственный клиент / клиент для разработчиков. Вам следует подумать о подписке на пробный клиент Office 365.
  • Компьютер Windows с Windows PowerShell 5.1 . В этой статье вы будете использовать компьютер под управлением Windows 10 версии 1909.
  • Установите последнюю версию AzureAD PowerShell Module . Текущая версия, используемая в этой статье, —
  • Редактор кода, например Notepad ++ , Atom , Windows PowerShell ISE или Visual Studio Code .Используйте тот, который вам удобнее всего.
  • Создайте рабочий каталог для вашего теста. В этой статье рабочий каталог C: \ exo_v2_demo .
  • Загрузите копию сценария Create-SelfSignedCertificate.ps1 и сохраните ее в своем рабочем каталоге. В этой статье мы сохраним скрипт в рабочем каталоге C: \ exo_v2_demo.

Настройка аутентификации только для приложений с помощью PowerShell

Возможно, вы привыкли использовать общую учетную запись, которую часто называют учетной записью службы для запуска сценариев PowerShell. Этот тип учетной записи представляет собой учетную запись « shared ». Любой, кто знает учетные данные этой учетной записи, может использовать их для входа в систему и выполнения всевозможных административных действий в вашей организации; это проблема безопасности.

Аутентификация только приложения пытается решить эту проблему безопасности. Аутентификация только для приложений требует использования приложения Azure AD с субъектом службы, выбранными разрешениями и ролью. Используйте токен или сертификат для аутентификации.

Создание приложения Azure AD с разрешениями API

Первым шагом является создание нового приложения в Azure AD с соответствующими разрешениями API.Сначала откройте Windows PowerShell с повышенными привилегиями (запустите от имени администратора) и убедитесь, что подключается к Azure AD .

Подключиться к Azure AD

Приведенный ниже код зарегистрирует новое приложение в Azure AD с именем Exo_V2_App и назначит разрешение Exchange. ManageAsApp API Office 365 Exchange Online .

Если вы предпочитаете использовать другое имя для своего приложения, отредактируйте значение переменной $ appName в приведенном ниже коде. Скопируйте код и запустите его в PowerShell.

## Определите имя клиентского приложения
$ appName = 'Exo_V2_App'

## Получите сведения об API Office 365 Exchange Online.
$ api = (Get-AzureADServicePrincipal -Filter "AppID eq '00000002-0000-0ff1-ce00-000000000000'")

## Получить идентификатор разрешения API
$ permission = $ api.AppRoles | Where-Object {$ _. Value -eq 'Exchange.ManageAsApp'}

## Создайте объект разрешения API (ТИП: роль = приложение, область действия = пользователь)
$ apiPermission = [Microsoft.Open.AzureAD.Model.RequiredResourceAccess] @ {
    ResourceAppId = $ api.AppId;
    ResourceAccess = [Microsoft.Open.AzureAD.Model.ResourceAccess] @ {
        Id = $ permission. Id;
        Тип = "Роль"

## Зарегистрируйте новое приложение Azure AD с разрешениями API
$ myApp = New-AzureADApplication -DisplayName $ appName -ReplyUrls 'http: // localhost' -RequiredResourceAccess $ apiPermission

## Включение субъекта-службы
$ mySP = New-AzureADServicePrincipal -AppID $ myApp.AppID

## Показать новые свойства приложения
$ myApp | Формат-список DisplayName, ObjectID, AppID

В демонстрации ниже показан код в действии.В конце концов, он представит свойства DisplayName , ObjectID, и AppID. Отображается свойств нового приложения. $ переменная myApp хранит эти свойства. Переменная $ mySP содержит значения свойств субъекта-службы.

Зарегистрируйте новое приложение Azure AD

СОВЕТ. Обязательно сохраните свойства приложения для быстрого ознакомления.

Экспортируйте значения свойств приложения, используя следующую команду.

  $ myApp | Export-Csv -NoTypeInformation "$ ($ appName) .csv"

Назначение роли Azure AD приложению

После создания приложения следующим шагом является назначение роли Azure AD субъекту службы приложения. Вам нужно будет решить, какую роль вы должны назначить своему приложению.

Допустимые поддерживаемые роли для Exchange Online V2 приведены ниже.

  • Администратор компании
  • Администратор соответствия
  • Читатель безопасности
  • Администратор безопасности
  • Администратор службы поддержки
  • Администратор службы Exchange
  • Global Reader

Вы должны назначать только наименее привилегированную роль, которую вы считаете подходящей для вашего сценария.В этом примере приведенный ниже код назначит роль администратора службы Exchange субъекту службы приложения.

  ## Роль, назначаемая вашему приложению
$ directoryRole = 'Администратор службы Exchange'

## Найдите идентификатор объекта «Администратор службы Exchange»
$ RoleId = (Get-AzureADDirectoryRole | Где-Object {$ _.  Displayname -eq $ directoryRole}). ObjectID

## Добавить участника-службы в роль каталога
Add-AzureADDirectoryRoleMember -ObjectId $ RoleId -RefObjectId $ mySP.ObjectID -Verbose

Когда вы запустите приведенную выше команду в PowerShell, вы должны увидеть результат, аналогичный показанному в демонстрации ниже.

Назначение роли Azure AD приложению

Создание и прикрепление самозаверяющего сертификата к приложению

Следующим шагом является создание самозаверяющего сертификата и прикрепление этого сертификата к вашему приложению. Для этого шага вам понадобится сценарий Create-SelfSignedCertificate.ps1 .

Приведенный ниже сценарий сгенерирует самозаверяющий сертификат, используя имя вашего приложения в качестве имени субъекта, например Exo_V2_App. Сертификат действителен в течение 1 (одного) года.

Если вы хотите изменить срок действия сертификата, вам следует изменить значение $ certYears на желаемое количество лет. Вы также можете изменить значение $ certPassword , если хотите использовать другой пароль для полученного файла сертификата (PFX).

  ## Количество лет действия сертификата
$ certYears = 1

## Пароль сертификата (PFX)
$ certPassword = '4 ~ mt4G * [электронная почта защищена]'

.\ Create-SelfSignedCertificate.ps1 -CommonName $ appName `
-StartDate (Get-Date) .AddDays (-1) `
-EndDate (Get-Date) .AddYears ($ certYears) `
-Пароль (ConvertTo-SecureString $ certPassword -AsPlainText -Force) `

Когда вы запустите приведенный выше код в PowerShell, будут созданы два файла, как вы можете видеть из демонстрации ниже.

Создать самоподписанный сертификат

Следующим шагом является загрузка только что созданного сертификата в приложение Azure AD. Приведенный ниже код найдет сертификат (.CER) в вашем рабочем каталоге, а затем прикрепите его к приложению Azure AD. Нет необходимости изменять код, просто скопируйте и запустите его в PowerShell.

  ## Получить файл сертификата (.CER)
$ CertificateFilePath = (Resolve-Path ". \ $ ($ AppName) .cer"). Путь
## Создайте новый объект сертификата
$ cer = Новый объект System.Security.Cryptography.X509Certificates.X509Certificate2
$ cer.Import ("$ ($ CertificateFilePath)")
$ bin = $ cer.GetRawCertData ()
$ base64Value = [System.Convert] :: ToBase64String ($ bin)
$ bin = $ cer.GetCertHash ()
$ base64Thumbprint = [System.Convert] :: ToBase64String ($ bin)

## Загрузить и назначить сертификат приложению в AzureAD
$ null = New-AzureADApplicationKeyCredential -ObjectId $ myApp.ObjectID `
-CustomKeyIdentifier $ base64Thumbprint `
-Type AsymmetricX509Cert -Usage Verify `
-Value $ base64Value `
-StartDate ($ cer.NotBefore) `
-EndDate ($ cer.NotAfter)

Когда вы запускаете приведенный выше код в PowerShell, вы можете ожидать, что не увидите никаких выходных данных, если только не возникла ошибка. В демонстрации ниже показан результат успешного выполнения кода.

Присоединение сертификата к приложению Azure AD

Предоставление согласия администратора на приложение

Вы почти закончили настройку. На следующем шаге глобальный администратор должен предоставить согласие вашему приложению Azure AD. Этот шаг может быть выполнен вами или другим глобальным администратором в вашей организации.

Глобальный администратор может предоставить согласие из центра администрирования Azure Active Directory . Но вы также можете просто сгенерировать URL-адрес согласия в PowerShell.Либо передайте его глобальному администратору, либо вы можете использовать его самостоятельно, чтобы дать согласие.

URL-адрес согласия соответствует приведенному ниже формату.


Значение {TenantID} — это идентификатор каталога или подтвержденный домен вашего клиента Office 365. Значение {ApplicationID} — это AppID приложения Azure AD, которое вы создали ранее.

Приведенный ниже код сгенерирует URL-адрес согласия на основе значений, указанных выше.URL-адрес согласия затем отобразится на экране и будет запущен с использованием браузера компьютера по умолчанию.

  ## Получить TenantID
$ tenantID = (Get-AzureADTenantDetail) .ObjectID

## Просмотрите этот URL
$ grantURL = "https://login.microsoftonline.com/$tenantID/adminconsent?client_id=$($myApp.AppId)"

## Показать URL согласия
$ согласиеURL

## Запустите URL-адрес согласия, используя браузер по умолчанию
Старт-процесс $ согласиеURL

Обратитесь к демонстрации ниже, чтобы увидеть, что происходит, когда вы запускаете приведенный выше код в PowerShell.

Создать URL-адрес согласия и предоставить согласие

Подключение к Exchange Online PowerShell

После создания приложения и назначения разрешения и роли вам теперь необходимо загрузить и прикрепить сертификат. Теперь вы готовы подключиться к Exchange Online PowerShell, используя учетные данные сертификата приложения.

Есть два способа использовать учетные данные сертификата; используя локальный файл сертификата (.pfx), и используя отпечаток сертификата, установленный в хранилище личных сертификатов текущего пользователя .

Аутентификация с использованием локального сертификата PFX

Чтобы подключиться к Exchange Online PowerShell с использованием локального сертификата для проверки подлинности, необходимо иметь следующую информацию:

  • Идентификатор каталога или подтвержденный домен вашего клиента Azure AD.
  • AppID приложения, которое вы зарегистрировали ранее.
  • Полный путь к файлу самозаверяющего сертификата PFX.
  • Пароль сертификата самоподписанного PFX.

Затем измените значение переменных $ tenantID , $ appID , $ CertificateFilePath и $ pfxPassword в приведенном ниже коде.После того как вы измените значения переменных по мере необходимости, скопируйте код и запустите его в PowerShell.

  ## установить идентификатор клиента (идентификатор каталога или домена)
$ tenantID = 'poshlab.ga'

## Установите идентификатор приложения Exo_V2_App
$ appID = '3f76be04-5cf0-47f1-9df6-d05981a450fc'

## Задайте путь к файлу сертификата (.pfx)
$ CertificateFilePath = 'C: \ exo_v2_demo \ Exo_V2_App.pfx'

## Получить пароль PFX
$ pfxPassword = '4 ~ mt4G * [электронная почта защищена]'

## Подключиться к Exchange Online
Connect-ExchangeOnline -CertificateFilePath $ CertificateFilePath `
-CertificatePassword (ConvertTo-SecureString -String $ pfxPassword -AsPlainText -Force) `
-AppID $ appID `
-Организация $ tenantID

В демонстрации ниже показано, что подключение к Exchange Online PowerShell прошло успешно с использованием проверки подлинности файла локального сертификата.

Аутентификация с использованием локального сертификата PFX

Если вы еще раз внимательно посмотрите на код, одна очевидная проблема заключается в том, что пароль сертификата pfx виден. Вы можете подумать об использовании какого-либо решения для управления секретами для хранения учетных данных сертификата для дополнительной безопасности.

Аутентификация с использованием отпечатка сертификата

Этот метод аутентификации можно считать более безопасным, чем использование локального сертификата с паролем. В этом методе вам нужно будет импортировать сертификат в хранилище личных сертификатов.Вам нужно только использовать отпечаток, чтобы определить, какой сертификат использовать для аутентификации.

Первым шагом является импорт сертификата PFX в хранилище личных сертификатов. Обратите внимание, что вам нужно сделать этот шаг только один раз для текущего пользователя.

## Задайте путь к файлу сертификата (.pfx)
$ CertificateFilePath = 'C: \ exo_v2_demo \ Exo_V2_App.pfx'

## Получить пароль PFX
$ mypwd = Get-Credential -UserName 'Введите пароль ниже' -Сообщение 'Введите пароль ниже'

## Импортируйте сертификат PFX в хранилище личных сертификатов текущего пользователя. Import-PfxCertificate -FilePath $ CertificateFilePath -CertStoreLocation Cert: \ CurrentUser \ My -Password $ mypwd.Password

В демонстрации ниже показано, как импортировать сертификат PFX в личное хранилище сертификатов.

Импорт сертификата PFX

Как вы можете видеть выше, вы увидите результат процесса импорта PFX. Обязательно скопируйте значение Thumbprint для быстрого ознакомления позже.

После импорта сертификата ваши сценарии теперь могут проходить проверку подлинности в Exchange Online PowerShell, используя его отпечаток.

Измените $ tenantID , $ appID и $ CertificateThumbPrint в приведенном ниже коде, чтобы они соответствовали вашим правильным значениям. Затем скопируйте и запустите код в PowerShell.

  ## установить идентификатор клиента (идентификатор каталога или домена)
$ tenantID = 'poshlab.ga'

## Установите идентификатор приложения Exo_V2_App
$ appID = '3f76be04-5cf0-47f1-9df6-d05981a450fc'

## Установите отпечаток сертификата
$ CertificateThumbPrint = 'DED486B87C38CEA966EC71F8EE90BB3AAE694A74'

## Подключиться к Exchange Online
Connect-ExchangeOnline -CertificateThumbPrint $ CertificateThumbPrint `
-AppID $ appID `
-Организация $ tenantID

Выполнение приведенного выше кода в PowerShell даст вам результат, аналогичный приведенному ниже демо.

Вывод после запуска кода в Powershell

Запуск сценариев Exchange Online PowerShell с проверкой подлинности только для приложений

До сих пор в этой статье вы только копировали и вставляли код в PowerShell. Но теперь, когда вы знакомы с тем, как работает проверка подлинности только для приложений, вам следует применить ее для запуска сценариев PowerShell.

Приведенный ниже сценарий подключается к Exchange Online PowerShell с помощью отпечатка сертификата для проверки подлинности. Затем после подключения сценарий получит все доступные почтовые ящики.Скрипт сохранен в C: \ exo_v2_demo \ ListExoMailbox.ps1

  ## Очистить сеанс Exchange Online
Get-PSSession | Where-Object {$ _. Name -like "ExchangeOnline *"} | Remove-PSSession -ErrorAction SilentlyContinue

## установить идентификатор клиента (идентификатор каталога или домена)
$ tenantID = 'poshlab.ga'

## Установите идентификатор приложения Exo_V2_App
$ appID = '3f76be04-5cf0-47f1-9df6-d05981a450fc'

## Установите отпечаток сертификата
$ CertificateThumbPrint = 'DED486B87C38CEA966EC71F8EE90BB3AAE694A74'

## Подключиться к Exchange Online
Connect-ExchangeOnline -CertificateThumbPrint $ CertificateThumbPrint `
-AppID $ appID `
-Организация $ tenantID

## Получить весь почтовый ящик
Запись-Вывод "Получение всех почтовых ящиков"
Get-Mailbox -ResultSize Неограниченный | Имя форматной таблицы, DisplayName

После сохранения скрипта запустите его в PowerShell. Сценарий должен подключаться к Exchange Online без каких-либо запросов и выполнять свою функцию. См. Результаты, показанные в демонстрации ниже.

Сценарий PowerShell с аутентификацией только для приложений


Выпуск модуля EXO V2 PowerShell — долгожданное событие. Зная, что Microsoft решила отказаться от базовой проверки подлинности для Exchange Online, наличие этой новой функции проверки подлинности только для приложений позволяет администраторам обновлять свои существующие сценарии.

Однако реализация аутентификации EXO V2 только для приложений сопряжена с проблемами.

  • Для использования локального файла сертификата по-прежнему требуется пароль PFX. Если вы можете реализовать стратегию управления учетными данными или секретным , вы должны обойти эту проблему раскрытия пароля.
  • Использование сертификата в личном магазине относительно более уверенно. Но к сертификату может получить доступ только текущий пользователь. Итак, если настроил запланированную задачу для запуска сценария с использованием учетных данных UserA , тогда сертификат необходимо импортировать в личное хранилище сертификатов UserA.
  • Сертификаты имеют срок годности. Это означало бы, что сертификаты необходимо отслеживать, обновлять и повторно прикреплять к приложению Azure AD. В противном случае скрипт перестанет работать из-за сбоя аутентификации.

Преимущества использования нового модуля EXO V2 PowerShell перевешивают эти проблемы.

В этой статье вы узнали пошаговый процесс настройки проверки подлинности только для приложений для модуля Exchange Online V2 PowerShell. Вы также узнали, как подключиться к Exchange Online PowerShell с помощью самозаверяющего сертификата.

Теперь вам не нужно иметь дело с приглашениями Exchange Online PowerShell MFA и использовать в сценариях проверку подлинности на основе сертификатов только для приложений.

Если вы хотите пойти немного дальше, возможно, вы захотите проверить то, что вы узнали из этой статьи, с помощью Jenkins или Azure Automation . Или, возможно, создайте свои собственные функции PowerShell и модули

Спасибо за внимание!

Дополнительная литература


Современная проверка подлинности и автоматические сценарии в Exchange Online PowerShell V2

Обычно администраторы используют сохраненные учетные данные для автоматических сценариев PowerShell.С введением параметров безопасности по умолчанию и устареванием базовой аутентификации необходимо использовать MFA для аутентификации. Поскольку MFA требует взаимодействия пользователей для создания сеанса Exchange, люди начали использовать политику условного доступа для обхода MFA. Но для условного доступа требуется лицензия Azure AD Premium.

Итак, большинству администраторов нужен способ выполнения сценария PowerShell с современной аутентификацией и автоматической аутентификацией.

После нескольких месяцев ожидания Microsoft выпустила предварительный модуль EXO V2 для неинтерактивных сценариев PowerShell с использованием современной проверки подлинности.

С введением этой новой функции

–Вы не должны исключать сервисные аккаунты с политикой условного доступа.

–Вы не должны хранить учетные данные в локальном файле

–Вы можете легко автоматизировать планировщик сценариев с помощью Modern auth

Для автоматизации входа в Exchange Online PowerShell вам потребуется модуль EXO V2 PowerShell версии 2.0.3 или более поздней версии. Эта автоматическая проверка подлинности сценария использует приложения, сертификаты и современную проверку подлинности Azure AD.

Чтобы установить предварительный выпуск модуля EXO V2, выполните приведенный ниже командлет.

Install-Module -Name ExchangeOnlineManagement -RequiredVersion 2.0.3-Preview -AllowPrerelease

Install-Module -Name ExchangeOnlineManagement -RequiredVersion 2.0.3-Preview -AllowPrerelease

Чтобы обновить более раннюю версию модуля EXO V2, запустите приведенный ниже командлет.

Обновление-Модуль-Имя ExchangeOnlineManagement -AllowPrerelease

Модуль обновления-Имя ExchangeOnlineManagement -AllowPrerelease

Как использовать модуль EXO V2 для автоматических сценариев?

Вы можете использовать предварительную версию модуля Exchange Online PowerShell V2 для автоматизации планировщика сценариев с помощью MFA / современной проверки подлинности.

В следующих примерах показано, как использовать модуль Exchange Online PowerShell V2 с проверкой подлинности только для приложений.

Подключиться к Exchange Online PowerShell с помощью локального сертификата:

Вам необходимо использовать Connect- ExchangeOnline с CertificateFilePath и другими необходимыми параметрами. Этот метод поддерживает неинтерактивные сценарии через Remote PowerShell с использованием проверки подлинности на основе сертификатов.

Connect-ExchangeOnline -CertificateFilePath «C: \ Users \ admin \ Desktop \ automation-cert.pfx» -AppID «Testing App» -Organization «contoso.onmicrosoft.com»

Connect-ExchangeOnline -CertificateFilePath «C: \ Users \ admin \ Desktop \ automation-cert.pfx» -AppID «Testing App» -Organization «contoso.onmicrosoft.com»

Подключиться к Exchange Online PowerShell с помощью отпечатка сертификата:

Чтобы использовать отпечаток сертификата, необходимо использовать Connect- ExchangeOnline с параметром CertificateThumbPrint .

Connect-ExchangeOnline -CertificateThumbPrint «TESTINGTHUMBPRINT» -AppID «Testing & nbsp; Aoo» -Organization «contoso.onmicrosoft.com»

Connect-ExchangeOnline -CertificateThumbPrint «TESTINGTHUMBPRINT» -AppID «Testing & nbsp; Aoo» -Organization «contoso. onmicrosoft.com»

При использовании параметра CertificateThumbPrint сертификат должен быть установлен на компьютер, на котором выполняется команда.Сертификат должен быть установлен в хранилище сертификатов пользователя.

Подключиться к Exchange Online PowerShell с существующим субъектом службы и секретом клиента:

Чтобы подключиться к Exchange в режиме онлайн с существующим субъектом службы и секретом клиента, необходимо выполнить следующие действия.

Шаг 1. Получите маркер доступа OAuth с помощью библиотеки проверки подлинности Active Directory (ADAL) PowerShell.

Шаг 2: Создайте объект PSCredential

$ AppCredential = Система новых объектов.Management.Automation.PSCredential (, )

$ AppCredential = Новый объект System.Management.Automation.PSCredential (, )

Шаг 3: Передайте PSCredential модулю EXO V2.

Подключить-ExchangeOnline -Credential $ AppCredential

Connect-ExchangeOnline -Credential $ AppCredential

Чтобы настроить аутентификацию только для приложений, следуйте этому документу Microsoft.

Эта функция является ценным дополнением к модулю EXO V2 PowerShell. Он помогает пользователям создавать неинтерактивные сценарии PowerShell и подключаться к Exchange Online PowerShell с проверкой подлинности только для приложений. Вы начали обновлять существующие сценарии PowerShell, чтобы использовать этот новый метод? Поделитесь своим опытом с другими администраторами и с нами.