Legacy RPC affCommissions gone?

The IO docs still show APIAffiliateService but apparently that table is no longer available to query?

Hi @Steven_Gauerke, the APIAffiliateService.affCommissions XML-RPC call is still available for use. Is there a specific error that you’re seeing that we could help you with?

Using the Legacy I/O you can get this error.

<?xml version="1.0" encoding="UTF-8"?> faultCode 0 faultString No method matching arguments: java.lang.String, java.lang.Integer, java.lang.String, java.lang.String

It’s more important to show the code you are using. The error only says so much but the code will be much clearer. Normally this error comes up as a parameter mis match because some try to place the api key in the call where it isn’t necessary but it could also just be a variable that needs to be typecast etc

I’m using NovakSoultions PHP wrapper and here is my code:

$app = new Infusionsoft_App($infusionsoft_host, $infusionsoft_api_key);
Infusionsoft_AppPool::addApp($app);

$aff = new Infusionsoft_APIAffiliateService();
$commissions = $aff->affCommissions($affiliateId, $filterStartDate, $filterEndDate, $app);

However, I get the same issue when I try to run the Try It on:

https://keys.developer.infusionsoft.com/io-docs

For affClawbacks, affCommissions, etc. Basically anything that uses the APIAffiliateService

Here’s the link to the php code:

PHP Fatal error: Uncaught No method matching arguments: java.lang.String, java.lang.Integer, java.lang.String, java.lang.String\nAttempted: 1 time(s).\n thrown in /includes/Infusionsoft/App.php on line 157

Hey Steven,

I’m not seeing an issue pulling commissions, also using our Novak Solutions PHP SDK.

Usually when Infusionsoft throws that “no method matching arguments” junk message, it means that you either left off a parameter or sent a parameter in the wrong format.

The commissions call is fairly simple, and you have all the necessary parameters in the small code sample you posted. My guess is that your dates are not formatted correctly and the API is breaking trying to handle the dates. Can you make sure that your dates are in the correct format (Y-m-dTH:i:s) and post the results?

@Steven_Gauerke I’m sorry that you’re having this issue. It appears that IO Docs are incorrectly formatting the date fields for this call. If I manually change the date parameters in the XML request body to be in this format <dateTime.iso8601>20170801T00:00:00</dateTime.iso8601>, I am able to successfully call the endpoint in IO Docs.

@Jordan_Novak is correct in that your date formatting is most likely off. I’m not familiar with the Novak Solutions PHP SDK but if you’re able to format your dates like I did in my example above you should be good.

Thanks guys. I’ll check my formatting.

Uncaught No method matching arguments: java.lang.String, java.lang.Integer, java.lang.String, java.lang.String\nAttempted: 1 time(s).

The error is asking for String, Integer, String, String but the Novak call only pushes 3.

public static function affCommissions($affiliateId, $filterStartDate, $filterEndDate, Infusionsoft_App 
$app = null){
        $params = array(
            (int) $affiliateId, 
            $filterStartDate, 
            $filterEndDate
        );

        return parent::send($app, "APIAffiliateService.affCommissions", $params, null, true);
    }

I’m passing

Array ( [0] => 83 [1] => 2017-09-1T00:00:00 [2] => 2017-09-30T23:59:59 )

The final string the API calls for is authentication related and the SDK adds it on before the call goes out.

The dates are formatted right, but any debug output that you would be copying from should have enclosed the dates in quotes, odd that it didn’t.

Here’s an example call that I made today testing this that worked without an issue.
$result = Infusionsoft_APIAffiliateService::affCommissions(45, “20110701T00:00:00”, “20170924T23:59:59”);

1 Like