{"id":372188,"date":"2026-09-25T19:18:17","date_gmt":"2026-09-25T19:18:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/aparimitlabs-dpo-pay-for-woocommerce\/"},"modified":"2026-09-25T19:18:03","modified_gmt":"2026-09-25T19:18:03","slug":"aparimitlabs-payment-gateway-dpo","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/aparimitlabs-payment-gateway-dpo\/","author":23527608,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.2","requires":"6.5","requires_php":"8.2","requires_plugins":null,"header_name":"AparimitLabs Payment Gateway for DPO Pay","header_author":"Aparimit Labs","header_description":"Integrates DPO Pay as a WooCommerce payment gateway with hosted payment pages, VerifyToken reconciliation, and a full transaction log.","assets_banners_color":"365162","last_updated":"2026-09-25 19:18:03","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/aparimitlabs\/aparimitlabs-payment-gateway-dpo","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":46,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"aparimitlabs","date":"2026-09-25 19:18:03","revision":3713480}},"upgrade_notice":{"1.0.0":"<p>Initial release of AparimitLabs Payment Gateway for DPO Pay.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":3713464,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3713464,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3713464,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3713464,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3713464,"resolution":"1","location":"assets","locale":"","width":1353,"height":510},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3713464,"resolution":"2","location":"assets","locale":"","width":1354,"height":501},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3713464,"resolution":"3","location":"assets","locale":"","width":898,"height":563},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3713464,"resolution":"4","location":"assets","locale":"","width":980,"height":645},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3713464,"resolution":"5","location":"assets","locale":"","width":1349,"height":482},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3713464,"resolution":"6","location":"assets","locale":"","width":1365,"height":563}},"screenshots":{"1":"WooCommerce Payment Gateways settings page showing DPO Pay installed and active.","2":"DPO Pay gateway settings panel \u2014 environment selector, Company Token, and Service Type configuration.","3":"WooCommerce checkout with DPO Pay as the selected payment method.","4":"The DPO Pay secure hosted payment page.","5":"WooCommerce \"Order received\" confirmation page after successful payment.","6":"Order detail page showing DPO Pay transaction token and VerifyToken result note after payment."}},"plugin_section":[],"plugin_tags":[32976,128909,249334,6593,286],"plugin_category":[45],"plugin_contributors":[278917],"plugin_business_model":[],"class_list":["post-372188","plugin","type-plugin","status-publish","hentry","plugin_tags-africa","plugin_tags-direct-pay-online","plugin_tags-dpo-pay","plugin_tags-payment-gateway","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-aparimitlabs","plugin_committers-aparimitlabs"],"banners":{"banner":"https:\/\/ps.w.org\/aparimitlabs-payment-gateway-dpo\/assets\/banner-772x250.jpg?rev=3713464","banner_2x":"https:\/\/ps.w.org\/aparimitlabs-payment-gateway-dpo\/assets\/banner-1544x500.jpg?rev=3713464","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/aparimitlabs-payment-gateway-dpo\/assets\/icon-128x128.jpg?rev=3713464","icon_2x":"https:\/\/ps.w.org\/aparimitlabs-payment-gateway-dpo\/assets\/icon-256x256.jpg?rev=3713464","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/aparimitlabs-payment-gateway-dpo\/assets\/screenshot-1.png?rev=3713464","caption":"WooCommerce Payment Gateways settings page showing DPO Pay installed and active."},{"src":"https:\/\/ps.w.org\/aparimitlabs-payment-gateway-dpo\/assets\/screenshot-2.png?rev=3713464","caption":"DPO Pay gateway settings panel \u2014 environment selector, Company Token, and Service Type configuration."},{"src":"https:\/\/ps.w.org\/aparimitlabs-payment-gateway-dpo\/assets\/screenshot-3.png?rev=3713464","caption":"WooCommerce checkout with DPO Pay as the selected payment method."},{"src":"https:\/\/ps.w.org\/aparimitlabs-payment-gateway-dpo\/assets\/screenshot-4.png?rev=3713464","caption":"The DPO Pay secure hosted payment page."},{"src":"https:\/\/ps.w.org\/aparimitlabs-payment-gateway-dpo\/assets\/screenshot-5.png?rev=3713464","caption":"WooCommerce \"Order received\" confirmation page after successful payment."},{"src":"https:\/\/ps.w.org\/aparimitlabs-payment-gateway-dpo\/assets\/screenshot-6.png?rev=3713464","caption":"Order detail page showing DPO Pay transaction token and VerifyToken result note after payment."}],"raw_content":"<!--section=description-->\n<p>AparimitLabs Payment Gateway for DPO Pay is a production-grade payment gateway that integrates DPO Pay (Direct Pay Online) \u2014 the leading payment service provider across Africa and the Middle East \u2014 into your WooCommerce store.<\/p>\n\n<p>GitHub Repository: https:\/\/github.com\/aparimitlabs\/aparimitlabs-payment-gateway-dpo<\/p>\n\n<p>The integration follows DPO Pay's recommended Option A flow: CreateToken \u2192 Hosted Payment Page \u2192 VerifyToken. All API communication is XML-over-HTTP using WordPress's native <code>wp_remote_post()<\/code> function.<\/p>\n\n<p>Built following strict Aparimitlabs architectural standards: PSR-4 autoloading, HPOS (High-Performance Order Storage) compatibility, a dedicated transaction log table, and zero raw cURL dependencies.<\/p>\n\n<h4>Payment Flow<\/h4>\n\n<ol>\n<li>Customer selects DPO Pay at checkout (fully compatible with WooCommerce Blocks) and clicks Place Order.<\/li>\n<li>The plugin calls <code>createToken<\/code> on the DPO API to generate a secure transaction token.<\/li>\n<li>Customer is redirected to DPO Pay's hosted payment page (<code>payv3.php?ID={token}<\/code>).<\/li>\n<li>Customer completes payment on DPO's PCI-DSS secure hosted environment.<\/li>\n<li><strong>Primary:<\/strong> DPO redirects the customer back to your store. The plugin calls <code>verifyToken<\/code> to confirm payment status before completing the order.<\/li>\n<li><strong>Fallback (PTN):<\/strong> If the customer closes their browser, DPO sends a background XML Webhook ping to the plugin, which independently verifies the token and marks the order paid.<\/li>\n<\/ol>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>WooCommerce Blocks Ready:<\/strong> Fully integrated with the modern WooCommerce Blocks checkout experience.<\/li>\n<li><strong>DPO Pay Hosted Payment Pages:<\/strong> Customer payment data is entered on DPO's PCI-DSS certified hosted page \u2014 no card data passes through your server.<\/li>\n<li><strong>Background Webhook (PTN) Support:<\/strong> Orders are guaranteed to update to \"Processing\" in the background even if the customer closes their browser before returning to your site.<\/li>\n<li><strong>VerifyToken Reconciliation:<\/strong> Every returning customer session and webhook ping is independently verified against the DPO API before the WooCommerce order is marked complete, preventing spoofing.<\/li>\n<li><strong>Sandbox &amp; Live Environments:<\/strong> Switch between the DPO sandbox and live environment from the WooCommerce gateway settings panel.<\/li>\n<li><strong>API Request Logging:<\/strong> Built-in WooCommerce status logger for API requests and XML responses to aid troubleshooting.<\/li>\n<li><strong>Transaction Log Table:<\/strong> Every <code>createToken<\/code> and <code>verifyToken<\/code> result is persisted to a dedicated <code>wp_dpo_transactions<\/code> database table for reporting and auditing.<\/li>\n<li><strong>HPOS Compatible:<\/strong> Explicitly declares High-Performance Order Storage compatibility.<\/li>\n<li><strong>WordPress HTTP API Only:<\/strong> All outbound HTTP communication uses <code>wp_remote_post()<\/code>. No raw cURL.<\/li>\n<\/ul>\n\n<h3>Third-Party Services<\/h3>\n\n<p>This plugin connects to the <strong>DPO Pay API<\/strong> to initiate and verify payments on behalf of the store owner and their customers. Use of this plugin constitutes acceptance of DPO Pay's Terms and Conditions.<\/p>\n\n<h4>DPO Pay (Direct Pay Online)<\/h4>\n\n<p><strong>What it is:<\/strong> DPO Pay is a payment service provider operating across Africa and the Middle East, supporting cards, mobile money, and other local payment methods.<\/p>\n\n<p><strong>When a connection is made:<\/strong> A connection to DPO Pay's servers is established in two stages:\n1. During checkout when a customer places an order (<code>createToken<\/code> API call \u2014 server-to-server).\n2. When the customer returns from the DPO payment page (<code>verifyToken<\/code> API call \u2014 server-to-server).<\/p>\n\n<p>No connection is made during page browsing or admin dashboard loads.<\/p>\n\n<p><strong>Data transmitted to DPO Pay:<\/strong>\n- Your DPO Pay Company Token (in the XML request body for authentication).\n- Your Service Type ID.\n- The order total amount and currency.\n- The WooCommerce order ID (as CompanyRef).\n- The redirect and back URLs.\n- A payment description string (e.g. \"Order #123\").<\/p>\n\n<p><strong>No customer personal data<\/strong> (name, email, address, card numbers) is transmitted by this plugin. DPO Pay independently collects payment data on their hosted page under their own Privacy Policy.<\/p>\n\n<p><strong>API Endpoints used:<\/strong>\n- API Base URL (Live &amp; Sandbox): <code>https:\/\/secure.3gdirectpay.com\/API\/v6\/<\/code>\n- Payment Page URL (Live &amp; Sandbox): <code>https:\/\/secure.3gdirectpay.com\/payv3.php?ID={token}<\/code><\/p>\n\n<p><strong>DPO Pay Service Links:<\/strong>\n- <a href=\"https:\/\/dpopay.com\/\">Website<\/a>\n- <a href=\"https:\/\/docs.dpopay.com\/dpo-pay-by-network\/reference\/quick-start-guide\">API Documentation<\/a>\n- <a href=\"https:\/\/portal.dpopay.com\/\">Merchant Portal<\/a>\n- <a href=\"https:\/\/dpopay.com\/terms-and-conditions\/\">Terms and Conditions<\/a>\n- <a href=\"https:\/\/dpopay.com\/privacy-policy\/\">Privacy Policy<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>aparimitlabs-payment-gateway-dpo<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install directly via <strong>Plugins &gt; Add New<\/strong>.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Navigate to <strong>WooCommerce &gt; Settings &gt; Payments<\/strong> and click <strong>Manage<\/strong> next to <em>DPO Pay<\/em>.<\/li>\n<li>Select your environment (Sandbox or Live), enter your <strong>Company Token<\/strong> and <strong>Service Type<\/strong>, and save.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20get%20my%20dpo%20pay%20company%20token%3F\"><h3>Where do I get my DPO Pay Company Token?<\/h3><\/dt>\n<dd><p>Log in to your DPO Pay merchant portal at https:\/\/portal.dpopay.com, navigate to your account settings, and copy your Company Token. It is a UUID in the format <code>XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX<\/code>.<\/p><\/dd>\n<dt id=\"what%20is%20the%20service%20type%3F\"><h3>What is the Service Type?<\/h3><\/dt>\n<dd><p>The Service Type is a numeric ID assigned by DPO Pay that identifies the category of goods or services you sell. It is provided to you by DPO Pay when your account is set up (e.g., 54841 for Test Product in the sandbox environment).<\/p><\/dd>\n<dt id=\"how%20do%20i%20test%20the%20integration%3F\"><h3>How do I test the integration?<\/h3><\/dt>\n<dd><p>Set Environment to Sandbox and use one of the DPO Pay sandbox Company Tokens and Service Types provided in your DPO support credentials. The plugin automatically routes both live and sandbox transactions to the correct <code>secure.3gdirectpay.com<\/code> endpoint based on your token.<\/p><\/dd>\n<dt id=\"is%20this%20compatible%20with%20woocommerce%20hpos%3F\"><h3>Is this compatible with WooCommerce HPOS?<\/h3><\/dt>\n<dd><p>Yes. The plugin explicitly declares HPOS compatibility and uses <code>wc_get_order()<\/code>, <code>$order-&gt;update_meta_data()<\/code>, and <code>$order-&gt;payment_complete()<\/code> throughout.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20the%20customer%20closes%20the%20browser%20on%20the%20dpo%20payment%20page%3F\"><h3>What happens if the customer closes the browser on the DPO payment page?<\/h3><\/dt>\n<dd><p>Don't worry! The plugin implements DPO Pay's Payment Token Notification (PTN) Webhook. DPO Pay will secretly ping your WooCommerce store in the background the moment the payment succeeds, and the plugin will automatically update the order status to Processing.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20store%20card%20numbers%20or%20payment%20credentials%3F\"><h3>Does this plugin store card numbers or payment credentials?<\/h3><\/dt>\n<dd><p>No. All card and wallet data is entered and stored on DPO Pay's PCI-DSS certified hosted environment. This plugin only stores the DPO transaction token, order amount, currency, result code, and status in the local <code>wp_dpo_transactions<\/code> table.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release. Fully compliance-checked with Aparimitlabs architectural standards.<\/li>\n<li>PSR-4 autoloader, HPOS compatibility, dedicated transaction log table, CreateToken + VerifyToken flow.<\/li>\n<li>Full WooCommerce Blocks checkout integration.<\/li>\n<li>Payment Token Notification (PTN) Webhook support.<\/li>\n<\/ul>","raw_excerpt":"Integrates DPO Pay as a WooCommerce payment gateway with hosted payment pages, VerifyToken reconciliation, and a full transaction log.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/372188","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=372188"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/aparimitlabs"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=372188"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=372188"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=372188"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=372188"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=372188"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=372188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}