@@ -129,6 +129,7 @@ type Dependencies struct {
129129 StripeCheckoutSessionCancelURL string
130130 StripeCheckoutSessionPriceID string
131131 StripeWebhookSigningSecret string
132+ StripeCheckoutSessionMetadataMarkerValue string
132133 AUTHGEAR_ONCE_PUBLIC_URL_SCHEME string
133134 AUTHGEAR_ONCE_ONCE_COMMAND_DOWNLOAD_URL_GO_TEMPLATE string
134135 AUTHGEAR_ONCE_ONCE_COMMAND_IMAGE_OVERRIDE string
@@ -291,9 +292,10 @@ func Handler_v1_stripe_checkout(w http.ResponseWriter, r *http.Request) {
291292 stripeClient := deps .StripeClient
292293
293294 checkoutSession , err := pkgstripe .NewCheckoutSession (ctx , stripeClient , & pkgstripe.CheckoutSessionParams {
294- SuccessURL : deps .StripeCheckoutSessionSuccessURL ,
295- CancelURL : deps .StripeCheckoutSessionCancelURL ,
296- PriceID : deps .StripeCheckoutSessionPriceID ,
295+ MarkerValue : deps .StripeCheckoutSessionMetadataMarkerValue ,
296+ SuccessURL : deps .StripeCheckoutSessionSuccessURL ,
297+ CancelURL : deps .StripeCheckoutSessionCancelURL ,
298+ PriceID : deps .StripeCheckoutSessionPriceID ,
297299 })
298300 if err != nil {
299301 slogging .Error (ctx , logger , "failed to create checkout session" ,
@@ -315,7 +317,7 @@ func Handler_v1_stripe_webhook(w http.ResponseWriter, r *http.Request) {
315317
316318 e , err := pkgstripe .ConstructEvent (ctx , deps .StripeClient , r , pkgstripe.ConstructEventOptions {
317319 SigningSecret : deps .StripeWebhookSigningSecret ,
318- PriceID : deps .StripeCheckoutSessionPriceID ,
320+ MarkerValue : deps .StripeCheckoutSessionMetadataMarkerValue ,
319321 })
320322 if err != nil {
321323 if errors .Is (err , pkgstripe .ErrUnknownEvent ) {
@@ -421,15 +423,16 @@ func main() {
421423 })
422424
423425 dependencies := Dependencies {
424- HTTPClient : & http.Client {},
425- StripeClient : stripeClient ,
426- SMTPDialer : smtpDialer ,
427- SMTPSender : os .Getenv ("AUTHGEAR_ONCE_SMTP_SENDER" ),
428- StripeCheckoutSessionSuccessURL : os .Getenv ("AUTHGEAR_ONCE_STRIPE_CHECKOUT_SESSION_SUCCESS_URL" ),
429- StripeCheckoutSessionCancelURL : os .Getenv ("AUTHGEAR_ONCE_STRIPE_CHECKOUT_SESSION_CANCEL_URL" ),
430- StripeCheckoutSessionPriceID : os .Getenv ("AUTHGEAR_ONCE_STRIPE_CHECKOUT_SESSION_PRICE_ID" ),
431- StripeWebhookSigningSecret : os .Getenv ("AUTHGEAR_ONCE_STRIPE_WEBHOOK_SIGNING_SECRET" ),
432- AUTHGEAR_ONCE_PUBLIC_URL_SCHEME : os .Getenv ("AUTHGEAR_ONCE_PUBLIC_URL_SCHEME" ),
426+ HTTPClient : & http.Client {},
427+ StripeClient : stripeClient ,
428+ SMTPDialer : smtpDialer ,
429+ SMTPSender : os .Getenv ("AUTHGEAR_ONCE_SMTP_SENDER" ),
430+ StripeCheckoutSessionSuccessURL : os .Getenv ("AUTHGEAR_ONCE_STRIPE_CHECKOUT_SESSION_SUCCESS_URL" ),
431+ StripeCheckoutSessionCancelURL : os .Getenv ("AUTHGEAR_ONCE_STRIPE_CHECKOUT_SESSION_CANCEL_URL" ),
432+ StripeCheckoutSessionPriceID : os .Getenv ("AUTHGEAR_ONCE_STRIPE_CHECKOUT_SESSION_PRICE_ID" ),
433+ StripeWebhookSigningSecret : os .Getenv ("AUTHGEAR_ONCE_STRIPE_WEBHOOK_SIGNING_SECRET" ),
434+ StripeCheckoutSessionMetadataMarkerValue : os .Getenv ("AUTHGEAR_ONCE_STRIPE_CHECKOUT_SESSION_METADATA_MARKER_VALUE" ),
435+ AUTHGEAR_ONCE_PUBLIC_URL_SCHEME : os .Getenv ("AUTHGEAR_ONCE_PUBLIC_URL_SCHEME" ),
433436 AUTHGEAR_ONCE_ONCE_COMMAND_DOWNLOAD_URL_GO_TEMPLATE : os .Getenv ("AUTHGEAR_ONCE_ONCE_COMMAND_DOWNLOAD_URL_GO_TEMPLATE" ),
434437 AUTHGEAR_ONCE_ONCE_COMMAND_IMAGE_OVERRIDE : os .Getenv ("AUTHGEAR_ONCE_ONCE_COMMAND_IMAGE_OVERRIDE" ),
435438 KeygenConfig : keygen.KeygenConfig {
@@ -451,6 +454,11 @@ func main() {
451454
452455 ctx = slogging .WithLogger (ctx , logger )
453456
457+ if dependencies .StripeCheckoutSessionMetadataMarkerValue == "" {
458+ slogging .Error (ctx , logger , "AUTHGEAR_ONCE_STRIPE_CHECKOUT_SESSION_METADATA_MARKER_VALUE must be set" )
459+ os .Exit (1 )
460+ }
461+
454462 if err := rootCmd .ExecuteContext (ctx ); err != nil {
455463 slogging .Error (ctx , logger , "root command completed with error" ,
456464 "error" , err )
0 commit comments