Hello,
I would like to update a subscription's expiration date and billing info. These are the ONLY fields I need to update. When I create my request using the C# API:
var subscriptionType = new ARBSubscriptionType
{
billTo = addressInfo,
payment = cc
};
var request = new ARBUpdateSubscriptionRequest
{
subscription = subscriptionType,
subscriptionId = updateModel.AuthNetSubId.ToString()
};
var controller = new ARBUpdateSubscriptionController(request);
controller.Execute();
var xml = AuthorizeNet.Util.XmlUtility.GetXml(request);
var response = controller.GetApiResponse();I get the following error message via the controller's error messages:
Even though I did NOT specify an amount, when I view the XML, I get the following:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<ARBUpdateSubscriptionRequest
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"
xmlns=\"AnetApi/xml/v1/schema/AnetApiSchema.xsd\">
<merchantAuthentication>
<name>6Cr7vYe4LM</name>
<transactionKey>4N62cdy6Zn92DK7F</transactionKey>
</merchantAuthentication>
<subscriptionId>3044281</subscriptionId>
<subscription>
<amount>0</amount>
<trialAmount>0</trialAmount>
<payment>
<creditCard>
<cardNumber>4111111111111111</cardNumber>
<expirationDate>1017</expirationDate>
</creditCard>
</payment>
<billTo>
<firstName>SomeFirstName</firstName>
<lastName>SomeLastName</lastName>
<address>SomeAddress</address>
<city>SomeCity</city>
<zip>91234</zip>
</billTo>
</subscription>
</ARBUpdateSubscriptionRequest>As you can see, even though I did not specify an amount or trial amount, they are still showing up in the XML. I even tried setting:
request.subscription.amountSpecified = false; request.subscription.trialAmountSpecified = false;
It was my understanding, via reading the documentation and posts on this site, that during a subscription update, one only needed to include the fields that were changing. Is this no longer the case? Or am I doing something else incorrectly that's causing the error message above?
-K
12-30-2015 08:45 AM
I would just like to add that if I examine the request object BEFORE the controller.Execute() line, the amountSpecified and trialAmountSpecified are both false. They both change to true once the controller.Execute() line is run.
-K
12-30-2015 08:51 AM
add an issue at github
12-30-2015 09:14 AM
I submitted an issue here:
12-30-2015 10:04 AM