updated webhook

This commit is contained in:
James Wyndham 2024-03-07 14:14:42 +08:00
parent 360fd4be25
commit edd63f7665
7 changed files with 36 additions and 11 deletions

View File

@ -9,6 +9,7 @@ ARG STRIPE_SECRET_KEY=""
ARG STRIPE_CANCEL_URL="" ARG STRIPE_CANCEL_URL=""
ARG STRIPE_SUCCESS_URL="" ARG STRIPE_SUCCESS_URL=""
ARG STRIPE_BILLING_RETURN_URL="" ARG STRIPE_BILLING_RETURN_URL=""
ARG STRIPE_WHSEC=""
ARG HOST="" ARG HOST=""
ARG PORT="443" ARG PORT="443"
ARG DEVELOPMENT="" ARG DEVELOPMENT=""
@ -19,6 +20,7 @@ ENV STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY}
ENV STRIPE_CANCEL_URL=${STRIPE_CANCEL_URL} ENV STRIPE_CANCEL_URL=${STRIPE_CANCEL_URL}
ENV STRIPE_SUCCESS_URL=${STRIPE_SUCCESS_URL} ENV STRIPE_SUCCESS_URL=${STRIPE_SUCCESS_URL}
ENV STRIPE_BILLING_RETURN_URL=${STRIPE_BILLING_RETURN_URL} ENV STRIPE_BILLING_RETURN_URL=${STRIPE_BILLING_RETURN_URL}
ENV STRIPE_WHSEC=${STRIPE_WHSEC}
ENV HOST=${HOST} ENV HOST=${HOST}
ENV PORT=${PORT} ENV PORT=${PORT}
ENV DEVELOPMENT=${DEVELOPMENT} ENV DEVELOPMENT=${DEVELOPMENT}

Binary file not shown.

View File

@ -0,0 +1,20 @@
onRecordAfterCreateRequest((e) => {
const message = new MailerMessage({
from: {
address: $app.settings().meta.senderAddress,
name: $app.settings().meta.senderName,
},
to: [{address: e.record.email()}],
subject: "YOUR_SUBJECT...",
html: "YOUR_HTML_BODY...",
// bcc, cc and custom headers are also supported...
})
$app.newMailClient().send(message)
}, "user")
routerAdd("GET", "/hello/:name", (c) => {
let name = c.pathParam("name")
return c.json(200, { "message": "Hello " + name })
})

View File

@ -9,6 +9,7 @@ services:
STRIPE_SUCCESS_URL: https://fastpocket.dev/account STRIPE_SUCCESS_URL: https://fastpocket.dev/account
STRIPE_CANCEL_URL: https://fastpocket.dev/pricing STRIPE_CANCEL_URL: https://fastpocket.dev/pricing
STRIPE_BILLING_RETURN_URL: https://fastpocket.dev/account STRIPE_BILLING_RETURN_URL: https://fastpocket.dev/account
STRIPE_WHSEC: whsec_3CwRHq3in97luW9zKAsVvmy2MUfib6vT
PORT: 8090 PORT: 8090
DEVELOPMENT: "" DEVELOPMENT: ""
platform: linux/amd64 platform: linux/amd64

View File

@ -15,6 +15,7 @@ primary_region = 'syd'
STRIPE_SUCCESS_URL = 'https://www.fastpocket.dev/account' STRIPE_SUCCESS_URL = 'https://www.fastpocket.dev/account'
STRIPE_CANCEL_URL = 'https://www.fastpocket.dev/pricing' STRIPE_CANCEL_URL = 'https://www.fastpocket.dev/pricing'
STRIPE_BILLING_RETURN_URL = 'https://www.fastpocket.dev/account' STRIPE_BILLING_RETURN_URL = 'https://www.fastpocket.dev/account'
STRIPE_WHSEC = 'whsec_3CwRHq3in97luW9zKAsVvmy2MUfib6vT'
# requires STRIPE_SECRET_KEY = '{sk_live_...}' to be setup as a secret # requires STRIPE_SECRET_KEY = '{sk_live_...}' to be setup as a secret
# see: https://fly.io/docs/reference/secrets/#setting-secrets # see: https://fly.io/docs/reference/secrets/#setting-secrets

View File

