mirror of
https://github.com/simple-login/app.git
synced 2024-09-28 20:51:29 +02:00
Create /dashboard/coinbase_checkout, remove extend_subscription route
This commit is contained in:
parent
f19a7e1bca
commit
3dd8ed7840
@ -25,5 +25,4 @@ from .views import (
|
|||||||
contact_detail,
|
contact_detail,
|
||||||
setup_done,
|
setup_done,
|
||||||
batch_import,
|
batch_import,
|
||||||
extend_subscription,
|
|
||||||
)
|
)
|
||||||
|
@ -100,16 +100,12 @@
|
|||||||
<a href="https://commerce.coinbase.com/?lang=en" target="_blank">
|
<a href="https://commerce.coinbase.com/?lang=en" target="_blank">
|
||||||
Coinbase Commerce<i class="fe fe-external-link"></i>
|
Coinbase Commerce<i class="fe fe-external-link"></i>
|
||||||
</a> <br>
|
</a> <br>
|
||||||
Only the yearly plan is supported.
|
Only the yearly plan is supported. <br>
|
||||||
|
|
||||||
<div>
|
<a class="btn btn-primary" href="{{ url_for('dashboard.coinbase_checkout_route') }}"
|
||||||
<a class="buy-with-crypto" data-custom="{{ current_user.id }}"
|
target="_blank">
|
||||||
href="{{ coinbase_url }}">
|
$30/year - Crypto <i class="fe fe-external-link"></i>
|
||||||
Yearly - $30/year - Crypto
|
|
||||||
</a>
|
</a>
|
||||||
<script src="https://commerce.coinbase.com/v1/checkout.js?version=201807">
|
|
||||||
</script>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
({{ coinbase_sub.end_at.format("YYYY-MM-DD") }}).
|
({{ coinbase_sub.end_at.format("YYYY-MM-DD") }}).
|
||||||
<br>
|
<br>
|
||||||
You can extend your subscription on
|
You can extend your subscription on
|
||||||
<a href="{{ url_for('dashboard.extend_subscription_route') }}" class="btn btn-sm btn-outline-primary">
|
<a href="{{ url_for('dashboard.coinbase_checkout_route') }}" class="btn btn-sm btn-outline-primary">
|
||||||
Extend Subscription
|
Extend Subscription
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
from flask import render_template, flash, redirect, url_for
|
|
||||||
from flask_login import login_required, current_user
|
|
||||||
|
|
||||||
from app.config import COINBASE_CHECKOUT_ID
|
|
||||||
from app.dashboard.base import dashboard_bp
|
|
||||||
from app.models import CoinbaseSubscription
|
|
||||||
|
|
||||||
|
|
||||||
@dashboard_bp.route("/extend_subscription", methods=["GET", "POST"])
|
|
||||||
@login_required
|
|
||||||
def extend_subscription_route():
|
|
||||||
coinbase_subscription = CoinbaseSubscription.get_by(user_id=current_user.id)
|
|
||||||
# this page is only for user who has an active coinbase subscription
|
|
||||||
if not coinbase_subscription or not coinbase_subscription.is_active():
|
|
||||||
flash("Unknown error, redirect to home page", "error")
|
|
||||||
return redirect(url_for("dashboard.index"))
|
|
||||||
|
|
||||||
coinbase_url = "https://commerce.coinbase.com/checkout/" + COINBASE_CHECKOUT_ID
|
|
||||||
|
|
||||||
return render_template(
|
|
||||||
"dashboard/extend_subscription.html",
|
|
||||||
coinbase_subscription=coinbase_subscription,
|
|
||||||
coinbase_url=coinbase_url,
|
|
||||||
)
|
|
@ -1,3 +1,4 @@
|
|||||||
|
from coinbase_commerce import Client
|
||||||
from flask import render_template, flash, redirect, url_for
|
from flask import render_template, flash, redirect, url_for
|
||||||
from flask_login import login_required, current_user
|
from flask_login import login_required, current_user
|
||||||
|
|
||||||
@ -6,9 +7,11 @@ from app.config import (
|
|||||||
PADDLE_MONTHLY_PRODUCT_ID,
|
PADDLE_MONTHLY_PRODUCT_ID,
|
||||||
PADDLE_YEARLY_PRODUCT_ID,
|
PADDLE_YEARLY_PRODUCT_ID,
|
||||||
URL,
|
URL,
|
||||||
COINBASE_CHECKOUT_ID,
|
COINBASE_YEARLY_PRICE,
|
||||||
|
COINBASE_API_KEY,
|
||||||
)
|
)
|
||||||
from app.dashboard.base import dashboard_bp
|
from app.dashboard.base import dashboard_bp
|
||||||
|
from app.log import LOG
|
||||||
|
|
||||||
|
|
||||||
@dashboard_bp.route("/pricing", methods=["GET", "POST"])
|
@dashboard_bp.route("/pricing", methods=["GET", "POST"])
|
||||||
@ -18,15 +21,12 @@ def pricing():
|
|||||||
flash("You are already a premium user", "warning")
|
flash("You are already a premium user", "warning")
|
||||||
return redirect(url_for("dashboard.index"))
|
return redirect(url_for("dashboard.index"))
|
||||||
|
|
||||||
coinbase_url = "https://commerce.coinbase.com/checkout/" + COINBASE_CHECKOUT_ID
|
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
"dashboard/pricing.html",
|
"dashboard/pricing.html",
|
||||||
PADDLE_VENDOR_ID=PADDLE_VENDOR_ID,
|
PADDLE_VENDOR_ID=PADDLE_VENDOR_ID,
|
||||||
PADDLE_MONTHLY_PRODUCT_ID=PADDLE_MONTHLY_PRODUCT_ID,
|
PADDLE_MONTHLY_PRODUCT_ID=PADDLE_MONTHLY_PRODUCT_ID,
|
||||||
PADDLE_YEARLY_PRODUCT_ID=PADDLE_YEARLY_PRODUCT_ID,
|
PADDLE_YEARLY_PRODUCT_ID=PADDLE_YEARLY_PRODUCT_ID,
|
||||||
success_url=URL + "/dashboard/subscription_success",
|
success_url=URL + "/dashboard/subscription_success",
|
||||||
coinbase_url=coinbase_url,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -35,3 +35,19 @@ def pricing():
|
|||||||
def subscription_success():
|
def subscription_success():
|
||||||
flash("Thanks so much for supporting SimpleLogin!", "success")
|
flash("Thanks so much for supporting SimpleLogin!", "success")
|
||||||
return redirect(url_for("dashboard.index"))
|
return redirect(url_for("dashboard.index"))
|
||||||
|
|
||||||
|
|
||||||
|
@dashboard_bp.route("/coinbase_checkout")
|
||||||
|
@login_required
|
||||||
|
def coinbase_checkout_route():
|
||||||
|
client = Client(api_key=COINBASE_API_KEY)
|
||||||
|
charge = client.charge.create(
|
||||||
|
name="1 Year Premium Subscription",
|
||||||
|
local_price={"amount": str(COINBASE_YEARLY_PRICE), "currency": "USD"},
|
||||||
|
pricing_type="fixed_price",
|
||||||
|
metadata={"user_id": current_user.id},
|
||||||
|
)
|
||||||
|
|
||||||
|
LOG.d("Create coinbase charge %s", charge)
|
||||||
|
|
||||||
|
return redirect(charge["hosted_url"])
|
||||||
|
2
cron.py
2
cron.py
@ -130,7 +130,7 @@ def notify_manual_sub_end():
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
extend_subscription_url = URL + "/dashboard/extend_subscription"
|
extend_subscription_url = URL + "/dashboard/coinbase_checkout"
|
||||||
for coinbase_subscription in CoinbaseSubscription.query.all():
|
for coinbase_subscription in CoinbaseSubscription.query.all():
|
||||||
need_reminder = False
|
need_reminder = False
|
||||||
if (
|
if (
|
||||||
|
Loading…
Reference in New Issue
Block a user