def item_buy(id): item = Item.query.get(id) api = Api(merchant_id=1396424, secret_key='test') checkout = Checkout(api=api) data = {"currency": "USD", "amount": str(item.price) + "00"} url = checkout.url(data).get('checkout_url') return redirect(url)
def payment_make(request): resp = MobileResponse() data = json.loads(request.body.decode('utf-8')) card_obj = request.user.cards.filter(status_id=1).first() card_obj.delivery_method = DeliveryMethod.objects.filter(price=int(data['delivery_method'].split(',')[0])).first() amount = card_obj.get_amount() api = Api(merchant_id=settings.MERCHANT_ID, secret_key=settings.MERCHANT_SECRET_KEY) checkout = Checkout(api=api) order_str = f"{request.user.username}_{time.time()}" data = { "order_id": order_str, "currency": "UAH", "amount": int(amount*100) } url = checkout.url(data).get('checkout_url') resp.set_response(url) return HttpResponse(resp.return_success())
def payment(price): api = Api(merchant_id=1396424, secret_key='test') checkout = Checkout(api=api) data = {'currency': 'RUB', 'amount': str(price) + '00'} url = checkout.url(data).get('checkout_url') return redirect(url)
def top_up_account_processing(request: object) -> object: """Buy ptodunct and send message on email admin.""" try: user = User.objects.get(email=request.user.email) sum_num = int(request.POST.get('sum')) if sum_num > 0: api = Api(merchant_id=1396424, secret_key='test') checkout = Checkout(api=api) data = {"currency": "USD", "amount": str(sum_num) + '00'} url = checkout.url(data).get('checkout_url') user.profile.money += sum_num user.profile.save() transaction = Transaction(user=user, amount=sum_num) transaction.save() return redirect(url) else: return redirect(to="edit") except (TypeError, ValueError, OverflowError, User.DoesNotExist): return redirect(to="edit")
def real_buy(id): product = tablet.objects(Tablet_Id=id).first() api = Api(merchant_id=1396424, secret_key='test') checkout = Checkout(api=api) data = {"currency": "EUR", "amount": product.price + "00"} url = checkout.url(data).get('checkout_url') return redirect(url)
def shop(id): item = Item.query.get(id) api = Api(merchant_id=1396424, secret_key='test') checkout = Checkout(api=api) data = {"currency": "RUB", "amount": str(item.prize) + '00'} url = checkout.url(data).get('checkout_url') return redirect(url)
def item_buy(item_id): item = Item.query.get(item_id) api = Api(merchant_id=1396424, secret_key='test') # ставим свои данные checkout = Checkout(api=api) data = {'currency': 'RUB', 'amount': str(item.price) + '00'} url = checkout.url(data).get('checkout_url') return redirect(url)
def payment(id): product = Goods.query.get(id) from cloudipsp import Api, Checkout api = Api(merchant_id=1396424, secret_key='test') checkout = Checkout(api=api) data = {"currency": "USD", "amount": str(product.price) + "00"} url = checkout.url(data).get('checkout_url') return redirect(url)
def post_page(post_id): api = Api(merchant_id=1460849, secret_key='dLQEnCTzxbdV49sLP3jbfq3MMFWTh2dU') checkout = Checkout(api=api) data = { "currency": "RUB", "amount": "100" } url = checkout.url(data).get('checkout_url') return redirect(url)
def product_payment(id): db_sess = db_session.create_session() product = db_sess.query(Products).filter(Products.id == id).first() api = Api(merchant_id=1396424, secret_key='test') checkout = Checkout(api=api) data = {"currency": "RUB", "amount": int(product.price) * 100} url = checkout.url(data).get('checkout_url') return redirect(url)
def item_buy(id): item = db_sess.query(Jobs).get(id) api = Api(merchant_id=1396424, secret_key='test') checkout = Checkout(api=api) data = { "currency": "RUB", "amount": str(item.work_size) + '00' } url = checkout.url(data).get('checkout_url') return redirect(url)
def item_by(id): item = Item.query.get(id) api = Api(merchant_id=1396424, secret_key='test') checkout = Checkout(api=api) data = { 'currency': 'RUB', 'amount': f'{item.price}00' } url = checkout.url(data).get('checkout_url') return redirect(url)
def item_buy(id): item = Item.query.get(id) api = Api( merchant_id=1396424, # эти данные при регистрации в пдатежной системе secret_key='test') checkout = Checkout(api=api) data = { "currency": "RUB", "amount": item.price * 100 # str(item.price) + "00" } url = checkout.url(data).get('checkout_url') return redirect(url)
def item_buy(id): db_sess = db_session.create_session() item = db_sess.query(Item.Item).all() api = Api(merchant_id=1396424, secret_key='test') checkout = Checkout(api=api) sum = 0 for i in item: sum += i.price data = {"currency": "RUB", "amount": str(sum) + "00"} url = checkout.url(data).get('checkout_url') number = random.randint(1, 10000) order_number("Заказ с номером " + str(number) + " оплачен") return redirect(url)
def item_buy(id, cur_country, price): db_sess = db_session.create_session() item = db_sess.query(Products).filter(Products.id == id).first() print(1) order = Orders(name=item.name, phone_number=current_user.phone_number) db_sess.add(order) price = round(price) api = Api(merchant_id=1396424, secret_key='test') checkout = Checkout(api=api) data = {"currency": cur_country, "amount": str(price) + "00"} db_sess.delete(item) db_sess.commit() url = checkout.url(data).get('checkout_url') return redirect(url)
def checkout(): # res = make_response(render_template('checkout.html', get_cart_for_checkout=get_cart_for_checkout(), cart_size=0)) api = Api(merchant_id=1397120, secret_key='test') pay = Checkout(api=api) amount = int(get_total_cart(get_items_from_cookies(request.cookies.get('cart')))) if amount == 0: amount = 1 data = { "currency": "RUB", "amount": str(int(amount)) + '00' } url = pay.url(data).get('checkout_url') res = make_response(redirect(url)) res.set_cookie('cart', '0', max_age=60*60*24) return res
def tarrifs_page(request): """For tarrifs.html page. Connect to FONDY.""" api = Api(merchant_id=1396424, secret_key='test') checkout = Checkout(api=api) data = { "currency": "RUB", "amount": 150000, "order_desc": "Покупка подписки на сайте", "order_id": str(time.time()) } url = checkout.url(data).get('checkout_url') return render(request, 'courses/tarrifs.html', { 'title': 'Тарифы на сайте', 'url': url })
def buy_page(): id = current_user.get_id() form = BuyForm() db_sess = db_session.create_session() user = db_sess.query(User).filter(User.id == id).first() cart = user.cart cart_dict = {} cart = cart.split(', ') for el in cart: el = el.split(': ') item = db_sess.query(Item).filter(Item.id == int(el[0])).first() price = item.price price = price[2:] price = unicodedata.normalize("NFKD", price) price = price.strip() if item.title in cart_dict.keys(): it = { 'price': int(''.join(price.split())), 'amount': int(el[1]) + int(cart_dict[item.title]['amount']), 'image': item.image, 'link': '/item/{}'.format(el[0]), 'id': el[0] } else: it = { 'price': int(''.join(price.split())), 'amount': int(el[1]), 'image': item.image, 'link': '/item/{}'.format(el[0]), 'id': el[0] } cart_dict[item.title] = it total = 0 for key, value in cart_dict.items(): total += value['price'] user.total = total db_sess.commit() if form.validate_on_submit(): api = Api(merchant_id=1396424, secret_key='test') checkout = Checkout(api=api) data = { "currency": "RUB", "amount": str(user.total) + "00" } url = checkout.url(data).get('checkout_url') return redirect(url) return render_template('buying_page.html', cart=cart_dict, title='Корзина', total=total, form=form)
def item_buy(id): item = Item.query.get(id) item.amount -= 1 api = Api(merchant_id=1396424, secret_key='test') checkout = Checkout(api=api) data = { "currency": "UAH", "amount": str(item.price)+"00" } url = checkout.url(data).get('checkout_url') if item.amount > 0: return redirect(url) else: return "This item is not available now (:"
def tarrifsPage(request): api = Api(merchant_id=1465283, secret_key=secret_key) checkout = Checkout(api=api) data = { "currency": "RUB", "amount": 100000, "order_desc": "Покупка подписки на сайте", "order_id": str(time.time()), 'merchant_data': '*****@*****.**' } url = checkout.url(data).get('checkout_url') return render(request, 'courses/tarrifs.html', { 'title': 'Тарифы на сайте', 'url': url })
def tarrifsPage(request): api = Api(merchant_id=os.getenv("tarrifs_merchant_id"), secret_key=secret_key) checkout = Checkout(api=api) data = { "currency": "RUB", "amount": 150000, "order_desc": "Покупка подписки на сайте", "order_id": str(time.time()), 'merchant_data': '*****@*****.**' } url = checkout.url(data).get('checkout_url') return render(request, 'modelsdata/tarrifs.html', { 'title': 'Тарифы на сайте', 'url': url })
def bike_buy(id): bike = Bike.query.get(id) api = Api(merchant_id=1396424, secret_key='test') checkout = Checkout(api=api) data = { "currency": "UAH", "amount": str(bike.price)+"00" } url = checkout.url(data).get('checkout_url') if bike.amount > 0: bike.amount -= 1 db.session.commit() return redirect(url) else: return "This bike is not available now (:"
def item_buy(id): # с помощью render template выводим файл item = Item.query.get(id) from cloudipsp import Api, Checkout api = Api(merchant_id=1396424, secret_key='test') checkout = Checkout(api=api) data = {"currency": "USD", "amount": str(item.price) + '00'} url = checkout.url(data).get('checkout_url') return redirect(url)
def item_buy(id: int): # получаем item по id item: Item = Item.query.get(id) # всзимодействуем с API для оплаты api: Api = Api(merchant_id=1396424, secret_key="test") checkout: Checkout = Checkout(api=api) data: Dict[str, str] = { "currency": "RUB", "amount": str(item.price) + "00" } # url покупки товара url: str = checkout.url(data).get("checkout_url") return redirect(url)
async def main(): api = AsyncAPI( merchant_id=1396424, secret_key="test", request_type="json", api_protocol="1.0.1", api_domain="api.fondy.eu", ) # json - is default checkout = Checkout(api=api) data = { "preauth": "Y", "currency": "RUB", "amount": 10000, "reservation_data": { "test": 1, "test2": 2 }, } response = await checkout.url(data) print(response)
from asgiref.sync import sync_to_async from cloudipsp import Api, Checkout, Order from data.config import FONDY_ID, FONDY_KEY api = Api(merchant_id=FONDY_ID, secret_key=FONDY_KEY) checkout = Checkout(api=api) order = Order(api=api) @sync_to_async def get_payment_info(amount, currency="UAH"): data = {"currency": currency, "amount": int(amount * 100)} payment_info = checkout.url(data) return payment_info @sync_to_async def get_payment_status(order_id: int): data = {"order_id": order_id} return order.status(data)
def setUp(self): self.api = self.get_api() self.checkout = Checkout(api=self.api)
class CheckoutTest(TestCase): def setUp(self): self.api = self.get_api() self.checkout = Checkout(api=self.api) def test_create_url_json(self): response = self.checkout.url(self.data.get('checkout_data')) self.assertEqual(response.get('response_status'), 'success') self.assertEqual(self.api._headers().get('Content-Type'), 'application/json; charset=utf-8') self.assertIn('checkout_url', response) self.assertEqual(len(response.get('checkout_url')) > 0, True) def test_get_order_id(self): data = {'order_id': str(uuid.uuid4())} data.update(self.data.get('checkout_data')) self.checkout.url(data) self.assertEqual(self.checkout.order_id, data.get('order_id')) def test_create_url_json_v2(self): self.api.api_protocol = '2.0' response = self.checkout.url(self.data.get('checkout_data')) self.assertEqual(self.api._headers().get('Content-Type'), 'application/json; charset=utf-8') self.assertEqual(response.get('version'), '2.0') self.assertEqual(len(response.get('data')) > 0, True) def test_create_subscb_json_v2(self): self.api.api_protocol = '2.0' data = self.data.get('checkout_data') recurring_data = { 'recurring_data': { 'start_time': '2028-11-11', 'amount': '234324', 'every': '40', 'period': 'day' } } data.update(recurring_data) response = self.checkout.url(data) self.assertEqual(self.api._headers().get('Content-Type'), 'application/json; charset=utf-8') self.assertEqual(response.get('version'), '2.0') self.assertEqual(len(response.get('data')) > 0, True) def test_create_url_xml(self): self.api.request_type = 'xml' response = self.checkout.url(self.data.get('checkout_data')) self.assertEqual(response.get('response_status'), 'success') self.assertEqual(self.api._headers().get('Content-Type'), 'application/xml; charset=utf-8') self.assertIn('checkout_url', response) self.assertEqual(len(response.get('checkout_url')) > 0, True) def test_create_url_form(self): self.api.request_type = 'form' response = self.checkout.url(self.data.get('checkout_data')) self.assertEqual(response.get('response_status'), 'success') self.assertEqual(self.api._headers().get('Content-Type'), 'application/x-www-form-urlencoded; charset=utf-8') self.assertIn('checkout_url', response) self.assertEqual(len(response.get('checkout_url')) > 0, True) def test_create_token(self): response = self.checkout.token(self.data.get('checkout_data')) self.assertEqual(response.get('response_status'), 'success') self.assertEqual(self.api._headers().get('Content-Type'), 'application/json; charset=utf-8') self.assertIn('token', response) self.assertEqual(len(response.get('token')) > 0, True) def test_create_url_verify(self): response = self.checkout.verification(self.data.get('checkout_data')) self.assertEqual(response.get('response_status'), 'success') self.assertEqual(self.api._headers().get('Content-Type'), 'application/json; charset=utf-8') self.assertIn('checkout_url', response) self.assertEqual(len(response.get('checkout_url')) > 0, True)
from cloudipsp import Api, Checkout api = Api( merchant_id=1396424, secret_key="test", request_type="xml", api_protocol="1.0.1", api_domain="api.fondy.eu", ) # json - is default checkout = Checkout(api=api) data = { "preauth": "Y", "currency": "RUB", "amount": 10000, "reservation_data": { "test": 1, "test2": 2 }, } response = checkout.url(data)
class CheckoutTest(BaseTestCase): def setUp(self): self.api = self.get_api() self.checkout = Checkout(api=self.api) def test_create_url_json(self): response = self.checkout.url(self.data.get("checkout_data")) self.assertEqual(response.get("response_status"), "success") self.assertEqual(self.api._headers().get("Content-Type"), "application/json; charset=utf-8") self.assertIn("checkout_url", response) self.assertEqual(len(response.get("checkout_url")) > 0, True) def test_get_order_id(self): data = {"order_id": str(uuid.uuid4())} data.update(self.data.get("checkout_data")) self.checkout.url(data) self.assertEqual(self.checkout.order_id, data.get("order_id")) def test_create_url_json_v2(self): self.api.api_protocol = "2.0" response = self.checkout.url(self.data.get("checkout_data")) self.assertEqual(self.api._headers().get("Content-Type"), "application/json; charset=utf-8") self.assertEqual(response.get("version"), "2.0") self.assertEqual(len(response.get("data")) > 0, True) def test_create_subscb_json_v2(self): self.api.api_protocol = "2.0" data = self.data.get("checkout_data") recurring_data = { "recurring_data": { "start_time": "2028-11-11", "amount": "234324", "every": "40", "period": "day", } } data.update(recurring_data) response = self.checkout.url(data) self.assertEqual(self.api._headers().get("Content-Type"), "application/json; charset=utf-8") self.assertEqual(response.get("version"), "2.0") self.assertEqual(len(response.get("data")) > 0, True) def test_create_url_xml(self): self.api.request_type = "xml" response = self.checkout.url(self.data.get("checkout_data")) self.assertEqual(response.get("response_status"), "success") self.assertEqual(self.api._headers().get("Content-Type"), "application/xml; charset=utf-8") self.assertIn("checkout_url", response) self.assertEqual(len(response.get("checkout_url")) > 0, True) def test_create_url_form(self): self.api.request_type = "form" response = self.checkout.url(self.data.get("checkout_data")) self.assertEqual(response.get("response_status"), "success") self.assertEqual( self.api._headers().get("Content-Type"), "application/x-www-form-urlencoded; charset=utf-8", ) self.assertIn("checkout_url", response) self.assertEqual(len(response.get("checkout_url")) > 0, True) def test_create_token(self): response = self.checkout.token(self.data.get("checkout_data")) self.assertEqual(response.get("response_status"), "success") self.assertEqual(self.api._headers().get("Content-Type"), "application/json; charset=utf-8") self.assertIn("token", response) self.assertEqual(len(response.get("token")) > 0, True) def test_create_url_verify(self): response = self.checkout.verification(self.data.get("checkout_data")) self.assertEqual(response.get("response_status"), "success") self.assertEqual(self.api._headers().get("Content-Type"), "application/json; charset=utf-8") self.assertIn("checkout_url", response) self.assertEqual(len(response.get("checkout_url")) > 0, True)