Problem

The Blockonomics plugin will automatically update the order status when a bitcoin payment sent by your customer is confirmed. This works in all our ecommerce plugins. This article addresses how to troubleshoot the issue if this is not happening for you



Diagnosis

To confirm the issue please check Merchant > Logs. If the callbacks are green with status 200, then everything is ok. If the status is in red, then that means you have this issue and  we cannot cannot send callbacks to your server. 


Solution


Please check if you any of the following apply to you. 


  1. You are using localhost or unreachable test server:  We cannot send callbacks to your localhost server. This is expected behaviour and is OK.
  2. You are getting SSLError in Merchants > Logs: If you site doesn't have an SSL certificate change the callback URL to start with http:// . If you site is SSL enabled, check validity of your SSL certificate. We don't support self signed certificates. If your site is shown SSL validated in browser, make sure intermediate certificates are not missing (This is because we use curl for callbacks) You can diagnose by testing your site on https://www.ssllabs.com/ssltest/

You have DDOS protection:  You need to identify the DDoS mechanism and do the following


CloudFare


Page Rule


Exclude callback URL path or similar callback pattern as shown in this article.

Cloudfare page rule for Wordpress Store
Cloudfare page rule for WHMCS Store


Update Firewall Rules to allow Blockonomics



If you have firewall rules you will also need to add the Blockonomics callback server [44.241.250.59] and BCH callback server [44.225.81.126] to be Allowed


Make sure that the new firewall rule is above any blocking rules:

WordFence/Others


If you are using any other DDOS protection mechanism you can whitelist the IP of our callback server [44.241.250.59] and BCH callback server [44.225.81.126]


EndNote

  1. After bypassing the DDOS protection, try to generate multiple test callbacks (Using Merchant > Logs) within a minute / less period and make sure if you get 200 status
  2. You have a programmed/custom API endpoint Make sure  the callback endpoint has no errors and returns clean with 200 HTTP status.