예제 #1
0
파일: tasks.py 프로젝트: hiidef/hiicart
def update_payment_status(hiicart_id, transaction_id, tries=0, cart_class=HiiCart):
    """Check the payment status of a Braintree transaction."""
    if transaction_id is None:
        return
    hiicart = cart_class.objects.get(pk=hiicart_id)
    handler = BraintreeIPN(hiicart)
    done = handler.update_order_status(transaction_id)
    # Reschedule the failed payment to run in 4 hours
    if not done:
        # After 18 tries (72 hours) we will void and fail the payment
        if tries >= 18:
            handler.void_order(transaction_id)
        else:
            tries = tries + 1
            update_payment_status.apply_async(args=[hiicart_id, transaction_id, tries, cart_class], countdown=14400)
예제 #2
0
def update_payment_status(hiicart_id,
                          transaction_id,
                          tries=0,
                          cart_class=HiiCart):
    """Check the payment status of a Braintree transaction."""
    hiicart = cart_class.objects.get(pk=hiicart_id)
    handler = BraintreeIPN(hiicart)
    done = handler.update_order_status(transaction_id)
    # Reschedule the failed payment to run in 4 hours
    if not done:
        # After 18 tries (72 hours) we will void and fail the payment
        if tries >= 18:
            handler.void_order(transaction_id)
        else:
            tries = tries + 1
            update_payment_status.apply_async(
                args=[hiicart_id, transaction_id, tries, cart_class],
                countdown=14400)