Webpay, ich denke nicht, dass es sehr beliebt ist, aber ich versuche es für eine Weile zu verwenden.
Die Dokumentation sieht leicht zu verstehen aus, aber es dauert eine Weile, bis sie verstanden ist, weil sie es versucht.
Python-Bindungen werden bereitgestellt (mit pip installierbar) und sind relativ einfach anzufordern.
import webpay
client = webpay.WebPay(settings.WEBPAY_SECRET)
response = client.customer.create(card=token)
So was.
Diese Antwortvariable enthält den Entitätstyp webpay (webpay.data_types.Entity), der inhaltlich einem Wörterbuch ähnelt, aber jeder Wert wird zu einer Klassenvariablen erweitert. Ich werde. Es ist wie ein JavaScript-Objekt.
Es ist verschachtelt, daher kann es sehr ärgerlich sein, es zu protokollieren.
Derzeit wird __str__
implementiert und eine strukturierte Zeichenfolge ähnlich wie yaml zurückgegeben, die jedoch etwas nervös ist, da sie Zeilenumbrüche usw. enthält. Wenn Sie nicht auch einen Parser schreiben, scheint dieser weniger wiederverwendbar zu sein.
Deshalb. Ich denke, es wird einfacher zu handhaben sein, wenn Sie es rekursiv in den Wörterbuchtyp konvertieren.
from webpay.data_types import Entity
def webpay_entity_to_dict(webpay_entity):
"""
Konvertieren Sie den Webpay-Entitätstyp rekursiv in Dict
"""
if isinstance(webpay_entity, list):
return [webpay_entity_to_dict(e) for e in webpay_entity]
if not isinstance(webpay_entity, Entity):
return webpay_entity
return {key: webpay_entity_to_dict(value) for key, value
in webpay_entity.__dict__.items()}
Wenn Sie dies übergeben, können Sie es zu einem Wörterbuchtyp machen, also können Sie json.dumps () ausführen und es dann protokollieren, oder es wird einfacher, es zu serialisieren.
Recommended Posts