Skip to content

Instantly share code, notes, and snippets.

@melwaraki
Created November 28, 2018 17:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save melwaraki/8b8f153a9d13705bc542168358d3ee99 to your computer and use it in GitHub Desktop.
Save melwaraki/8b8f153a9d13705bc542168358d3ee99 to your computer and use it in GitHub Desktop.
//function that presents STPPaymentMethodsViewController
func handlePaymentMethodsButtonTapped() {
// Setup customer context
let customerKeyProvider = StripeCustomerSessionManager()
let customerContext = STPCustomerContext(keyProvider: customerKeyProvider)
// Setup payment methods view controller
let paymentMethodsViewController = STPPaymentMethodsViewController(configuration: STPPaymentConfiguration.shared(), theme: STPTheme.default(), customerContext: customerContext, delegate: self)
// Present payment methods view controller
let navigationController = UINavigationController(rootViewController: paymentMethodsViewController)
present(navigationController, animated: true) //crashes here - doesn't crash when i comment out this line but then obviously doesn't present the vc either
}
//delegate functions - not sure if necessary here
func paymentMethodsViewController(_ paymentMethodsViewController: STPPaymentMethodsViewController, didFailToLoadWithError error: Error) {
// Dismiss payment methods view controller
dismiss(animated: true)
// Present error to user...
}
func paymentMethodsViewControllerDidCancel(_ paymentMethodsViewController: STPPaymentMethodsViewController) {
// Dismiss payment methods view controller
dismiss(animated: true)
}
func paymentMethodsViewControllerDidFinish(_ paymentMethodsViewController: STPPaymentMethodsViewController) {
// Dismiss payment methods view controller
dismiss(animated: true)
SwiftSpinner.show("Updating Payment Methods")
APIManager.getWallet(success: { (w) in
SwiftSpinner.hide()
print("current wallet = ")
print(w)
print(w.defaultCard?.brandName)
self.wallet = w
self.tableView.reloadData()
}, error: { (errorMessage) in
// Handle error.
SwiftSpinner.hide()
let alertView = UIAlertController(title: "Error Fetching Payment Details", message: errorMessage, preferredStyle: .alert)
alertView.addAction(UIAlertAction(title: "Dismiss", style: .default, handler: nil))
self.present(alertView, animated: true, completion: nil)
}, forceRefresh: true)
}
func paymentMethodsViewController(_ paymentMethodsViewController: STPPaymentMethodsViewController, didSelect paymentMethod: STPPaymentMethod) {
// Save selected payment meth
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment