authorize.net CIM Addon Suggestion

WPPizza – A Restaurant Plugin for WordPress Support Add-Ons Gateways Authorize.net (SIM) authorize.net CIM Addon Suggestion

Viewing 20 posts - 1 through 20 (of 28 total)
  • Author
    Posts
  • #6857
    yourgautam
    Participant

      Hi,
      My client is using your plugin with Authorize.net gateway.
      He wants to store customer information and credit card details using Authorize.net CIM.
      Is there any possibility of extending your plugin functions to have this feature?
      Do you have any suggestion on how one should go, so that any future updates from wp-pizza plugin won’t overwrite such custom codes.

      Will appreciate any help in this regard.

      Thanks

      #6859
      Olly
      Admin & Mod

        >Is there any possibility of extending your plugin functions to have this feature? Do you have any suggestion on how one should go

        my suggestion would definitely be to use filters and action hooks rather than messing around in the plugin itself.

        having said that, for what you want to do, i would need to add an additional filter in some place.
        as I am working on on some other stuff in the plugin, it won’t be too hard to add this.

        when I’m done, I’ll post a quick example/dummy here that should at least send you on your way

        #6876
        Olly
        Admin & Mod

          generally i am happy to add action and filter hooks in the plugin in all sorts of places for people to use

          however, having had more of a think about what you said, I am a bit hazy about what it is your (or more accurately your customer) is trying to achieve.

          from what i can see Authorize.net CIM stores the customer data on their server.
          if the customer is registered on the site (as a wordpress user and is logged in) the data he registered with will automatically filled in (if set up that way) in the relevant order page fields

          so I’m not sure where the CIM info is supposed to fit in here

          if the customer is NOT already registered as a wordpress user there’s – i would have thought – no info that could tie him into any customer data stored at a.net CIM

          I’m probably missing something, so would be grateful for some clarification

          PS: just to mention. storing CC info on your clients server (as opposed to on a.net’s servers) is an absolute no no …

          #6883
          yourgautam
          Participant

            Thanks for replying.
            As sometimes the clients (client of my client) receive orders on phone too.
            When customer place online order, the order is processed and at the same time credit card information along with name is stored in Authorize.net CIM.
            This will be done so that when the same customer places offline order there will be no need to ask for card details again.

            #6884
            Olly
            Admin & Mod

              still not sure i understand the workflow .

              so, someone phones up and wants to order something.
              then what is supposed to happen ?

              is the guy who gets the phonecall supposed to go to the website and then click on things to put the order together and then checkout (essentially for the client on the phone) ?

              if that’s the case, how would the guy that receives the call even know which (wordpress) user it is and what data is associated with him without logging in as that user (therefore needing that users un/pw) ?

              still not getting it, sorry (but maybe the workflow is supposed to be different…dunno)

              #6907
              Olly
              Admin & Mod

                even if one were to somehow get that users data (let’s say by creating a specific user role which then gets a dropdown on the checkout page where he/she can select from users which – via an ajax call – could prepopulate the fields)

                you will still have 4 problems

                a) you’ll have to get the associated a.net CIM data
                b) even if you were to get that AND prepopulate a credit card number (etc) field , a.net does not expect (and therefore does not look for those) fields so you’d have to enter them again anyway once you are at the a.net page
                c) you would need an SSL certificate for your checkout
                d) and most importantly – IT IS TOTALLY ILLEGAL – as you would be storing unencrypted cc numbers on your server

                again though, I might be misunderstanding things

                #6910
                yourgautam
                Participant

                  1. user goes to site and places online order. makes online payment through Authorize.net gateway.
                  2. Once the payment is successful, the credit card details along with customer name is logged into authorize.net CIM
                  3. In future if the same customer makes a phone call to order, pizza company guy can log into authorize.net CIM and use the information to process the payment. this saves them from taking the card details of the user again. This process won’t be using wordpress. They only want me store the data in authorize.net CIM for future use, rest of the process will be handled by them manually.
                  I hope this clears the requirement.

                  #6913
                  Olly
                  Admin & Mod

                    ha, so after all of this , is what we are talking about simply that that client of yours wants a CIM implemntation of the authorize.net gateway , rather than the SIM one ?

                    (or am i just really thick here…)

                    reading through this:
                    http://community.developer.authorize.net/t5/Integration-and-Testing/Which-method-to-use-AIM-SIM-CIM-DPM/td-p/16638

                    you apparently cannot combine the two (but admittedly i never had anything to do with CIM implementations )

                    #6915
                    yourgautam
                    Participant

                      Well my customer wants to have SIM but at the same time add CIM so that it helps in both online and offline orders.
                      Are you suggesting that we should only use CIM?.
                      I know your plugin works on SIM, could you suggest hooks/filters that we can use?

                      #6918
                      Olly
                      Admin & Mod

                        i’m not really suggesting anything as such.

                        the main problem is, that i don’t really know anything about CIM and just have to go by some documentation/links i have been able to dig up somewhere. So if you *know* that these two can happily live together/independently, maybe the following is something that helps

                        after every executed order the following action runs

                        
                        wppizza_on_order_executed
                        

                        passing on the order id. so perhaps this sort of thing (?):

                        
                        add_action( 'wppizza_on_order_executed', 'my_cim_function');
                        function my_cim_function($orderId){
                        global $wpdb;
                        $orderDetails = $wpdb->get_row("SELECT * FROM " .$wpdb->prefix . "wppizza_orders WHERE id='".(int)$orderId."' AND initiator='anet' ");	
                        $transaction_id=$orderDetails->transaction_id;
                        $transaction_details=maybe_unserialize($orderDetails->transaction_details);
                        /*
                        the above two vars hold the - you guesses it - transaction id and all transaction details returned from auth.net
                        maybe you can now do something with this regrading CIM ?
                        */
                        }
                        

                        does that help perhaps ?

                        [edit 19-Jan-2015:] just for reference – the above can be simplified a bit . please see here
                        https://www.wp-pizza.com/topic/after-every-order/#post-7180

                        #6919
                        Olly
                        Admin & Mod

                          PS, transaction_details will not contain any cc details though as they are – of course – not just being sent all over the place and stay on a.net servers….

                          #6932
                          yourgautam
                          Participant

                            Actually i am planning to use authorize.net transaction id for CIM.
                            In your pluggin wp_wppizza_orders.transaction_id contains authorize.net transaction id, correct?.
                            When authorize.net sends respose to your ipn.php file, is there any way to get transaction id without modifying your plugin?.

                            #6934
                            Olly
                            Admin & Mod

                              >authorize.net transaction id, correct?.

                              yes

                              >get transaction id without modifying your plugin?.
                              you can do that as described/coded above without modifying things

                              however, that gateway – although working from what i can see – is quite old now and could be updated in a couple of places anyway. when I do this , i could easily also put an action hook in there that passes on the tx id with which you can do as you like

                              #6935
                              yourgautam
                              Participant

                                that would be great. Any idea when you will be able to add new hooks?.

                                #6936
                                Olly
                                Admin & Mod

                                  next couple of days or so, maybe later today even

                                  #6939
                                  yourgautam
                                  Participant

                                    Thanks

                                    #6973
                                    Olly
                                    Admin & Mod

                                      hi

                                      having had a look at the way it is right now, this might take a few more days to bring it up to scratch.

                                      in the meantime though (in case you want to get going) you can do the following (which will be part of the next update)

                                      on approx line 833 of wppizza-gateway-authorize.net.php you will find

                                      
                                      function gateway_transaction_execute($gatewayReply,$orderId){
                                      

                                      right after that just add

                                      
                                      do_action('wppiza_gateway_anet_verified',$gatewayReply, $orderId);	
                                      

                                      so it will read

                                      
                                      function gateway_transaction_execute($gatewayReply,$orderId){
                                      do_action('wppiza_gateway_anet_verified',$gatewayReply, $orderId);	
                                      

                                      and so forth.

                                      in your themes functions.php you can then go wild as in

                                      
                                      add_action('wppiza_gateway_anet_verified','my_function',10,2);
                                      function my_function($gwreply,$orderid){
                                      /* do your cim stuff with the reply from authorize.net contained in $gwreply */
                                      /* fyi: $orderid is the id of the order in the wppizza_orders table ...just in case you need it for something*/
                                      }
                                      

                                      note, this action hook will only run when the reply from auth net has been (again) verified to make sure currencies etc match (but i guess that should be just fine, as otherwise it would mean someone has tampered with stuff somewhere)

                                      hope that helps for the moment

                                      #6974
                                      Olly
                                      Admin & Mod

                                        PS: “my_function” should probably be changed to something more meaningful

                                        #6975
                                        Olly
                                        Admin & Mod

                                          PPS (sorry but just in case)

                                          if you want to run your function “before” it gets verified again just add

                                          
                                          do_action('wppiza_gateway_anet_reply',$gatewayReply);
                                          

                                          right after

                                          
                                          function gateway_handle_response($gatewayReply){
                                          

                                          instead (will also be added to the next update, just for good measure)

                                          and then do

                                          
                                          add_action('wppiza_gateway_anet_reply','my_function');
                                          function my_function($gwreply){
                                          /* do your cim stuff with the reply from authorize.net contained in $gwreply */
                                          }
                                          

                                          just thought i’d mention it in case it’s useful

                                          as ever, any questions , just shout

                                          #6989
                                          yourgautam
                                          Participant
                                            This reply has been marked as private.
                                          Viewing 20 posts - 1 through 20 (of 28 total)
                                          • The topic ‘authorize.net CIM Addon Suggestion’ is closed to new replies.