<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Setting GetCustomerProfile's unmaskExpirationDate to true returns expirationDate &amp;quot;XXXX&amp;quot in Integration and Testing</title>
    <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/84962#M53472</link>
    <description>&lt;P data-unlink="true"&gt;I'm using the similar account to attach with my affiliate program. Its easy to get payment from individual account. I tried it with my &lt;SPAN&gt;dispose it well website.&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Sun, 20 Nov 2022 15:02:59 GMT</pubDate>
    <dc:creator>ksjie33w</dc:creator>
    <dc:date>2022-11-20T15:02:59Z</dc:date>
    <item>
      <title>Setting GetCustomerProfile's unmaskExpirationDate to true returns expirationDate "XXXX".</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/57446#M32164</link>
      <description>&lt;P&gt;In sample-code-csharp-master.zip from 3/23/2017 5:14 PM setting GetCustomerProfile's unmaskExpirationDate to true returns expirationDate "XXXX".&amp;nbsp; Would Authorize.Net fix GetCustomerProfile so setting unmaskExpirationDate to true returns the actual expiration date?&amp;nbsp; The Authorize.NET\Utility\HttpXmlUtility.cs code in the if statement below returned unmasked expiration dates:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&amp;nbsp;if (type.FullName == "AuthorizeNet.APICore.getCustomerProfileRequest")&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;but the else code from sdk-dotnet-master.zip 3/23/2017 12:30 PM returned "XXXX", rather than expiration date.&amp;nbsp; The else code did not send &amp;lt;unmaskExpirationDate&amp;gt; to Authorize.Net in the webRequest.GetRequestStream().&amp;nbsp; See second code chunk below.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;  public ANetApiResponse Send(ANetApiRequest apiRequest) {
   //Authenticate it
   AuthenticateRequest(apiRequest);
   HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(_serviceUrl);
   webRequest.Method = "POST";
   webRequest.ContentType = "text/xml";
   webRequest.KeepAlive = true;
   //set the http connection timeout
   var httpConnectionTimeout = AuthorizeNet.Environment.getIntProperty(Constants.HttpConnectionTimeout);
   webRequest.Timeout = (httpConnectionTimeout != 0 ? httpConnectionTimeout : Constants.HttpConnectionDefaultTimeout);
   //set the time out to read/write from stream
   var httpReadWriteTimeout = AuthorizeNet.Environment.getIntProperty(Constants.HttpReadWriteTimeout);
   webRequest.ReadWriteTimeout = (httpReadWriteTimeout != 0 ? httpReadWriteTimeout : Constants.HttpReadWriteDefaultTimeout);
   // Serialize the request
   var type = apiRequest.GetType();
   if (type.FullName == "AuthorizeNet.APICore.getCustomerProfileRequest")
   {
    var req = (getCustomerProfileRequest)apiRequest;
    var s3 = "&amp;lt;?xml version=\"1.0\" encoding=\"utf-8\"?&amp;gt;&amp;lt;getCustomerProfileRequest xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "
     + "xmlns:xsd =\"http://www.w3.org/2001/XMLSchema\" xmlns=\"AnetApi/xml/v1/schema/AnetApiSchema.xsd\"&amp;gt;"
     + "&amp;lt;merchantAuthentication&amp;gt;&amp;lt;name&amp;gt;" + req.merchantAuthentication.name + "&amp;lt;/name&amp;gt;"
     + "&amp;lt;transactionKey&amp;gt;" + req.merchantAuthentication.Item + "&amp;lt;/transactionKey&amp;gt;&amp;lt;/merchantAuthentication&amp;gt;"
     + "&amp;lt;customerProfileId&amp;gt;" + req.customerProfileId + "&amp;lt;/customerProfileId&amp;gt;"
     + "&amp;lt;unmaskExpirationDate&amp;gt;" + (req.unmaskExpirationDate ? "true" : "false") + "&amp;lt;/unmaskExpirationDate&amp;gt;"
     + "&amp;lt;/getCustomerProfileRequest&amp;gt;";
    byte[] bytes = Encoding.UTF8.GetBytes(s3);
    webRequest.GetRequestStream().Write(bytes, 0, bytes.Length);
   }
   else
   {
    var serializer = new XmlSerializer(type);
    XmlWriter writer = new XmlTextWriter(webRequest.GetRequestStream(), Encoding.UTF8);
    serializer.Serialize(writer, apiRequest);
    writer.Close();
   }
   // Get the response
   WebResponse webResponse = webRequest.GetResponse();
   // Load the response from the API server into an XmlDocument.
   var xmlDoc = new XmlDocument();
   xmlDoc.Load(XmlReader.Create(webResponse.GetResponseStream(), new XmlReaderSettings()));

   var response = DecideResponse(xmlDoc);
   CheckForErrors(response, xmlDoc);
   return response;
  }&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can put the following code after var type = apiRequest.GetType(); to put apiRequest in a string.&lt;/P&gt;
