merchant_field = status_data.merchant_field merchant_value = request.POST.get(merchant_field,"") if status_data.md5merchant != md5merchant_generate(status_data.user_id, status_data.invoice, status_data.amount, merchant_value): status_data.set_error("Invalid md5 of merchants fields") if user_id_old and user_id_old != status_data.user_id: status_data.set_error("Wrong User ID: old=%s, new=%s" % (user_id_old, status_data.user_id)) if invoice_old and invoice_old != status_data.invoice: status_data.set_error("Wrong Order ID: old=%s, new=%s" % (invoice_old, status_data.invoice)) if amount_old and amount_old != status_data.mb_amount: status_data.set_error("Wrong amount: amount=%s, mb_amount=%s" % (amount_old, status_data.amount)) if status_data.status != "2": status_data.set_error("""Payment status is not "Processed": %s""" % status_data.status) if status_data.pay_to_email != PAY_TO_EMAIL: status_data.set_error("Invalid merchant's email: %s" % status_data.pay_to_email) #if status_data.mb_transaction_id and status_data._default_manager.filter(mb_transaction_id=status_data.mb_transaction_id).count() > 0: # status_data.set_error("Duplicate Transaction ID: %s" % status_data.mb_transaction_id) # Save model and send signal status_data.merchant_field = u"%s=%s" % (merchant_field, merchant_value) status_data.save() status_data.__dict__[merchant_field] = merchant_value moneybookers_signal.send(sender=status_data) return HttpResponse("OK")