cancel
Showing results for 
Search instead for 
Did you mean: 

ANET Hosted Form PaymentProfile cannot be sent with billing data.

Using HOSTED PAYMENT FORM against the Production's environment we're receiving the following exception:

 

PaymentProfile cannot be sent with billing data.

 

This was working without hiccups against the sandbox.

 

Which could be the source of the issue.  We're seeing clearly that once presented the hosted form shows the available payment methods under the passed customer's profile.

 

Thanks in advance for any help that can be provided,

 

Gabe.

ggramajo
Contributor
25 REPLIES 25

@Anurag,

 

Please provide an update on the release date. Thank you.

 

Hello to anyone still watching this thread,

 

Anurag informed me that the fix for this problem is live in the sandbox. I ran a few tests, and it appears to work.

 

I don't know if it's in the production system yet.

 

Scott

 

Hmm. I seem to have become the conduit for information from ANET about this issue.

 

Anurag informed me that the API update containing the fix has been rolled back due to some minor issues. I've confirmed that the problem is indeed back.

 

He wrote, "Hopefully the team will be coming back for the release in a couple of weeks."

 

Scott

 

Thanks @scottnes1 :) 

 

I have been travelling so couldnt update on forum . 

 

Yes we will be  releasing it soon on the sandbox in the couple of weeks . I am waiting for the dev team to provide the new dates . 

 

Thanks

Anurag





Send feedback at developer_feedback@authorize.net

Hi Guys,

 

Im having the same issue

 

Im on sandbox Environment.

 

This is my configuration for get the token 

 settingType[] settings = new settingType[7];

            settings[0] = new settingType();
            settings[0].settingName = settingNameEnum.hostedPaymentButtonOptions.ToString();
            settings[0].settingValue = "{\"text\": \"Pay\"}";

            settings[1] = new settingType();
            settings[1].settingName = settingNameEnum.hostedPaymentOrderOptions.ToString();
            settings[1].settingValue = "{\"show\": true}";

            settings[2] = new settingType();
            settings[2].settingName = settingNameEnum.hostedPaymentPaymentOptions.ToString();
            settings[2].settingValue = "{\"cardCodeRequired\": false, \"showCreditCard\": true, \"showBankAccount\": false}";

            //hostedPaymentIFrameCommunicatorUrl
            settings[3] = new settingType();
            settings[3].settingName = settingNameEnum.hostedPaymentIFrameCommunicatorUrl.ToString();
            settings[3].settingValue = "{\"url\": \"https://localhost:44389/#/IFrameCommunicator\"}";

            //hostedPaymentReturnOptions
            settings[4] = new settingType();
            settings[4].settingName = settingNameEnum.hostedPaymentReturnOptions.ToString();
            settings[4].settingValue = "{\"showReceipt\": false, \"cancelUrl\": \"https://localhost:44389/#/IFrameCommunicator#action=cancel\", \"cancelUrlText\": \"Cancel\"}";

            settings[5] = new settingType();
            settings[5].settingName = settingNameEnum.hostedPaymentCustomerOptions.ToString();
            settings[5].settingValue = "{\"showEmail\": false, \"requiredEmail\": false, \"addPaymentProfile\": true}";

            settings[6] = new settingType();
            settings[6].settingName = settingNameEnum.hostedPaymentBillingAddressOptions.ToString();
            settings[6].settingValue = "{\"show\": false, \"required\": false}"

And this is how Im creating the user profile:

 

 Console.WriteLine("Create Customer Profile Sample");

            customerProfileType customerProfile = new customerProfileType();
            customerProfile.merchantCustomerId = "Test CustomerID";
            customerProfile.email = email;

            var request = new createCustomerProfileRequest { profile = customerProfile, validationMode = validationModeEnum.none };

            // instantiate the controller that will call the service
            var controller = new createCustomerProfileController(request);
            controller.Execute();

            // get the response from the service (errors contained if any)
            createCustomerProfileResponse response = controller.GetApiResponse();

            // validate response 
            if (response != null)
            {
                if (response.messages.resultCode == messageTypeEnum.Ok)
                {
                    if (response.messages.message != null)
                    {
                        Console.WriteLine("Success!");
                        Console.WriteLine("Customer Profile ID: " + response.customerProfileId);
                    }
                }
                else
                {
                    Console.WriteLine("Customer Profile Creation Failed.");
                    Console.WriteLine("Error Code: " + response.messages.message[0].code);
                    Console.WriteLine("Error message: " + response.messages.message[0].text);
                }
            }
            else
            {
                if (controller.GetErrorResponse().messages.message.Length > 0)
                {
                    Console.WriteLine("Customer Profile Creation Failed.");
                    Console.WriteLine("Error Code: " + response.messages.message[0].code);
                    Console.WriteLine("Error message: " + response.messages.message[0].text);
                }
                else
                {
                    Console.WriteLine("Null Response.");
                }
            }

Not sure what Im doing wrong. I get the checkbox for save the cc info but on the next time I want to make a payment with that same user I get this error:

 

payerror.JPG

 

Can any one update or tell me what is wrong? Thanks.

 

I imagine that you guys are aware that if I try to add a new card to the passed profile under those conditions it's going to return an AVS Mismatch exception.