Exemple #1
0
def create_gopay_payment(request):
    user = request.session.get('switched_user', request.user)
    superuser = request.user
    credit = user.credit_set.get(id=request.GET.get("credit_id"))
    address = credit.address
    gopay = GoPay()
    url = gopay.create_payment(
        productName=settings.GOPAY_PRODUCT_NAME,
        totalPrice=credit.price,
        currency="CZK",
        firstName=address.first_name,
        lastName=address.last_name,
        city=address.city,
        street=address.street,
        postalCode=address.zip,
        countryCode="CZE",
        email=address.email,
        phoneNumber=int(address.phone.replace(" ", "")),
        p4="%d" % credit.id,
        name="%.2f credits for %s (credit_id=%d)" %
        (credit.price, user.username, credit.id),
    )
    credit.gopay_payment = Payment.objects.filter(
        p4=str(credit.id)).order_by("date").reverse()[0]
    credit.save()
    return HttpResponseRedirect(url)
Exemple #2
0
 def handle(self, *args, **options):
     try:
         gopay = GoPay()
         for payment in Payment.objects.filter(state="CREATED"):
             gopay.check_payment(payment)
             print "%s: %s" % (payment.name, payment.state)
     except GoPayException:
         CommandError("Error occured during checking")
Exemple #3
0
 def handle(self, *args, **options):
     try:
         gopay = GoPay()
         for payment in Payment.objects.filter(state="CREATED"):
             gopay.check_payment(payment)
             print "%s: %s" % (payment.name, payment.state)
     except GoPayException:
         CommandError("Error occured during checking")
Exemple #4
0
 def handle(self, *args, **options):
     try:
         gopay = GoPay()
         channels = gopay.get_payment_channels()
         for code in channels:
             channel = channels[code]
             self.stdout.write("%s (%s) %s\n" % (channel["name"], code, channel["supportedCurrency"]))
     except GoPayException:
         CommandError("Error occured during geting payment channels")
Exemple #5
0
def check(request):
    targetGoId = request.GET.get("targetGoId")
    encryptedSignature = request.GET.get("encryptedSignature")
    orderNumber = request.GET.get("orderNumber")

    try:
        payment = Payment.objects.get(id=int(orderNumber))
    except Payment.DoesNotExist:
        raise GoPayException("Error: payment doesn't exists")

    # check goid and paymentSessionId - should be safe enough
    if targetGoId == settings.GOPAY_GOID or \
       int(request.GET.get("paymentSessionId")) != int(payment.payment_status.get("paymentSessionId")):
        raise GoPayException("Error: GoId or paymentSessionId not match!")

    signature = Signature()
    control_signature = signature.create_identity_signature(request.GET)
    signature.verify_signature(control_signature, encryptedSignature)

    # save new status of payment and return True/False by the state (PAID/not PAID)
    gopay = GoPay()
    payment_changed.send(sender=request, payment=payment)
    return payment, gopay.check_payment(payment.id)
Exemple #6
0
def create_gopay_payment(request):
    user = request.session.get('switched_user', request.user)
    superuser = request.user
    credit = user.credit_set.get(id=request.GET.get("credit_id"))
    address = credit.address
    gopay = GoPay()
    url = gopay.create_payment(
        productName = settings.GOPAY_PRODUCT_NAME,
        totalPrice = credit.price,
        currency = "CZK",
        firstName = address.first_name,
        lastName = address.last_name,
        city = address.city,
        street = address.street,
        postalCode = address.zip,
        countryCode = "CZE",
        email = address.email,
        phoneNumber=int(address.phone.replace(" ", "")),
        p4="%d" % credit.id,
        name="%.2f credits for %s (credit_id=%d)" % (credit.price, user.username, credit.id),
    )
    credit.gopay_payment = Payment.objects.filter(p4=str(credit.id)).order_by("date").reverse()[0]
    credit.save()
    return HttpResponseRedirect(url)
Exemple #7
0
def check(request):
    targetGoId = request.GET.get("targetGoId")
    encryptedSignature = request.GET.get("encryptedSignature")
    orderNumber = request.GET.get("orderNumber")

    try:
        payment = Payment.objects.get(id=int(orderNumber))
    except Payment.DoesNotExist:
        raise GoPayException("Error: payment doesn't exists")

    # check goid and paymentSessionId - should be safe enough
    if targetGoId == settings.GOPAY_GOID or \
       int(request.GET.get("paymentSessionId")) != int(payment.payment_status.get("paymentSessionId")):
        raise GoPayException("Error: GoId or paymentSessionId not match!")

    signature = Signature()
    control_signature = signature.create_identity_signature(request.GET)
    signature.verify_signature(control_signature, encryptedSignature)

    # save new status of payment and return True/False by the state (PAID/not PAID)
    GoPay().check_payment(payment)
    payment_changed.send(sender=request, payment=payment)
    return payment