&lt;PRE&gt;var type = apiRequest.GetType();
var serializer2 = new XmlSerializer(type);
MemoryStream memoryStream = new MemoryStream();
XmlWriter writer2 = new XmlTextWriter(memoryStream, Encoding.UTF8);
serializer2.Serialize(writer2, apiRequest);
memoryStream.Position = 0;
var streamReader = new StreamReader(memoryStream);
var s = streamReader.ReadToEnd();
streamReader.Dispose();
memoryStream.Dispose();&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 28 Mar 2017 18:25:20 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/57446#M32164</guid>
      <dc:creator>bobjones</dc:creator>
      <dc:date>2017-03-28T18:25:20Z</dc:date>
    </item>
    <item>
      <title>Re: Setting GetCustomerProfile's unmaskExpirationDate to true returns expirationDate "XXXX&amp;quot</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/57448#M32166</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/21460"&gt;@bobjones&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Can I ask you to clarify? Are you talking about the &lt;A href="https://github.com/AuthorizeNet/sample-code-csharp/blob/master/CustomerProfiles/GetCustomerProfile.cs" target="_self"&gt;GetCustomerProfile.cs sample&lt;/A&gt;?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Are you saying that if you add change the request code to send unmaskExpirationDate, the expiration date is still returned masked?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For reference, here's the section where you'd add code to send unmaskExpirationDate, starting at line 28:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;            var request = new getCustomerProfileRequest();
            request.customerProfileId = customerProfileId;
            request.unmaskExpirationDate = true;&lt;/PRE&gt;</description>
      <pubDate>Tue, 28 Mar 2017 18:35:49 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/57448#M32166</guid>
      <dc:creator>Aaron</dc:creator>
      <dc:date>2017-03-28T18:35:49Z</dc:date>
    </item>
    <item>
      <title>Re: Setting GetCustomerProfile's unmaskExpirationDate to true returns expirationDate "XXXX&amp;</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/57450#M32168</link>
      <description>&lt;P&gt;I tried 2 separate test cases: 1) from sample-code-csharp-master.zip and 2) from&amp;nbsp;sdk-dotnet-master.zip:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1) Correct, in&amp;nbsp;sample-code-csharp-master\CustomerProfiles\GetCustomerProfile.cs I changed&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&amp;nbsp;&amp;nbsp; var&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt; request = &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;new&lt;/FONT&gt; &lt;FONT color="#2b91af" face="Consolas" size="2"&gt;getCustomerProfileRequest&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;();&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.customerProfileId = customerProfileId;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;to&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;&amp;nbsp;&amp;nbsp; var&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt; request = &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;new&lt;/FONT&gt; &lt;FONT color="#2b91af" face="Consolas" size="2"&gt;getCustomerProfileRequest&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;();&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.customerProfileId = customerProfileId;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;request.unmaskExpirationDate = &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;true&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;Which returned profile.paymentProfiles[0].payment.item.expirationDate as "XXXX".&amp;nbsp; Though request.unmaskExpirationDate = &lt;FONT color="#0000ff" face="Consolas" size="2"&gt;true&lt;/FONT&gt;; should return unmasked dates like "2018-01"&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&lt;IMG width="803" height="681" alt="ExpirationDateXXXX" src="c:\t1\Authorize.Net.jpg" border="0" /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;2) In sdk-dotnet-master.zip Authorize.NET\Utility\HttpXmlUtility.cs&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&amp;nbsp;&amp;nbsp;public ANetApiResponse Send(ANetApiRequest apiRequest) {&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;...&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var type = apiRequest.GetType();&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var serializer = new XmlSerializer(type);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XmlWriter writer = new XmlTextWriter(webRequest.GetRequestStream(), Encoding.UTF8);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;serializer.Serialize(writer, apiRequest);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;writer.Close();&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;is not putting&amp;nbsp;&amp;lt;unmaskExpirationDate&amp;gt;true&amp;lt;/unmaskExpirationDate&amp;gt; in serialized version of the apiRequest.&amp;nbsp; Perhaps the Authorize.NET\Api\Contracts\V1\AnetApiSchema.generated.cs serialization code has an error, though I didn't spot the error:&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;[System.CodeDom.Compiler.&lt;/FONT&gt;&lt;FONT color="#2b91af" face="Consolas" size="2"&gt;GeneratedCodeAttribute&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;(&lt;/FONT&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;"xsd"&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;, &lt;/FONT&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;"2.0.50727.3038"&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;)]&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;[System.&lt;/FONT&gt;&lt;FONT color="#2b91af" face="Consolas" size="2"&gt;SerializableAttribute&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;()]&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;[System.Diagnostics.&lt;/FONT&gt;&lt;FONT color="#2b91af" face="Consolas" size="2"&gt;DebuggerStepThroughAttribute&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;()]&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;[System.ComponentModel.&lt;/FONT&gt;&lt;FONT color="#2b91af" face="Consolas" size="2"&gt;DesignerCategoryAttribute&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;(&lt;/FONT&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;"code"&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;)]&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;[System.Xml.Serialization.&lt;/FONT&gt;&lt;FONT color="#2b91af" face="Consolas" size="2"&gt;XmlTypeAttribute&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;(AnonymousType=&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;true&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;, Namespace=&lt;/FONT&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;"AnetApi/xml/v1/schema/AnetApiSchema.xsd"&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;)]&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;[System.Xml.Serialization.&lt;/FONT&gt;&lt;FONT color="#2b91af" face="Consolas" size="2"&gt;XmlRootAttribute&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;(Namespace=&lt;/FONT&gt;&lt;FONT color="#a31515" face="Consolas" size="2"&gt;"AnetApi/xml/v1/schema/AnetApiSchema.xsd"&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;, IsNullable=&lt;/FONT&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;false&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;)]&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;public&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Consolas" size="2"&gt;partial&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Consolas" size="2"&gt;class&lt;/FONT&gt; &lt;FONT color="#2b91af" face="Consolas" size="2"&gt;getCustomerProfileRequest&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt; : &lt;/FONT&gt;&lt;FONT color="#2b91af" face="Consolas" size="2"&gt;ANetApiRequest&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt; {&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#808080" face="Consolas" size="2"&gt;///&lt;/FONT&gt; &lt;FONT color="#808080" face="Consolas" size="2"&gt;&amp;lt;remarks/&amp;gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;public&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Consolas" size="2"&gt;string&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt; customerProfileId;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#808080" face="Consolas" size="2"&gt;///&lt;/FONT&gt; &lt;FONT color="#808080" face="Consolas" size="2"&gt;&amp;lt;remarks/&amp;gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;public&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Consolas" size="2"&gt;bool&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt; unmaskExpirationDate;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#808080" face="Consolas" size="2"&gt;///&lt;/FONT&gt; &lt;FONT color="#808080" face="Consolas" size="2"&gt;&amp;lt;remarks/&amp;gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;[System.Xml.Serialization.&lt;/FONT&gt;&lt;FONT color="#2b91af" face="Consolas" size="2"&gt;XmlIgnoreAttribute&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt;()]&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Consolas" size="2"&gt;public&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Consolas" size="2"&gt;bool&lt;/FONT&gt;&lt;FONT face="Consolas" size="2"&gt; unmaskExpirationDateSpecified;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;The following code after var type = apiRequest.GetType(); to put apiRequest in a string.&lt;BR /&gt;var type = apiRequest.GetType();&lt;BR /&gt;var serializer2 = new XmlSerializer(type);&lt;BR /&gt;MemoryStream memoryStream = new MemoryStream();&lt;BR /&gt;XmlWriter writer2 = new XmlTextWriter(memoryStream, Encoding.UTF8);&lt;BR /&gt;serializer2.Serialize(writer2, apiRequest);&lt;BR /&gt;memoryStream.Position = 0;&lt;BR /&gt;var streamReader = new StreamReader(memoryStream);&lt;BR /&gt;var s = streamReader.ReadToEnd();&lt;BR /&gt;streamReader.Dispose();&lt;BR /&gt;memoryStream.Dispose();&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;var s contains the following, which is missing &amp;lt;unmaskExpirationDate&amp;gt;true&amp;lt;/unmaskExpirationDate&amp;gt;: &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&amp;lt;?xml version=\"1.0\" encoding=\"utf-8\"?&amp;gt;&amp;lt;getCustomerProfileRequest xmlns:xsi=\"&lt;A href="http://www.w3.org/2001/XMLSchema-instance\" target="_blank"&gt;http://www.w3.org/2001/XMLSchema-instance\&lt;/A&gt;" xmlns:xsd=\"&lt;A href="http://www.w3.org/2001/XMLSchema\" target="_blank"&gt;http://www.w3.org/2001/XMLSchema\&lt;/A&gt;" xmlns=\"AnetApi/xml/v1/schema/AnetApiSchema.xsd\"&amp;gt;&amp;lt;merchantAuthentication&amp;gt;&amp;lt;name&amp;gt;xxxxxxxxxx&amp;lt;/name&amp;gt;&amp;lt;transactionKey&amp;gt;xxxxxxxxxxxxxxxx&amp;lt;/transactionKey&amp;gt;&amp;lt;/merchantAuthentication&amp;gt;&amp;lt;customerProfileId&amp;gt;nnnnnnnnnn&amp;lt;/customerProfileId&amp;gt;&amp;lt;/getCustomerProfileRequest&amp;gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;rather than the following&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Consolas" size="2"&gt;&amp;lt;?xml version=\"1.0\" encoding=\"utf-8\"?&amp;gt;&amp;lt;getCustomerProfileRequest xmlns:xsi=\"&lt;A href="http://www.w3.org/2001/XMLSchema-instance\" target="_blank"&gt;http://www.w3.org/2001/XMLSchema-instance\&lt;/A&gt;" xmlns:xsd =\"&lt;A href="http://www.w3.org/2001/XMLSchema\" target="_blank"&gt;http://www.w3.org/2001/XMLSchema\&lt;/A&gt;" xmlns=\"AnetApi/xml/v1/schema/AnetApiSchema.xsd\"&amp;gt;&amp;lt;merchantAuthentication&amp;gt;&amp;lt;name&amp;gt;xxxxxxxxxx&amp;lt;/name&amp;gt;&amp;lt;transactionKey&amp;gt;xxxxxxxxxxxxxxxx&amp;lt;/transactionKey&amp;gt;&amp;lt;/merchantAuthentication&amp;gt;&amp;lt;customerProfileId&amp;gt;nnnnnnnnnn&amp;lt;/customerProfileId&amp;gt;&amp;lt;unmaskExpirationDate&amp;gt;true&amp;lt;/unmaskExpirationDate&amp;gt;&amp;lt;/getCustomerProfileRequest&amp;gt;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 28 Mar 2017 19:40:35 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/57450#M32168</guid>
      <dc:creator>bobjones</dc:creator>
      <dc:date>2017-03-28T19:40:35Z</dc:date>
    </item>
    <item>
      <title>Re: Setting GetCustomerProfile's unmaskExpirationDate to true returns expirationDate "XXXX&amp;</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/57451#M32169</link>
      <description>&lt;P&gt;Thanks,&amp;nbsp;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/21460"&gt;@bobjones&lt;/a&gt;. This is really helpful. We have code in the SDK to mask sensitive data for things like logging, and my initiatl thought was that this code was going nuts and masking things that shouldn't be masked. However, if it's really just never getting that parameter in the request, that would be another issue entirely.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'll go ahead and open an issue for &lt;A href="https://github.com/AuthorizeNet/sdk-dotnet" target="_self"&gt;the SDK on GitHub&lt;/A&gt;, so that the SDK developers can take a look at it and hopefully get it fixed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks again.&lt;/P&gt;</description>
      <pubDate>Tue, 28 Mar 2017 20:30:53 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/57451#M32169</guid>
      <dc:creator>Aaron</dc:creator>
      <dc:date>2017-03-28T20:30:53Z</dc:date>
    </item>
    <item>
      <title>Re: Setting GetCustomerProfile's unmaskExpirationDate to true returns expirationDate "XXXX&amp;</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/57452#M32170</link>
      <description>&lt;P&gt;Does Authorize.Net send me another email when the fix is on Github sdk-dotnet-master.zip and sample-code-csharp-master.zip?&amp;nbsp; I'd like to remove my custom XML in Authorize.NET\Utility\HttpXmlUtility.cs. This is my first Authorize.Net bug fix request.&lt;/P&gt;</description>
      <pubDate>Tue, 28 Mar 2017 20:44:21 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/57452#M32170</guid>
      <dc:creator>bobjones</dc:creator>
      <dc:date>2017-03-28T20:44:21Z</dc:date>
    </item>
    <item>
      <title>Re: Setting GetCustomerProfile's unmaskExpirationDate to true returns expirationDate "XXXX&amp;</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/57453#M32171</link>
      <description>&lt;P&gt;In your case, I would suggest going to the&amp;nbsp;&lt;A href="https://github.com/AuthorizeNet/sdk-dotnet" target="_self"&gt;.Net SDK repository&lt;/A&gt;&amp;nbsp;and the &lt;A href="https://github.com/AuthorizeNet/sample-code-csharp" target="_self"&gt;C# sample code repository&lt;/A&gt; on GitHub, then clicking the "Watch" button on the upper right of each page. That would subscribe you to notifications for each repository so that when something is changed, you'll get an email.&lt;/P&gt;</description>
      <pubDate>Tue, 28 Mar 2017 20:54:34 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/57453#M32171</guid>
      <dc:creator>Aaron</dc:creator>
      <dc:date>2017-03-28T20:54:34Z</dc:date>
    </item>
    <item>
      <title>Re: Setting GetCustomerProfile's unmaskExpirationDate to true returns expirationDate "XXXX&amp;</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/57530#M32244</link>
      <description>&lt;P&gt;Are SDK code releases done quarterly?&lt;BR /&gt;How about adding a Message to "Setting GetCustomerProfile's unmaskExpirationDate to true returns expirationDate XXXX" to send me an email when it is fixed?&amp;nbsp; The email would be more convenient to me than searching github entries like "Merge pull request #164 from AuthorizeNet/future", &lt;A href="https://github.com/AuthorizeNet/sdk-dotnet/pull/164.&amp;nbsp;" target="_blank"&gt;https://github.com/AuthorizeNet/sdk-dotnet/pull/164.&amp;nbsp;&lt;/A&gt; Though I don't know if Authorize.Net's bug tracking capabilities allow such a response.&lt;/P&gt;&lt;P&gt;I checked the Post's Subscriptions, "Email me when someone replies".&lt;/P&gt;</description>
      <pubDate>Wed, 05 Apr 2017 13:57:43 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/57530#M32244</guid>
      <dc:creator>bobjones</dc:creator>
      <dc:date>2017-04-05T13:57:43Z</dc:date>
    </item>
    <item>
      <title>Re: Setting GetCustomerProfile's unmaskExpirationDate to true returns expirationDate "XXXX&amp;</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/57542#M32253</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/21460"&gt;@bobjones&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I can try, but I can't guarantee anything. If this is fixed in a future&amp;nbsp;SDK release, then:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;I have to know the SDK is updated (highly likely)&lt;/LI&gt;
&lt;LI&gt;I have to know the fix is in that update (slightly less likely, depending on whether that's specifically called out in any release note or notes on a commit, or whether the issue on GitHub is marked closed at that time. Those things should all be happening, but, developers...)&lt;/LI&gt;
&lt;LI&gt;Once I see that the fix happened, I have to remember "Oh, there's a user&amp;nbsp;&lt;a href="https://community.developer.cybersource.com/t5/user/viewprofilepage/user-id/21460"&gt;@bobjones&lt;/a&gt;&amp;nbsp;who wanted me to post a message in the forums so that he can be notified that the bug is fixed" (likelihood of me remembering that ranges from highly likely to zilch depending on how much time has passed, what day of the week it is, what time of day, how much caffeine I've had that day, what other things I've been tasked at remembering at that time, whether or not my kids woke me up the night before, etc).&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;In short, I'm human and tasking a human with what should be an automated process is potentially troublesome. We don't have any way in our internal bug tracking to automatically email an external party when something's fixed. However, that's why we use GitHub for our SDK development. Since everything happens in the open out there, it's a lot easier for someone to see what happens and when.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;GitHub doesn't seem to have a way to just subscribe to a particular issue to get updates on it, but if you&amp;nbsp;&lt;EM&gt;comment&lt;/EM&gt; on the issue, then you're recorded as being involved, so you can get notifications of any update to that issue itself. That way, you don't have to be notified of all commits or changes if you don't want to.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Your issue is at&amp;nbsp;&lt;A href="https://github.com/AuthorizeNet/sdk-dotnet/issues/169" target="_blank"&gt;https://github.com/AuthorizeNet/sdk-dotnet/issues/169&lt;/A&gt; if you'd like to comment on that to get notifications.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sorry we don't have an easier way to track what you've reported. I still really appreciate that you took the time to report this, and wish I had a better way to keep you in the loop.&lt;/P&gt;</description>
      <pubDate>Wed, 05 Apr 2017 18:08:05 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/57542#M32253</guid>
      <dc:creator>Aaron</dc:creator>
      <dc:date>2017-04-05T18:08:05Z</dc:date>
    </item>
    <item>
      <title>YOU WON'T BELIEVE HOW I GOT UNMASKED EXPIRATION DATES TO WORK</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/58219#M32887</link>
      <description>&lt;P&gt;&amp;nbsp;I've been waiting for this feature for YEARS and gave up several times in the past.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now I see that the SOAP API is deprecated I finally made the push over to the AuthorizeNET nuget package for .NET.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My first attempt returned XXXX-XX for the expiration date, then I made one small change and now finally I get back "2017-01" for the expiration date via this request.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;var request = new getCustomerProfileRequest&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; &amp;nbsp;customerProfileId = "1506932163",&lt;BR /&gt;&amp;nbsp; &amp;nbsp;unmaskExpirationDate = true,&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp; &amp;nbsp;unmaskExpirationDateSpecified = true &amp;nbsp; // yes this is dumb but it works&lt;/STRONG&gt;&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;var controller = new getCustomerProfileController(request);&lt;BR /&gt;controller.Execute();&lt;/P&gt;&lt;P&gt;var response = controller.GetApiResponse();&lt;/P&gt;&lt;P&gt;string expirationDate =&amp;nbsp;(response.profile.paymentProfiles.First().payment.Item as creditCardMaskedType).expirationDate;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;WOOHOO!!!! &amp;nbsp; expirationDate == "2017-01"&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 25 May 2017 04:58:30 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/58219#M32887</guid>
      <dc:creator>simeyla</dc:creator>
      <dc:date>2017-05-25T04:58:30Z</dc:date>
    </item>
    <item>
      <title>Re: Setting GetCustomerProfile's unmaskExpirationDate to true returns expirationDate "XXXX&amp;quot</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/84962#M53472</link>
      <description>&lt;P data-unlink="true"&gt;I'm using the similar account to attach with my affiliate program. Its easy to get payment from individual account. I tried it with my &lt;SPAN&gt;dispose it well website.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 20 Nov 2022 15:02:59 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/84962#M53472</guid>
      <dc:creator>ksjie33w</dc:creator>
      <dc:date>2022-11-20T15:02:59Z</dc:date>
    </item>
    <item>
      <title>Re: Setting GetCustomerProfile's unmaskExpirationDate to true returns expirationDate "XXXX&amp;quot</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/94588#M58503</link>
      <description>&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;P&gt;Looks like the SDK update broke how unmaskExpirationDate works, getting “XXXX” instead of the real date is definitely frustrating. I was checking this while working on &lt;A href="https://calmandcolor.com/" target="_self"&gt;some Kids colouring pages stuff&lt;/A&gt;, and honestly these kinds of glitches slow everything down.&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Mon, 24 Nov 2025 14:54:12 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/94588#M58503</guid>
      <dc:creator>johnjones321</dc:creator>
      <dc:date>2025-11-24T14:54:12Z</dc:date>
    </item>
    <item>
      <title>Re: Setting GetCustomerProfile's unmaskExpirationDate to true returns expirationDate "XXXX&amp;quot</title>
      <link>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/94589#M58504</link>
      <description>&lt;P&gt;Looks like the SDK update broke how unmaskExpirationDate works, getting “XXXX” instead of the real date is definitely frustrating. I was checking this while working on &lt;A href="https://calmandcolor.com/" target="_self"&gt;some Kids colouring pages stuff&lt;/A&gt;, and honestly these kinds of glitches slow everything down.&lt;/P&gt;</description>
      <pubDate>Mon, 24 Nov 2025 14:58:03 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/Integration-and-Testing/Setting-GetCustomerProfile-s-unmaskExpirationDate-to-true/m-p/94589#M58504</guid>
      <dc:creator>johnjones321</dc:creator>
      <dc:date>2025-11-24T14:58:03Z</dc:date>
    </item>
  </channel>
</rss>

