OrderService.placeOrder - No method matching arguments

Hi,

I have a product set up with 2 subscription plans (monthly and annual) in Infusionsoft. I have created a CreditCard entry for the contact using the API. I am trying to use the API to now associate the contact with the product and one of subscription plans. I believe the API method I need is OrderService.placeOrder. However I am getting an error using the Python SDK.

Request:

OrderService.placeOrder

Code:

infusionsoft.OrderService('placeOrder',120197, 4349, 9, [71])

Error:

(‘ERROR’, <Fault 0: ‘No method matching arguments: java.lang.String, java.lang.Integer, java.lang.Integer, java.lang.Integer, [Ljava.lang.Object;’>)

Hello Barney. I believe the issue is that the OrderService takes two parameters where the second is a set of a key value pairs. Does it work for you if you format similar to the example from the documentation? (fill in the empty strings below with your real values)

args = {“contactID” : “”, “cardID” : “”, “planID” : “”, “productIDs” : “”, “subscriptionIDs” : “”, “processSpecials” : “”, “promoCodes” : “”, “leadAffiliateID” : “”, “saleAffiliateID” : “”}

infusionsoft.OrderService(placeOrder, args)
06 AM

Hi,

No, for me the keyvalue pairs was not working, but the args placed in positional args worked for me

print(infusionsoft.OrderService('placeOrder', 120197, 4357, 0, [71], [9], False, [], 0, 0))

I realised everything had to be provided. Including the last 2 params. I hope setting to 0 is a sensible way of setting a Null value? I believe None is not allowed in XML RPC?

As I mentioned, I was able to place the order correctly. I saw on the contact that the order and subscription is there. Just to be clear, infusionsoft does not charge them immediately?

I got the following message returned

{'Message': 'None', 'OrderId': '7333', 'InvoiceId': '7333', 'Successful': 'false', 'Code': 'None', 'RefNum': 'None'}

Is there a reason Successful would be false?