@@ -189,6 +189,77 @@ public function testUpdateCustomerPaymentProfile()
189189
190190 }
191191
192+ public function testGetCustomerPaymentProfile ()
193+ {
194+ $ expirationDate = "2015-10 " ;
195+ $ cardNumber = "4111111111111111 " ;
196+ $ expectedCardNumber = 'XXXX ' . substr ($ cardNumber , -4 );
197+ $ expectedExpiration = 'XXXX ' ;
198+
199+ // Create new customer profile
200+ $ request = new AuthorizeNetCIM ;
201+ $ customerProfile = new AuthorizeNetCustomer ;
202+ $ customerProfile ->description = "Description of customer " ;
203+ $ customerProfile ->merchantCustomerId = time ().rand (1 ,100000 );
204+ $ customerProfile ->email = "blahlah@domain.com " ;
205+ $ response = $ request ->createCustomerProfile ($ customerProfile );
206+ $ this ->assertTrue ($ response ->isOk ());
207+ $ customerProfileId = $ response ->getCustomerProfileId ();
208+
209+ // Add payment profile.
210+ $ paymentProfile = new AuthorizeNetPaymentProfile ;
211+ $ paymentProfile ->customerType = "individual " ;
212+ $ paymentProfile ->payment ->creditCard ->cardNumber = $ cardNumber ;
213+ $ paymentProfile ->payment ->creditCard ->expirationDate = $ expirationDate ;
214+ $ response = $ request ->createCustomerPaymentProfile ($ customerProfileId , $ paymentProfile );
215+ $ this ->assertTrue ($ response ->isOk ());
216+ $ paymentProfileId = $ response ->getPaymentProfileId ();
217+
218+ $ request = new AuthorizeNetCIM ;
219+ $ response = $ request ->getCustomerPaymentProfile ($ customerProfileId , $ paymentProfileId );
220+ if ($ response ->isOk ()) {
221+ $ recdCardNumber = (string )$ response ->xml ->paymentProfile ->payment ->creditCard ->cardNumber ;
222+ $ recdExpiration = (string )$ response ->xml ->paymentProfile ->payment ->creditCard ->expirationDate ;
223+ $ this ->assertEquals ($ expectedCardNumber , $ recdCardNumber );
224+ $ this ->assertEquals ($ expectedExpiration , $ recdExpiration );
225+ }
226+ }
227+
228+ public function testGetCustomerPaymentProfileWithUnmaskedExpiration ()
229+ {
230+ $ expirationDate = "2015-10 " ;
231+ $ cardNumber = "4111111111111111 " ;
232+ $ expectedCardNumber = 'XXXX ' . substr ($ cardNumber , -4 );
233+
234+ // Create new customer profile
235+ $ request = new AuthorizeNetCIM ;
236+ $ customerProfile = new AuthorizeNetCustomer ;
237+ $ customerProfile ->description = "Description of customer " ;
238+ $ customerProfile ->merchantCustomerId = time ().rand (1 ,100000 );
239+ $ customerProfile ->email = "blahlah@domain.com " ;
240+ $ response = $ request ->createCustomerProfile ($ customerProfile );
241+ $ this ->assertTrue ($ response ->isOk ());
242+ $ customerProfileId = $ response ->getCustomerProfileId ();
243+
244+ // Add payment profile.
245+ $ paymentProfile = new AuthorizeNetPaymentProfile ;
246+ $ paymentProfile ->customerType = "individual " ;
247+ $ paymentProfile ->payment ->creditCard ->cardNumber = $ cardNumber ;
248+ $ paymentProfile ->payment ->creditCard ->expirationDate = $ expirationDate ;
249+ $ response = $ request ->createCustomerPaymentProfile ($ customerProfileId , $ paymentProfile , true );
250+ $ this ->assertTrue ($ response ->isOk ());
251+ $ paymentProfileId = $ response ->getPaymentProfileId ();
252+
253+ $ request = new AuthorizeNetCIM ;
254+ $ response = $ request ->getCustomerPaymentProfile ($ customerProfileId , $ paymentProfileId , true );
255+ if ($ response ->isOk ()) {
256+ $ recdCardNumber = (string )$ response ->xml ->paymentProfile ->payment ->creditCard ->cardNumber ;
257+ $ recdExpiration = (string )$ response ->xml ->paymentProfile ->payment ->creditCard ->expirationDate ;
258+ $ this ->assertEquals ($ expectedCardNumber , $ recdCardNumber );
259+ $ this ->assertEquals ($ expirationDate , $ recdExpiration );
260+ }
261+ }
262+
192263 public function testCreateCustomerProfileWithValidationMode ()
193264 {
194265 $ this ->markTestSkipped ('Ignoring for Travis. Will fix after release. ' ); //TODO
0 commit comments