def payment_request(request): ''' Creates a payment request and redirects to instamojo payments page and on completion returns to payment_response page. ''' api = Instamojo(api_key=API_KEY, auth_token=AUTH_TOKEN) eventid = request.GET['event'] price = request.GET['price'] variable = '' if eventid == 'all': variable = 'payment for acumen it registered events' else: eventdetail = Event.objects.get(event_id=eventid) variable = 'payment for acumen it ' + str( eventdetail.event_name) + ' event' response = api.payment_request_create( amount=price, purpose=variable, buyer_name=request.user.first_name, send_email=True, email=request.user.email, redirect_url="https://www.acumenit.in/payment_response/" + str(eventid) + "/", ) print(response['payment_request']['id']) return redirect(response['payment_request']['longurl'])
def payment_redirect(request): api = Instamojo(api_key='27fb8178a52dc8e02866df53267d016d', auth_token='4c5d72dcdaa1e81b2ec37525609dd6b5', endpoint='https://test.instamojo.com/api/1.1/') # Create a new Payment Request firstname = request.POST["first_name"] amount = request.POST["amount"] email = request.POST["email"] phone = request.POST["mobile"] project = request.POST["project"] print project response = api.payment_request_create( amount=amount, purpose=project, send_email=True, email=email, phone=phone, buyer_name=firstname, redirect_url="http://www.reimaginegiving.org/Success/") # print the long URL of the payment request. print response response1 = response['payment_request']['longurl'] print response1 # print the unique ID(or payment request ID) # print response['payment_request']['id'] return redirect(response1)
def payment_request(name, amount, purpose, email, mobile): api = Instamojo(api_key=os.getenv('api_auth_key'), auth_token=os.getenv('api_auth_token')) # Create a new Payment Request response = api.payment_request_create( buyer_name=name, amount=amount, purpose=purpose, send_email=True, email=email, phone=mobile, redirect_url="https://zeitgeist.org.in/payment_redirect/", webhook="https://zeitgeist.org.in/webhook/") return response
def get_form(self, payment, data=None): if not payment.id: payment.save() api = Instamojo(api_key=self.api_key, auth_token=self.auth_token, endpoint=self.endpoint) payment_request = api.payment_request_create( amount=payment.total, purpose=payment.description, send_email=False, redirect_url=self.base_url + payment.get_process_url(), ) try: raise RedirectNeeded(payment_request['payment_request']['longurl']) except KeyError: raise PaymentError( 'Error in processing payment. Contact developer. Output: %s' % (payment_request))
def checkout(request): if request.user.is_authenticated: user = request.user cart = Cart.objects.get_or_create(user=user)[0] if cart.products.count() > 0: total_price = cart.total_price() api = Instamojo(api_key=settings.API_KEY, auth_token=settings.AUTH_TOKEN, endpoint='https://test.instamojo.com/api/1.1/') response = api.payment_request_create( amount=str(total_price), purpose="Buying Products from March Site.", redirect_url="http://localhost:8000/success") return redirect(response['payment_request']['longurl']) return HttpResponse("You're not logged In.")
def payment_request(request): ''' Creates a payment request and redirects to instamojo payments page and on completion returns to payment_response page. ''' api = Instamojo(api_key=API_KEY, auth_token=AUTH_TOKEN) participant = Participant.objects.get(user=request.user) response = api.payment_request_create( amount='180', purpose='Acument IT Hackathon', buyer_name=request.user.first_name, send_email=True, email=request.user.email, phone=participant.contact, redirect_url="https://www.acumenit.in/acuthon/payment_response", webhook="http://www.acumenit.in/acuthon/payment_webhook") print(response['payment_request']['id']) return redirect(response['payment_request']['longurl'])
def downloadrequestpage(request): if request.method=="GET": id=request.GET.get('id') user=request.session.get('user') product=Product.objects.get(id=id) request.session['product_name']=product.name userObject=User.objects.get(id=request.session['id']) amount=product.price-((product.price)*(product.discount)/100) api = Instamojo(api_key=PAYMENT_API_KEY, auth_token=PAYMENT_API_AUTH_TOKEN); response = api.payment_request_create( amount=math.floor(amount), purpose=f'Payment For {product.name}', send_email=True, email=request.session.get('email'), redirect_url="http://localhost:8000/Download/complete-payment" ) payment_request_id=response['payment_request']['id'] payment=Payment(product=product,user=userObject,payment_request_id=payment_request_id) payment.save() url=response['payment_request']['longurl'] print(response) return redirect(url)
def payRegistration(payload): try: api = Instamojo(api_key=API_KEY, auth_token=AUTH_TOKEN) # api = Instamojo(api_key=API_KEY, auth_token=AUTH_TOKEN, endpoint='https://test.instamojo.com/api/1.1/') response = api.payment_request_create( amount='100', purpose='Intern Fair 2k20 IIT Ropar Student Registration', send_email=True, email=payload["email"], buyer_name=payload["name"], send_sms=True, phone=payload["phone_number"], redirect_url=payload["redirect_url"], ) data = { "id": response['payment_request']['id'], "link": response['payment_request']['longurl'], "error": False } return data except Exception: return {"error": True}
def order_create(request): cart = Cart(request) if request.method == 'POST': form = OrderCreateForm(request.POST) if form.is_valid(): order = form.save() for item in cart: a=OrderItem.objects.create(order=order, product=item['product'], price=item['price'], quantity=item['quantity']) price=OrderItem.get_cost(a) # clear the cart request.session['order_id'] = order.id cart.clear() api = Instamojo(api_key="327dc26252b623af6faa0ef987188be5", auth_token="fb79872dab2032fd4c678f4d927c5625", endpoint='https://test.instamojo.com/api/1.1/'); response = api.payment_request_create( purpose= 'Review Hub', amount= price, buyer_name= order.get_full_name(), email= order.email, phone= order.mobile, redirect_url=request.build_absolute_uri(reverse('orders:invoice', kwargs={'order_id':order.id})), send_email= 'True', send_sms= 'True', webhook= 'http://www.example.com/webhook/', allow_repeated_payments= 'False', ) print (response) return HttpResponseRedirect(response['payment_request']['longurl']) # launch asynchronous task #order_created.delay(order.id) #return render(request, 'orders/order/created.html', {'order': order}) else: form = OrderCreateForm() return render(request, 'orders/order/create.html', {'cart': cart, 'form': form})
from instamojo_wrapper import Instamojo API_KEY="test_8ae61cb145b7edb37b01806374c" AUTH_TOKEN="test_0a1a23705c1024395442cad8c43" api = Instamojo(api_key=API_KEY, auth_token=AUTH_TOKEN, endpoint='https://test.instamojo.com/api/1.1/'); # Create a new Payment Request response = api.payment_request_create( amount='11', purpose='testing', send_email=True, email="*****@*****.**", redirect_url="http://localhost:8000/handle_redirect.py" ) # print the long URL of the payment request. print (response['payment_request']['longurl'])
from instamojo_wrapper import Instamojo API_KEY = "YOUR_KEY" AUTH_TOKEN = 'YOUR_TOKEN' api = Instamojo(api_key=API_KEY, auth_token=AUTH_TOKEN, endpoint='https://test.instamojo.com/api/1.1/'); response = api.payment_request_create( amount='11', purpose='Testing', send_email=True, email="*****@*****.**", redirect_url="http://localhost:8000/handle_redirect" ) print( response['payment_request']['longurl'])
from instamojo_wrapper import Instamojo from download_products.settings import PAYMENT_API_KEY, PAYMENT_API_AUTH_TOKEN api = Instamojo(api_key=PAYMENT_API_KEY, auth_token=PAYMENT_API_AUTH_TOKEN, endpoint='https://test.instamojo.com/api/1.1/') # Create a new Payment Request response = api.payment_request_create( amount='10', purpose='Testing ..', send_email=True, email="*****@*****.**", redirect_url="http://www.feelfreetocode.com") print(response) # print the long URL of the payment request. print(response['payment_request']['longurl']) # print the unique ID(or payment request ID) print(response['payment_request']['id'])
from instamojo_wrapper import Instamojo API_KEY = 'test_e6f3ee14401e08c4f2605416b8' AUTH_TOKEN = 'test_1f464b71f44e8a749d23a33720' api = Instamojo(api_key=API_KEY, auth_token=AUTH_TOKEN, endpoint='https://test.instamojo.com/api/1.1/') response = api.payment_request_create( amount='11', purpose='testing', send_email=True, email="*****@*****.**", redirect_url="http://www.example.com/handle_redirect.py") print(response['payment_request']['longurl'])
from instamojo_wrapper import Instamojo from digitatShop.settings import PAYMENT_API_KEY,PAYMENT_API_AUTH_TOKEN api = Instamojo(api_key=PAYMENT_API_KEY, auth_token=PAYMENT_API_AUTH_TOKEN, endpoint='https://test.instamojo.com/api/1.1/') # Create a new Payment Requestexite response = api.payment_request_create( amount='20', purpose='For testing', send_email=True, email="*****@*****.**", redirect_url="http://www.feelfreetocode.in" ) # print the long URL of the payment request. url = response['payment_request']['longurl'] print(url)
from instamojo_wrapper import Instamojo from digitalShop.settings import PAYMENT_API_KEY, PAYMENT_AUTH_TOKEN api = Instamojo(api_key=PAYMENT_API_KEY, auth_token=PAYMENT_AUTH_TOKEN, endpoint='https://test.instamojo.com/api/1.1/') # Create a new Payment Request response = api.payment_request_create( amount='20', purpose='Testing', send_email=True, email="*****@*****.**", redirect_url="https://www.programminghubs.com") # print the long URL of the payment request. url = response['payment_request']['longurl'] # print the unique ID(or payment request ID) id = response['payment_request']['id'] print(url, id)
from instamojo_wrapper import Instamojo API_KEY = "test_e6582de88962af12a93fa92b007" AUTH_TOKEN = "test_8fe51d2f048f114df2e7535f024" api = Instamojo(api_key=API_KEY, auth_token=AUTH_TOKEN, endpoint='https://test.instamojo.com/api/1.1/') # Create a new Payment Request response = api.payment_request_create( amount='101', purpose='i am Testing', send_email=True, email="*****@*****.**", redirect_url="http://127.0.0.1:8000/handle_redirect" ) print ("longurl: ",response['payment_request']['longurl'])
from instamojo_wrapper import Instamojo API_KEY = "test_04d6f40897bebe960c0d2dcc939" AUTH_TOKEN = "test_72b7dd93d6738104f7e78f3c097" api = Instamojo(api_key=API_KEY, auth_token=AUTH_TOKEN, endpoint='https://test.instamojo.com/api/1.1/') # Create a new Payment Request response = api.payment_request_create( amount='20', purpose='Testing', send_email=True, email="*****@*****.**", redirect_url="http://localhost/handle_redirect.py") # print the long URL of the payment request. print(response['payment_request']['longurl']) # print the unique ID(or payment request ID) print(response['payment_request']['id'])
class TestPaymentRequests(BaseTestClass): def setUp(self): self.api_endpoint = 'https://www.instamojo.com/api/1.1/' self.api = Instamojo('API-KEY', 'AUTH-TOKEN', self.api_endpoint) @responses.activate def test_payment_request_create(self): data = payment_requests_payload['payment_request_create'] endpoint = self.api_endpoint + 'payment-requests/' responses.add(responses.POST, endpoint, body='{}', content_type='application/json') resp = self.api.payment_request_create(**data['request']) self.assertEqual(resp, {}) self.assertEqual(len(responses.calls), 1) self.assertEqual(responses.calls[0].request.url, endpoint) @responses.activate def test_payment_request_status(self): data = payment_requests_payload['payment_request_status'] endpoint = self.api_endpoint + 'payment-requests/{id}/'.format( **data['request']) responses.add(responses.GET, endpoint, body='{}', content_type='application/json') resp = self.api.payment_request_status(**data['request']) self.assertEqual(resp, {}) self.assertEqual(len(responses.calls), 1) self.assertEqual(responses.calls[0].request.url, endpoint) @responses.activate def test_payment_requests_list(self): data = payment_requests_payload['payment_requests_list'] endpoint = self.api_endpoint + 'payment-requests/' responses.add(responses.GET, endpoint, body='{}', content_type='application/json') resp = self.api.payment_requests_list(**data['request']) self.assertEqual(resp, {}) self.assertEqual(len(responses.calls), 1) self.assertEqual(responses.calls[0].request.url, endpoint) @responses.activate def test_payment_requests_list_optional_params(self): data = payment_requests_payload[ 'payment_requests_list_optional_params'] endpoint = self.api_endpoint + 'payment-requests/' responses.add(responses.GET, endpoint, body='{}', content_type='application/json') resp = self.api.payment_requests_list(**data['request']) self.assertEqual(resp, {}) self.assertEqual(len(responses.calls), 1) parsed_url = urlparse(responses.calls[0].request.url) self.assertTrue(endpoint.endswith(parsed_url.path)) self.assertDictEqual(dict(parse_qsl(parsed_url.query.strip('/'))), data['request']) @responses.activate def test_payment_request_payment_status(self): data = payment_requests_payload['payment_request_payment_status'] endpoint = self.api_endpoint + 'payment-requests/{id}/{payment_id}/'.format( **data['request']) responses.add(responses.GET, endpoint, body='{}', content_type='application/json') resp = self.api.payment_request_payment_status(**data['request']) self.assertEqual(resp, {}) self.assertEqual(len(responses.calls), 1) self.assertEqual(responses.calls[0].request.url, endpoint)
def create(self, validated_data): """ Create payment request with Instamojo server and save proper data in database. Parameters ---------- validated_data: OrderedDict Returns ------- instance Author: Himanshu Shankar (https://himanshus.com) """ from instamojo_wrapper import Instamojo from django.db.utils import IntegrityError from django.contrib.auth import get_user_model # Extract configuration (Also, it's not required by # instamojo_wrapper) ic = validated_data.pop('configuration') # Initialize created_by with None (Will raise an error while # saving) created_by = None # Check if created_by or created_by_id is provided. If so, # set created_by and remove it from validated_data # Again, its not required by instamojo_wrapper if 'created_by' in validated_data: created_by = validated_data.pop('created_by') elif 'created_by_id' in validated_data: user_model = get_user_model() id = validated_data.pop('created_by_id') try: created_by = user_model.objects.get(pk=id) except user_model.DoesNotExist: raise serializers.ValidationError(_(f"User with ID: {id} does " "not exists.")) # Initialize instamojo wrapper imojo = Instamojo(api_key=ic.api_key, auth_token=ic.auth_token, endpoint=ic.base_url) # Try to create a payment request with processed validated_data try: response = imojo.payment_request_create(**validated_data) except ConnectionError as err: raise APIException(_("Server error occurred while creating " "payment request with Instamojo: {err}" .format(err=str(err)))) if not response['success']: raise APIException(_("Server error occurred while creating " "payment request with Instamojo: {err}" .format(err=str(response['message'])))) # Make a copy of successful payment_request data = response['payment_request'].copy() # Set created_by and configuration again if created_by: data['created_by'] = created_by data['configuration'] = ic # Create json dump of original response data['instamojo_raw_response'] = json.dumps(response) # Call super function to save data try: return super(PaymentRequestSerializer, self).create( validated_data=data) # Saving may throw error related to created_by, handle it and # throw APIException as this needs to handled at coding level # while calling .save() except IntegrityError as err: raise APIException(_("Server error: {}".format(str(err))))
from instamojo_wrapper import Instamojo from download_products.settings import PAYMENT_API_AUTH_TOKEN,PAYMENT_API_KEY api = Instamojo(api_key=PAYMENT_API_KEY, auth_token=PAYMENT_API_AUTH_TOKEN, endpoint='https://test.instamojo.com/api/1.1/') # Create a new Payment Request response = api.payment_request_create( amount='20', purpose='Testing', send_email=True, email="*****@*****.**", redirect_url="http://www.example.com/handle_redirect.py" ) # print the long URL of the payment request. url = response['payment_request']['longurl'] # print the unique ID(or payment request ID) print(url)
from instamojo_wrapper import Instamojo from fullecomm.settings import PAYMENT_API_AUTH_TOKEN, PAYMENT_API_KEY api = Instamojo(api_key=PAYMENT_API_KEY, auth_token=PAYMENT_API_AUTH_TOKEN, endpoint='https://test.instamojo.com/api/1.1/') # Create a new Payment Request response = api.payment_request_create(amount='20', purpose='Testing ke liye', send_email=True, email="*****@*****.**", redirect_url="http://www.google.com") # print the long URL of the payment request. url = response['payment_request']['longurl'] # print the unique ID(or payment request ID) print(url)
class TestPaymentRequests(BaseTestClass): def setUp(self): self.api_endpoint = 'https://www.instamojo.com/api/1.1/' self.api = Instamojo('API-KEY', 'AUTH-TOKEN', self.api_endpoint) @responses.activate def test_payment_request_create(self): data = payment_requests_payload['payment_request_create'] endpoint = self.api_endpoint + 'payment-requests/' responses.add( responses.POST, endpoint, body='{}', content_type='application/json' ) resp = self.api.payment_request_create(**data['request']) self.assertEqual(resp, {}) self.assertEqual(len(responses.calls), 1) self.assertEqual( responses.calls[0].request.url, endpoint) @responses.activate def test_payment_request_status(self): data = payment_requests_payload['payment_request_status'] endpoint = self.api_endpoint + 'payment-requests/{id}/'.format(**data['request']) responses.add( responses.GET, endpoint, body='{}', content_type='application/json' ) resp = self.api.payment_request_status(**data['request']) self.assertEqual(resp, {}) self.assertEqual(len(responses.calls), 1) self.assertEqual( responses.calls[0].request.url, endpoint) @responses.activate def test_payment_requests_list(self): data = payment_requests_payload['payment_requests_list'] endpoint = self.api_endpoint + 'payment-requests/' responses.add( responses.GET, endpoint, body='{}', content_type='application/json' ) resp = self.api.payment_requests_list(**data['request']) self.assertEqual(resp, {}) self.assertEqual(len(responses.calls), 1) self.assertEqual( responses.calls[0].request.url, endpoint) @responses.activate def test_payment_requests_list_optional_params(self): data = payment_requests_payload['payment_requests_list_optional_params'] endpoint = self.api_endpoint + 'payment-requests/' responses.add( responses.GET, endpoint, body='{}', content_type='application/json' ) resp = self.api.payment_requests_list(**data['request']) self.assertEqual(resp, {}) self.assertEqual(len(responses.calls), 1) parsed_url = urlparse(responses.calls[0].request.url) self.assertTrue(endpoint.endswith(parsed_url.path)) self.assertDictEqual(dict(parse_qsl(parsed_url.query.strip('/'))), data['request']) @responses.activate def test_payment_request_payment_status(self): data = payment_requests_payload['payment_request_payment_status'] endpoint = self.api_endpoint + 'payment-requests/{id}/{payment_id}/'.format(**data['request']) responses.add( responses.GET, endpoint, body='{}', content_type='application/json' ) resp = self.api.payment_request_payment_status(**data['request']) self.assertEqual(resp, {}) self.assertEqual(len(responses.calls), 1) self.assertEqual( responses.calls[0].request.url, endpoint)