예제 #1
0
    def get_url(self, state, update: Update):
        purchase = DB.get_purchase_by_reference(state['order'])

        if purchase is None:
            date = int(time())

            url = 'https://secure.wayforpay.com/pay?behavior=offline'
            myobj = {
                'merchantAccount': '34_89_218_42',
                'merchantDomainName': 'https://t.me/timeplayer_bot',
                'merchantTransactionSecureType': 'AUTO',
                'orderReference': state['order'],
                'orderDate': date,
                'amount': 40,
                'currency': 'UAH',
                'productName': ['TimePlayer Premium'],
                'productCount': [1],
                'productPrice': [40],
                'serviceUrl': 'http://34.89.218.42:7000/',
                'language': 'RU',
                'regularMode': 'monthly',
                'regularOn': 1,
                'regularCount': 12,
                'alternativeCurrency': 'RUB'
            }

            signature_string = ';'.join([
                myobj['merchantAccount'], myobj['merchantDomainName'],
                myobj['orderReference'],
                str(date),
                str(myobj['amount']), myobj['currency'],
                myobj['productName'][0],
                str(myobj['productCount'][0]),
                str(myobj['productPrice'][0])
            ])

            myobj['merchantSignature'] = hmac.new(
                b'23a1179dc7491d991e8d840b11555a70eaa7c53a',
                msg=signature_string.encode(),
                digestmod='MD5').hexdigest()

            x = requests.post(url, data=myobj)

            vkh = json.loads(x.text)['url'].split('=')[1]
            DB.add_purchase(state['order'], update.effective_chat.id, vkh)
            return "https://secure.wayforpay.com/page?vkh=" + vkh
        else:
            return "https://secure.wayforpay.com/page?vkh=" + purchase['vkh']
예제 #2
0
def hello():
    if request.method == 'POST':
        cur_time = int(time())

        form = json.loads(list(request.form.to_dict().keys())[0])
        print(form)

        obj = {
            "orderReference": form['orderReference'],
            "status": "accept",
            "time": cur_time
        }

        signature_string = ";".join(
            [obj["orderReference"], obj['status'],
             str(obj['time'])])

        obj['signature'] = hmac.new(SECRET_KEY,
                                    msg=signature_string.encode(),
                                    digestmod='MD5').hexdigest()

        if form['transactionStatus'] == "Approved":
            DB.confirm_purchase(obj["orderReference"])

            purchase = DB.get_purchase_by_reference(obj["orderReference"])

            f = open('bot_data.json')
            json_object = json.load(f)

            updater = Updater(json_object["token"])

            updater.bot.send_message(
                chat_id=purchase['chat_id'],
                text="*Premium в этом чате был успешно продлен на месяц* 😊",
                parse_mode="Markdown")

        return json.dumps(obj)

    else:
        print(request.form.to_dict())
        return "Hello World!"