stripe verify
This commit is contained in:
parent
d726aa8d33
commit
d7b887e1ad
@ -1,6 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
export MNML_USER=$(whoami)
|
|
||||||
export MNML_PG_PASSWORD=$(openssl rand -base64 16)
|
|
||||||
export MNML_PG_HOST="localhost"
|
|
||||||
|
|
||||||
@ -5,3 +5,4 @@ MAIL_DOMAIN=vinyl.mnml.gg
|
|||||||
MAIL_PASSWORD=mmmmmmmmmmmmmmmm
|
MAIL_PASSWORD=mmmmmmmmmmmmmmmm
|
||||||
|
|
||||||
STRIPE_SECRET=shhhhhhhhhh
|
STRIPE_SECRET=shhhhhhhhhh
|
||||||
|
STRIPE_WH_SECRET=SHHHHHHH
|
||||||
|
|||||||
@ -230,10 +230,31 @@ fn process_stripe_event(event: Event, pool: &PgPool) -> Result<String, Error> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn stripe(req: &mut Request) -> IronResult<Response> {
|
pub fn stripe(req: &mut Request) -> IronResult<Response> {
|
||||||
let state = req.get::<Readable<State>>().unwrap();
|
let webhook_secret = env::var("STRIPE_WH_SECRET").ok();
|
||||||
let event = match req.get::<bodyparser::Struct<Event>>() {
|
let state= req.get::<Readable<State>>().unwrap();
|
||||||
Ok(Some(b)) => b,
|
|
||||||
_ => return Err(IronError::from(MnmlHttpError::BadRequest)),
|
let event = match webhook_secret {
|
||||||
|
// prod mode
|
||||||
|
Some(s) => {
|
||||||
|
let mut payload = String::new();
|
||||||
|
req.body.read_to_string(&mut payload)
|
||||||
|
.or(Err(IronError::from(MnmlHttpError::BadRequest)))?;
|
||||||
|
|
||||||
|
let sig = match req.headers.get_raw("Stripe-Signature") {
|
||||||
|
Some(s) => String::from_utf8(s[0].clone())
|
||||||
|
.or(Err(IronError::from(MnmlHttpError::BadRequest)))?,
|
||||||
|
None => return Err(IronError::from(MnmlHttpError::BadRequest)),
|
||||||
|
};
|
||||||
|
|
||||||
|
stripe::Webhook::construct_event(payload, sig, s)
|
||||||
|
.or(Err(IronError::from(MnmlHttpError::BadRequest)))?
|
||||||
|
},
|
||||||
|
|
||||||
|
// dev server
|
||||||
|
None => match req.get::<bodyparser::Struct<Event>>() {
|
||||||
|
Ok(Some(b)) => b,
|
||||||
|
_ => return Err(IronError::from(MnmlHttpError::BadRequest)),
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
match process_stripe_event(event, &state.pool) {
|
match process_stripe_event(event, &state.pool) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user