@ -7,7 +7,6 @@ import (
"log" "log"
"net/http" "net/http"
"os" "os"
"strings"
"time" "time"
"github.com/labstack/echo/v5" "github.com/labstack/echo/v5"
@ -41,18 +40,19 @@ func int64ToISODate(timestamp int64) string {
func main() { func main() {
// Retreive stripe generated webhook secret // Retreive stripe generated webhook secret
SECRET_TXT, err := os.ReadFile("secret.txt") // SECRET_TXT, err := os.ReadFile("secret.txt")
if err != nil { // if err != nil {
log.Fatal(err) // log.Fatal(err)
} // }
WHSEC := strings.ReplaceAll(string(SECRET_TXT), "\n", "") // WHSEC := strings.ReplaceAll(string(SECRET_TXT), "\n", "")
log.Print(WHSEC) // log.Print(WHSEC)
app := pocketbase.New() app := pocketbase.New()
// Retreive your STRIPE_SECRET_KEY from environment variables // Retreive your STRIPE_SECRET_KEY from environment variables
stripe.Key = os.Getenv("STRIPE_SECRET_KEY") stripe.Key = os.Getenv("STRIPE_SECRET_KEY")
stripeSuccessURL := os.Getenv("STRIPE_SUCCESS_URL") stripeSuccessURL := os.Getenv("STRIPE_SUCCESS_URL")
stripeCancelURL := os.Getenv("STRIPE_CANCEL_URL") stripeCancelURL := os.Getenv("STRIPE_CANCEL_URL")
stripeBillingReturnURL := os.Getenv("STRIPE_BILLING_RETURN_URL") stripeBillingReturnURL := os.Getenv("STRIPE_BILLING_RETURN_URL")
WHSEC := os.Getenv("STRIPE_WHSEC")
app.OnBeforeServe().Add(func(e *core.ServeEvent) error { app.OnBeforeServe().Add(func(e *core.ServeEvent) error {
e.Router.POST("/create-checkout-session", func(c echo.Context) error { e.Router.POST("/create-checkout-session", func(c echo.Context) error {
// 1. Destructure the price and quantity from the POST body // 1. Destructure the price and quantity from the POST body

View File

@ -3,6 +3,7 @@
echo "STRIPE_SECRET_KEY = $STRIPE_SECRET_KEY" echo "STRIPE_SECRET_KEY = $STRIPE_SECRET_KEY"
echo "STRIPE_CANCEL_URL = $STRIPE_CANCEL_URL" echo "STRIPE_CANCEL_URL = $STRIPE_CANCEL_URL"
echo "STRIPE_SUCCESS_URL = $STRIPE_SUCCESS_URL" echo "STRIPE_SUCCESS_URL = $STRIPE_SUCCESS_URL"
echo "STRIPE_WHSEC = $STRIPE_WHSEC"
echo "HOST = $HOST" echo "HOST = $HOST"
echo "PORT = $PORT" echo "PORT = $PORT"
echo "DEVELOPMENT = $DEVELOPMENT" echo "DEVELOPMENT = $DEVELOPMENT"
@ -17,10 +18,10 @@ if [[ -n "$DEVELOPMENT" ]]; then
# Serve Online # Serve Online
elif [[ -n "$HOST" && -n "$STRIPE_SECRET_KEY" ]]; then elif [[ -n "$HOST" && -n "$STRIPE_SECRET_KEY" ]]; then
echo "Serving Online..." echo "Serving Online..."
nohup stripe listen --print-secret --api-key "$STRIPE_SECRET_KEY" > secret.txt & # nohup stripe listen --print-secret --api-key "$STRIPE_SECRET_KEY" > secret.txt &
wait $! # wait $!
echo "WHSEC = $(<secret.txt)" # echo "WHSEC = $(<secret.txt)"
nohup stripe listen --forward-to "https://$HOST/stripe" --api-key "$STRIPE_SECRET_KEY" --live > stripe.out 2>&1 & # nohup stripe listen --forward-to "https://$HOST/stripe" --api-key "$STRIPE_SECRET_KEY" --live > stripe.out 2>&1 &
nohup ./bin/app-amd64-linux serve --http "0.0.0.0:8090" nohup ./bin/app-amd64-linux serve --http "0.0.0.0:8090"
# Error # Error
else else