Example #1
0
class BasePaymentCallback(JsonAPIHandler):
    def handle(self):
        test = self.request.get("test") == "true"
        try:
            tx_hash = self.request.get("transaction_hash")
            address = self.request.get("address")
            satoshis = int(self.request.get("value"))
            payment_address = self.request.get("input_address")
        except ValueError, e:
            return "error: value error"
        if not tx_hash:
            return "error: no transaction_hash"

        if not address:
            return "error: no address"

        if satoshis <= 0:  # outgoing payment
            return "*ok*"
        if satoshis < MIN_SATOSHIS_PAYMENT:  # not enough
            return "*ok*"

        if not test:
            doc = Document.get_by_address(payment_address)
            if not doc:
                return "error: couldn't find document"
            return self.process_payment(satoshis, doc)
        return "*ok*"