In der aktuellen Diskussion über die Abo-Gebühren von Apple, die inApp Beteiligungen die verlangt werden, geht voll unter das es auch noch andere Bezahlmöglichkeiten gibt.
Unter anderem bietet PayPal ein eigenes iPhone / iOS SDK an.
Dieses kann in jede App eingebunden werden und den Bezahlvorgang für Inhalte übernehmen. Beträge, Rechnungsposten, Steuer / Versandgebühren sind dabei sehr gut einstellbar. Im Fall einer erfolgreichen Zahlung erhält man von PayPal eine PayPal-Transactions-ID, womit der jeder Bezahlvorgang eindeutig ist.
Eingebunden wird das SDK sehr einfach: Downloaden, Add existing Files -> die *.a Datei und alle .h Dateien auswählen und importieren.
In dem Viewcontroller, in dem der Bezahlvorgang dann vonstatten gehen soll folgende include Anweisung:
#import „PayPal.h“
weitere Schritte können in der Doku von Paypal entnommen werden.
Was nicht ind er Dokumentation erwähnt ist: um das SDK nutzen zu können, bedarf es auch einer xml Lib. Wenn diese nicht vorhanden ist, bekommt man Fehlermeldungen im folgenden Stil:
„_xmlNodeListGetString“, referenced from:
-[ap_ReceiverIdentifier deserializeElementsFromNode:] in libPayPalMEP.a(ap.o)
-[ap_Address deserializeElementsFromNode:] in libPayPalMEP.a(ap.o)
-[ap_AddressList deserializeElementsFromNode:] in libPayPalMEP.a(ap.o)
-[ap_CurrencyCodeList deserializeElementsFromNode:] in libPayPalMEP.a(ap.o)
-[ap_CurrencyList deserializeElementsFromNode:] in libPayPalMEP.a(ap.o)
-[ap_CurrencyConversionList deserializeElementsFromNode:] in libPayPalMEP.a(ap.o)
-[ap_CurrencyConversionTable deserializeElementsFromNode:] in libPayPalMEP.a(ap.o)
-[ap_DisplayOptions deserializeElementsFromNode:] in libPayPalMEP.a(ap.o)
-[ap_ErrorList deserializeElementsFromNode:] in libPayPalMEP.a(ap.o)
usw.
Dieses kann verhindert werden, indem man die libxml2.dylib als existing Framework einbettet / hinzufügt.