def mainPay(request): print "i got here" rp = request.POST print 'rp', rp email = request.user.email random_ref = purchase_ref() request.session['ref_no'] = random_ref request.session['user'] = request.user amount = rp.get('paystack_amount') print amount request.session['amount'] = amount url = 'payments:verify_payment' callback_url = request.build_absolute_uri(reverse(url)) print "callback-url", callback_url response = Transaction.initialize(reference=random_ref, amount=(float(amount) * 100.0), email=request.user.email, callback_url=callback_url) # print 'response:', response data = response.get('data') # print "data:", data authorization_code = data['access_code'] print "access_code", authorization_code url = data['authorization_url'] # print 'url', url payment = Payments.objects.create(user=request.user, amount=amount, status="Pending", date_created=timezone.now(), payment_ref=random_ref) return redirect(url)
def payement(request): if request.method == 'POST': refrence = request.POST.get('refrence') email = request.POST.get('email') amount = int(float(request.POST.get('amount'))) response = Transaction.initialize(reference=refrence, amount=amount, email=email) return JsonResponse(response, status=200, safe=False) return JsonResponse({'error': 'could not add item to cart'}, status=400)
def test_initialize(self): httpretty.register_uri( httpretty.GET, "https://api.paystack.co/transaction/initialize", content_type='text/json', body='{"status": true, "contributors": true}', status=201, ) response = Transaction.initialize(reference='getupall', amount=12000, email='*****@*****.**') self.assertTrue(response['status'])
def test_initialize(self): httpretty.register_uri( httpretty.POST, self.endpoint_url("/transaction/initialize"), content_type='text/json', body='{"status": true, "contributors": true}', status=201, ) response = Transaction.initialize(reference='getupall', amount=12000, email='*****@*****.**') self.assertTrue(response['status'])
def test_initialize(self): httpretty.register_uri( httpretty.GET, "https://api.paystack.co/transaction/initialize", content_type='text/json', body='{"status": true, "contributors": true}', status=201, ) response = Transaction.initialize( reference='getupall', amount=12000, email='*****@*****.**') self.assertTrue(response['status'])
def new_transaction(email, price, cart): # start transaction and get payment url # reference = request.args.get("reference") # gets args from the checkout endpoint amount = price response = Transaction.initialize(amount=amount, email=email, callback_url="localhost:5000", metadata=cart) response = json.load(response) if response["status"]: payment_url = response['data']["authorization_url"] return True, payment_url else: return False, ""
def test_initialize(self): with mock.patch('paystackapi.transaction.Transaction.initialize') \ as mock_initialize: mock_initialize.return_value = { 'status': True, 'message': 'Authorization URL created', 'data': { 'authorization_url': 'https://standard.paystackapi.co/pay/xam1uq26de', 'access_code': 'xam1uq26de', 'reference': 'getupall' } } response = Transaction.initialize( 'getupall', 12000, '*****@*****.**', 'daily') self.assertTrue(response['status'])
def new_transaction(): reference = request.form.get("reference") amount = request.form.get("amount") email = request.form.get("email") response = Transaction.initialize(reference=reference, amount=amount, email=email) if response["status"]: return jsonify({ "success": True, "payment_url": response["data"]["authorization_url"], "reference": response["data"]["reference"], "message": response["message"] }), 200 else: return jsonify({ "success": False, "message": response["message"], }), 400
def payment_process(request): order_id = request.session.get("order_id") order = get_object_or_404(Order, id=order_id) paystack_key = paystack_public_key if request.method == "POST": transaction = Transaction.initialize( reference=f"ANGALABIRI_REF_ORDER_{order_id}", email=order.email, amount="{:.2f}".format(order.get_total_cost()) * 100, ) if transaction.is_success: order.paid = True order.transaction_id = transaction.id order.save() return redirect('shop:payment-done') else: return redirect('shop:payment-failed') return render(request, 'shop/billing/payment.html', {'order': order, 'paystack_key': paystack_key})
def subscribe_full(request): amount = '170000' user = request.user full_name = request.user.full_name email = request.user.email phone = request.user.phone_number response = Transaction.initialize(amount=amount, email=email) ref = response['data']['reference'] print(full_name) create_pay_instance = Payment.objects.create(customers_name=full_name, customers_email=email, customers_phone=phone, product_type='1 Year', reference=ref, amount='1700') a_url = response['data']['authorization_url'] return redirect(a_url)
def initiate_charge_card(request, **kwargs): if request.method == "POST": markup_percentage, markup_min_charge, is_nigerian_card = get_markup_charge( request) txn_desc = kwargs['txn_desc'] txn_ref = kwargs['txn_ref'] request.session['txn_ref'] = txn_ref actual_amount_D = round(kwargs.get('actual_amount', 0), 2) request.session['actual_amount_D'] = actual_amount_D print 'markup_percentage, markup_min_charge: ', markup_percentage, markup_min_charge markup_charge_D = round( (float(actual_amount_D) * markup_percentage) + markup_min_charge, 2) if is_nigerian_card: max_markup_charge_D = 5 if markup_charge_D > max_markup_charge_D: markup_charge_D = max_markup_charge_D amount_D = round(actual_amount_D + markup_charge_D, 2) cost_calc = marketingmember_costcalc(request, 'Nigeria') amount_N = format(amount_D * float(cost_calc.dollar_exchange_rate), '.2f') amountz = amount_D * float(cost_calc.dollar_exchange_rate) * 100 print "going to paystack to charge card" email = request.user.email url = 'general:verifyPayment' callback_url = request.build_absolute_uri(reverse(url)) print "callback-url", callback_url response = Transaction.initialize(reference=txn_ref, amount=amountz, email=email, callback_url=callback_url) print 'response:', response data = response.get('data') print "data:", data authorization_code = data['access_code'] print "access_code", authorization_code url = data['authorization_url'] print 'url', url return redirect(url)
def mainPay(request): marketer = marketing_member(request) print "i got here" rp = request.POST print 'rp', rp if request.method == "POST": bot_catcher = request.POST.get('bot_catcher') print "bot_catcher", bot_catcher payment_method = request.POST.get('payment-method') if bot_catcher != "botty": return redirect(reverse('general:homepage')) try: value = int(request.POST.get('amount')) except: messages.info(request, 'Invalid amount entered') # return redirect('wallet:wallet') return redirect if payment_method == "bank": # print a random_ref = purchase_ref() bank_payment = MarketerPayment.objects.create( user=request.user.useraccount, payment_channel="Bank Payment", purchase_type_2="Add", created_at=timezone.now(), message="Vei Wallet Fund", amount=amount, ref_no=random_ref, marketer=marketer, bank=None, teller_no=random_ref) payment = MarketerPayment.objects.filter( user=request.user.useraccount) return redirect('wallet:wallet') # if value > 9999: # messages.info(request, 'You have exceeded the Top up Limit, Pls enter an amount less than 10,000') # return redirect('wallet:wallet') # print "value", value amount = value # print "amount", amount email = request.user.email #secret_key = 'sk_test_9fe140b2bf798accdc2aade269cac47bc2de7ecc' random_ref = purchase_ref() request.session['ref_no'] = random_ref request.session['user'] = request.user request.session['amount'] = amount url = 'wallet:verify_payment' callback_url = request.build_absolute_uri(reverse(url)) print "callback-url", callback_url response = Transaction.initialize(reference=random_ref, amount=float(amount * 100), email=email, callback_url=callback_url) # print 'response:', response data = response.get('data') # print "data:", data authorization_code = data['access_code'] # print "access_code", authorization_code url = data['authorization_url'] # print 'url', url payment = MarketerPayment.objects.create( user=request.user.useraccount, payment_channel="Card Payment", purchase_type_2="Add", created_at=timezone.now(), message="Paystack Vei Wallet Fund", purchase_type_3="veiwallet", amount=amount, ref_no=random_ref, marketer=marketer, bank=None, teller_no=random_ref) user_acc = request.user.useraccount return redirect(url) return render(request, 'volkmann/vei_wallet.html')
def main(request): try: useraccount = UserAccount.objects.get(user=request.user) if not useraccount.profile_updated: messages.info(request, 'Please Update your profile to top up your wallet') return redirect('general:profile') except Exception as e: print "e", e messages.info(request, 'Please Update your profile to top up your wallet') return redirect('general:profile') if request.method == "POST": bot_catcher = request.POST.get('bot_catcher') # print "bot_catcher",bot_catcher payment_method = request.POST.get('payment-method') if bot_catcher != "botty": return redirect(reverse('general:homepage')) try: value = int(request.POST.get('amount')) except: messages.info(request, 'Invalid amount entered') return redirect('wallet:wallet') if payment_method == "bank": # print a random_ref = purchase_ref() bank_record = Bank.objects.create( user=request.user, txn_type="Add", amount=value, ref_no=random_ref, created_at=timezone.now, date_created=timezone.now().date(), bank="BANK DEPOSIT", message="Wallet Top up Via Bank Deposit") bank_record.save() print bank_record payment = Bank.objects.filter(user=request.user) return render(request, 'general_snippets/bank_details.html', { 'ref': random_ref, 'wallet': payment }) if value > 20000: messages.info( request, 'You have exceeded the Top up Limit, Pls enter an amount less than 20,000' ) return redirect('wallet:wallet') # print "value", value amount = value * 100 # print "amount", amount email = request.user.email #secret_key = 'sk_test_9fe140b2bf798accdc2aade269cac47bc2de7ecc' random_ref = purchase_ref() request.session['ref_no'] = random_ref url = 'wallet:verify_payment' callback_url = request.build_absolute_uri(reverse(url)) # print "callback-url", callback_url response = Transaction.initialize(reference=random_ref, amount=amount, email=email, callback_url=callback_url) # print 'response:', response data = response.get('data') # print "data:", data authorization_code = data['access_code'] # print "access_code", authorization_code url = data['authorization_url'] # print 'url', url bank_record = Bank.objects.create(user=request.user, txn_type="Add", amount=value, ref_no=random_ref, created_at=timezone.now, date_created=timezone.now().date()) bank_record.save() return redirect(url) # response = Transaction.charge(reference=random_ref, # authorization_code=authorization_code, # email=email, # amount=amount) # response_dict = Transaction.verify(reference=random_ref) # print "response_dict", response_dict #test_email = email #test_amount = amount #plan = 'Basic' # client = TransactionResource(secret_key, random_ref) # response = client.initialize(amount,email) # print"response",response # client.authorize() # Will open a browser window for client to enter card details # verify = client.verify() # Verify client credentials # print "verify", verify # print type(verify) # ref = verify.get('data') # print ref #client.charge(None,amount,email,random_ref) #print client.charge() # Charge an already exsiting client return render(request, 'wallet/topup.html')