StripeProvider is a Vapor wrapper around StripeKit
In your Package.swift
file, add the following
.package(url: "https://github.com/vapor-community/stripe-provider.git", from: "3.0.0")
Register the configuration and the provider in configure.swift
import Stripe
let stripeConfiguration = StripeConfiguration(apiKey: "sk_live_1234")
services.register(config)
try services.register(StripeProvider())
Now to make a charge
import Stripe
struct ChargeToken: Content {
var stripeToken: String
}
func chargeCustomer(_ req: Request) throws -> EventLoopFuture<HTTPStatus> {
return try req.content.decode(ChargeToken.self).flatMap { charge in
return try req.make(StripeClient.self).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
}
}
}
}
Vapor Stripe Provider is available under the MIT license. See the LICENSE file for more info.
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! 😀