https://github.com/vapor-community/stripe
Stripe library for Vapor
https://github.com/vapor-community/stripe
card payment stripe stripe-api swift vapor vapor-provider vapor-service vapor-stripe
Last synced: 10 months ago
JSON representation
Stripe library for Vapor
- Host: GitHub
- URL: https://github.com/vapor-community/stripe
- Owner: vapor-community
- License: mit
- Created: 2017-04-16T00:41:03.000Z (about 9 years ago)
- Default Branch: main
- Last Pushed: 2023-08-21T15:01:37.000Z (almost 3 years ago)
- Last Synced: 2024-12-17T09:08:12.757Z (over 1 year ago)
- Topics: card, payment, stripe, stripe-api, swift, vapor, vapor-provider, vapor-service, vapor-stripe
- Language: Swift
- Homepage:
- Size: 957 KB
- Stars: 180
- Watchers: 12
- Forks: 32
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Stripe


### Stripe is a Vapor helper to use [StripeKit](https://github.com/vapor-community/stripe-kit)
## Usage guide
In your `Package.swift` file, add the following
~~~~swift
.package(url: "https://github.com/vapor-community/stripe.git", from: "14.0.0")
~~~~
To use Stripe in your Vapor application, set the environment variable for you Stripe API key
~~~
export STRIPE_API_KEY="sk_123456"
~~~
Now you can access a `StripeClient` via `Request`.
~~~~swift
struct ChargeToken: Content {
var token: String
}
func chargeCustomer(_ req: Request) throws -> EventLoopFuture {
return try req.content.decode(ChargeToken.self).flatMap { charge in
return req.stripe.charge.create(amount: 2500, currency: .usd, source: charge.stripeToken).map { stripeCharge in
if stripeCharge.status == .success {
return .ok
} else {
print("Stripe charge status: \(stripeCharge.status.rawValue)")
return .badRequest
}
}
}
}
~~~~
## License
Stripe is available under the MIT license. See the [LICENSE](LICENSE) file for more info.
## Want to help?
Feel free to submit a pull request whether it's a clean up, a new approach to handling things, adding a new part of the API, or even if it's just a typo. All help is welcomed! 😀