Index: main/waeup.ikoba/trunk/src/waeup/ikoba/payments/paypal.py
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/payments/paypal.py	(revision 12324)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/payments/paypal.py	(revision 12325)
@@ -27,4 +27,5 @@
 from zope import schema
 from zope.component import queryUtility
+from zope.container.interfaces import IContainer
 from zope.interface import Interface, Attribute
 from waeup.ikoba.interfaces import MessageFactory as _
@@ -1126,10 +1127,15 @@
     title = _(u'Credit Card (PayPal)')
 
-    def get_credit_card(payer_id):
+    def get_credit_card(self, payer_id):
         """Get an ICreditCard for `payer_id`.
 
         `None` if the payer has (yet) no credit card stored with ikoba.
         """
-        pass
+        site = grok.getSite()
+        if not IContainer.providedBy(site):
+            return None
+        if not 'creditcards' in site:
+            return None
+        return site['creditcards'].get(payer_id, None)
 
     def create_payment(self, payer, payment_item,  payee=None):
Index: main/waeup.ikoba/trunk/src/waeup/ikoba/payments/tests/test_paypal.py
===================================================================
--- main/waeup.ikoba/trunk/src/waeup/ikoba/payments/tests/test_paypal.py	(revision 12324)
+++ main/waeup.ikoba/trunk/src/waeup/ikoba/payments/tests/test_paypal.py	(revision 12325)
@@ -16,4 +16,5 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##
+import grok
 import decimal
 import os
@@ -24,6 +25,7 @@
 import paypalrestsdk
 from zope.component import (
-    getGlobalSiteManager, queryUtility, getUtilitiesFor,
+    getGlobalSiteManager, queryUtility,
     )
+from zope.component.hooks import setSite, clearSite
 from zope.i18nmessageid.message import Message as i18nMessage
 from zope.interface import implements
@@ -1081,5 +1083,20 @@
 
 
-class PayPalCreditCardServiceTests(unittest.TestCase):
+class PayPalCreditCardServiceTests(FunctionalTestCase):
+
+    layer = FunctionalLayer
+
+    def tearDown(self):
+        super(PayPalCreditCardServiceTests, self).tearDown()
+        clearSite()
+
+    def create_site(self):
+        # create a simple site in root.
+        class MyApp(grok.Application, grok.Container):
+            pass
+        site = MyApp()
+        self.getRootFolder()['app'] = site
+        setSite(site)
+        return site
 
     def test_iface(self):
@@ -1088,4 +1105,40 @@
         verifyClass(IPaymentGatewayService, PayPalCreditCardService)
         verifyObject(IPaymentGatewayService, service)
+
+    def test_get_credit_card_no_site(self):
+        # we get simply None if no site is registered
+        service = PayPalCreditCardService()
+        assert service.get_credit_card('not-a-valid-payer-id') is None
+
+    def test_get_credit_card_site_not_a_container(self):
+        # we get simply None if site is not a container
+        site = grok.Application()  # does not provide IContainer
+        self.getRootFolder()['app'] = site
+        setSite(site)
+        service = PayPalCreditCardService()
+        assert service.get_credit_card('not-a-valid-payer-id') is None
+
+    def test_get_credit_card_no_container(self):
+        # we get simply None if no 'creditcards' container is in site
+        self.create_site()
+        service = PayPalCreditCardService()
+        assert service.get_credit_card('not-a-valid-payer-id') is None
+
+    def test_get_credit_card(self):
+        # we can get a credit card, if one was stored
+        class MyCard(grok.Model):
+            myid = 'CARD1'
+
+            def __eq__(self, obj):
+                return self.myid == obj.myid
+
+        site = self.create_site()
+        site['creditcards'] = grok.Container()
+        card = MyCard()
+        card.myid = 'CHANGED ID'
+        site['creditcards'][u'CARD1'] = card
+        service = PayPalCreditCardService()
+        assert service.get_credit_card(u'CARD1') == card
+        assert service.get_credit_card(u'CARD2') is None
 
     def DIStest_creditcard_service_can_create_payment(self):
