Ris*_*tel 7 ios stripe-payments swift
我想实现Stripe Payment网关。并且需要生成令牌并将其传递给后端。
private func getToken(){
let cardParams = STPCardParams()
cardParams.number = paymentCardTextField?.cardNumber
cardParams.expMonth = (paymentCardTextField?.expirationMonth)!
cardParams.expYear = (paymentCardTextField?.expirationYear)!
cardParams.cvc = paymentCardTextField?.cvc
STPAPIClient.shared().createToken(withCard: cardParams) { (token: STPToken?, error: Error?) in
guard let token = token, error == nil else {
// Present error to user...
return
}
self.dictPayData["stripe_token"] = token.tokenId
print(self.dictPayData)
}
}
Run Code Online (Sandbox Code Playgroud)
确保您需要添加Stripe publishableKey(实时/测试)
在AppDelegate.swift中
import Stripe
class AppDelegate: UIResponder, UIApplicationDelegate{
// var navCon: UINavigationController?
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application la
STPPaymentConfiguration.shared().publishableKey = "pk_test_DSFDSFSDFDFSDFSDFDSDSF"
return true
}
}
Run Code Online (Sandbox Code Playgroud)
在我的PaymentView.swift中
注:使用STPPaymentCardTextFieldDelegate卡片验证。
class PaymentView: UIViewController,STPPaymentCardTextFieldDelegate {
@IBOutlet weak var paymentCardTextField = STPPaymentCardTextField()
}
private func getToken(){
let cardParams = STPCardParams()
cardParams.number = paymentCardTextField?.cardNumber
cardParams.expMonth = (paymentCardTextField?.expirationMonth)!
cardParams.expYear = (paymentCardTextField?.expirationYear)!
cardParams.cvc = paymentCardTextField?.cvc
STPAPIClient.shared().createToken(withCard: cardParams) { (token: STPToken?, error: Error?) in
guard let token = token, error == nil else {
// Present error to user...
return
}
self.dictPayData["stripe_token"] = token.tokenId
print(self.dictPayData)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1894 次 |
| 最近记录: |