just pass the whole string through
based on this test (which i think async-stripe forked): https://docs.rs/stripe-rust/0.12.3/src/stripe/resources/event.rs.html#355 and then based on the struct that they deserialize into: https://docs.rs/async-stripe/latest/src/stripe/resources/generated/event.rs.html#16
This commit is contained in:
parent
64505953ee
commit
d8512d50de
@ -51,12 +51,6 @@ pub async fn user_stripe_deposits_get(
|
|||||||
Ok(Json(response).into_response())
|
Ok(Json(response).into_response())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// the JSON input to the `user_balance_stripe_post` handler.
|
|
||||||
#[derive(Debug, Deserialize)]
|
|
||||||
pub struct StripePost {
|
|
||||||
data: Box<serde_json::value::RawValue>,
|
|
||||||
}
|
|
||||||
|
|
||||||
/// `POST /user/balance/stripe` -- Process a stripe transaction;
|
/// `POST /user/balance/stripe` -- Process a stripe transaction;
|
||||||
/// this endpoint is called from the webhook with the user_id parameter in the request
|
/// this endpoint is called from the webhook with the user_id parameter in the request
|
||||||
#[debug_handler]
|
#[debug_handler]
|
||||||
@ -64,7 +58,7 @@ pub async fn user_balance_stripe_post(
|
|||||||
Extension(app): Extension<Arc<Web3ProxyApp>>,
|
Extension(app): Extension<Arc<Web3ProxyApp>>,
|
||||||
// InsecureClientIp(ip): InsecureClientIp,
|
// InsecureClientIp(ip): InsecureClientIp,
|
||||||
headers: HeaderMap,
|
headers: HeaderMap,
|
||||||
Json(payload): Json<StripePost>,
|
payload: String,
|
||||||
) -> Web3ProxyResponse {
|
) -> Web3ProxyResponse {
|
||||||
// TODO: (high) rate limits by IP address. login limiter is probably too low
|
// TODO: (high) rate limits by IP address. login limiter is probably too low
|
||||||
// TODO: maybe instead, a bad stripe-header should ban the IP? or a good one should allow it?
|
// TODO: maybe instead, a bad stripe-header should ban the IP? or a good one should allow it?
|
||||||
@ -88,9 +82,6 @@ pub async fn user_balance_stripe_post(
|
|||||||
));
|
));
|
||||||
};
|
};
|
||||||
|
|
||||||
let payload =
|
|
||||||
serde_json::to_string(&payload.data).web3_context("could not parse payload data")?;
|
|
||||||
|
|
||||||
let signature = signature
|
let signature = signature
|
||||||
.to_str()
|
.to_str()
|
||||||
.web3_context("Could not parse stripe signature as byte-string")?;
|
.web3_context("Could not parse stripe signature as byte-string")?;
|
||||||
|
Loading…
Reference in New Issue
Block a user