cancel
Showing results for 
Search instead for 
Did you mean: 

Help Migrating from SIM to CIM/Form with Recurring

I coded a SIM solution over 10 years ago, and it's been working fine for many clients.  But I now need to add recurring charge capability.  I desperately want to avoid any PCI requirements, i.e.  I never want to see cc#s.

 

I think I see the solution after digging through the API doc.  But I'm having trouble with the big-picture flow.  Please bear with me on this. I have many years of career coding experience.  But I need a bit of clarification and validation to make sure I am correct in my understanding of how all the piece-parts fit in the overall process.

 

The first thing I need is to validate that I can indeed do what I want to do, which is:

 

  1. Create a customer account in Authorize.net using the API (without knowing the cc number)
  2. Use an Authorize.net hosted form to capture and store the cc#, etc. for my customer where I never see the cc#.
  3. Use the Authorize.net API as needed periodically (using my own scheduler) to request a charge transaction on that customer's credit card?

 

Assuming the above is possible, which from what I can tell, it apparently is.... I don't understand the 'createCustomerProfileRequest'.  It says the cc# is 'required' for that API.  But it says I have to call that API to get a profileId to be used to submit the form to capture the cc# (???).  Is it actually ok to submit the createCustomerProfileRequest API without a cc#?  Or am I totally missing something here?

 

Once I get past that hurdle above, can you verify my understanding that now I can simply issue a charge on that profile at any time using the API?

 

How close am I to correct? Again, I'm a professional code developer.  So we can talk as technical as necessary.

 

Thanks so much for any info you can provide.

 

Jerry

MalcolmEnt1
Contributor
70 REPLIES 70

See... all it took was my question, and WebHooks gets announced... :-)

 

Just to make sure I understand this, I do a one-time registration for all events I care to be notified about, and then anytime there is activity on my account and any of those events occur, you'll send me a notification to my server telling me about the event.  Just a seriously enhanced SIM silent post response, correct?   Sounds like the perfect solution for what I need.

Yep, you're correct! Seriously enhanced silent post, indeed.

Aaron, Thank you so much for your help so far.  I've made significant progress thanks to your assistance.  I'm moving along in the process.  But I've got a couple of new questions.  This could possibly justify a new thread.  But I'm choosing to keep my entire saga, begin to end, in one thread so anyone coming along after me will have info for a complete solution in one place.

 

I'm now to the point where I'm displaying a popup and getting the form to fill.  Popup is not my first choice.  But I can't find ANY sample code for embedded IFRAME form.  However, popup is fine for now.  I'll worry about embed later.

 

I'm using the manage form.  I based it off of the hostedProfilePaymentsShipping.zip sample I found elsewhere on the forum. I'm able to enter multiple credit cards and multiple shipping addresses.  Really pleased with that.  But I don't see any way for a customer to select WHICH credit card profile they want to use for a particular payment.  I was expecting radiobuttons to select a particular cc the way I get with Amazon checkout. 

 

Second problem, there are no buttons at all on the popup to commit or cancel.  It lets me 'manage'.  But I'm stuck on that popup forever.  I've found discussions about the buttons being hidden because the default frame size is too small.  But I enlarged the frame size, and still nothing.  No way to choose a particular cc and no way to get off the popup when I'm done. 

 

So what am I doing wrong now?

 

Thanks.

 

Jerry

 

 

Hi Jerry,

 

For displaying the form, our Customer Profiles documentation has a few tips for displaying as a lightbox or as an iframe. There's also a link on that page to our sample app which demonstrates a few different ways to display the form.

 

As far as the form itself, there is no functionality to designate which form of payment would be the "default". Those hosted forms you see on the documentation are just to "manage" the profiles or add new ones. When it comes time to actually pay or choose what to use to pay, the logic of displaying the different registered methods and having the customer choose is up to your app. That's when you'd query the profile to get the registered methods and then display them to choose.

 

As far as the form and the buttons goes, I may have to look into that a little further. I'm in meetings all day, so I don't know for sure when I can see it myself, but I'll check as soon as I can. In the meantime, check out that sample app, and see if that gives you any ideas.

 


@Aaron wrote:
Or, make a validateCustomerPaymentProfileRequest at any time to run a validation on the info in a particular profile.

 


 

Question about: validateCustomerPaymentProfileRequest

 

When I run this request against a payment profile that has a zip code of 46282, validateCustomerPaymentProfileRequest returns {"directResponse":"1,1,1,This transaction has been approved...} and createTransactionRequest declines it.

 

According to the testing guide (http://developer.authorize.net/hello_world/testing_guide/) a zip code of 46282 generates a "general bank decline".

 

Why is validateCustomerPaymentProfileRequest approving the transaction?

Hi Aaron,

 

I'm down to two things to get a running solution.  First I need to get the IFrameCommunicator stuff working to talk to my main page, and I have to figure out why no buttons are showing up on the manage payments page.  Getting closer.

 

I downloaded that sample app.  But it's php.  I'm not as familiar with php.  Is there a site that hosts a running instance of this sample?

 

Thanks.

 

Jerry

Hi @eisemann970,

 

Which value for validationMode are you sending with the validateCustomerPaymentProfileRequest? testMode or liveMode? If liveMode, then I would expect it to be aligned with the testing guide, so if it's not giving the expected result, that might be a bug.

Sorry, Jerry. In my head I was thinking you were using PHP for some reason. I'm still not back in the office to look at it myself, but will check on this ASAP once I am.

Hey Jerry,

 

I have my rails site working with the hosted add payment page (https://test.authorize.net/customer/addPayment) and the IFrameCommunicator.  Not the same set up as yours but maybe I could help out.

Hi Aaron,

 

Any update on why I'm not getting buttons on the manage page?

 

Also, don't know if it's related, but I am sending the hostedProfileManageOptions = "showPayment" setting on the GetHostedProfilePage request.  According the doc, the manage page should now only show payment profiles and not show shipping profiles.  Even with the option set, I still get shipping profiles showing on the manage page.

 

The GetHostedProfilePage request is coming back fine with a token.  And the page is appearing.  It just seems like there must be something wrong in my API call that causing the page to not do as expected.

 

On the manage page, I get the "powered by Authorize.net" on the gray bar at the bottom.  But even looking at the HTML source, there are no OK, Cancel, etc buttons that are hidden.  They simply are not there.