首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在iOS项目中正确实现条带?

如何在iOS项目中正确实现条带?
EN

Stack Overflow用户
提问于 2017-08-29 03:51:55
回答 1查看 446关注 0票数 0

我正在开发一个iOS应用程序,它包括在应用程序之外销售商品,所以我使用Cocoapods下载了条纹,并将其放在我的贵宾犬中。我知道我已经正确地安装在我的应用程序中并输入了我的测试应用程序接口密钥,因为它import Stripe line工作得很好。然而,我在创建令牌时遇到了问题。每次我尝试在模拟器中运行我的代码并尝试进行购买时,都会打印出一个错误。我不知道是不是因为我在某个地方实现了错误的代码行,或者遗漏了一些代码,所以我想知道是否有人可以帮我找出购买失败的原因?我知道我没有后端设置,但我并没有试图发送令牌到服务器,但我只是试图确保我的应用程序连接到条纹,这是需要实际进行购买的6个步骤中的第一步。提前感谢您的帮助。

在允许用户(通过firebase身份验证)进行购买和存储数据的代码之前,为视图控制器编写代码:

代码语言:javascript
运行
复制
import UIKit

class PaymentInfoController: UIViewController {


@IBOutlet weak var paymentLabel: UILabel!
@IBOutlet weak var cardField: UITextField!
@IBOutlet weak var cvcField: UITextField!
@IBOutlet weak var expField: UITextField! 

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {   

    if let checkoutVC = segue.destination as? CheckoutController {
        checkoutVC.cardNumber = self.cardField.text!
        checkoutVC.cvc = self.cvcField.text!

        if self.expField.text?.isEmpty == false {

            expField.text?.contains("0123456789/")
            (expField.text?.characters.count)! <= 7
        let expDate = self.expField.text?.components(separatedBy: "/")
        let expMonth = UInt((expDate?[0])!)
        let expYear = UInt((expDate?[1])!)

        checkoutVC.expMon = expMonth!
        checkoutVC.expYear = expYear!
        }
    }
}

@IBAction func checkout(_ sender: Any) {
    performSegue(withIdentifier: "checkout", sender: self)  
}

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
}

购买视图控制器的代码:

代码语言:javascript
运行
复制
import UIKit
import FirebaseAuth
import FirebaseDatabase
import Firebase
import Stripe

    class CheckoutController: UIViewController {

    let ref = Database.database().reference()

    @IBOutlet weak var feeLabel: UILabel!
    @IBOutlet weak var amountLabel: UILabel!

    var cardNumber = String()
    var cvc = String()
    var expMon = UInt()
    var expYear = UInt()

    @IBAction func purchase(_ sender: Any) {

        if Auth.auth().currentUser != nil {

            // Initiate the card
            let stripCard = STPCard()

            STPAPIClient.shared().createToken(withCard: stripCard, completion: { (token, error) -> Void in

                if error != nil {

                    print("There is an error")
                } 

                else {

                    // Send the card info to Strip to get the token
                    stripCard.number = self.cardNumber
                    stripCard.cvc = self.cvc
                    stripCard.expMonth = UInt(self.expMon)
                    stripCard.expYear = UInt(self.expYear)

                    let alert = UIAlertController(title: "Your Stripe token is " + (token?.tokenId)!, message: "", preferredStyle: .alert)
                    let defaultAction = UIAlertAction(title: "OK", style: .default, handler: nil)
                    alert.addAction(defaultAction)
                    self.present(alert, animated: true, completion: nil)
                    print(token!)
                }
            })

        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()

    let user = Auth.auth().currentUser
        let userID: String = (user?.uid)!

        if user != nil {

      let totalRef = ref.child("users/\(userID)").child("Total")
          totalRef.observeSingleEvent(of: .value, with: { (snapshot) in
            let cost = snapshot.value as! Int
            self.totalLabel.text = "\(cost) bookies"

            let total = (Double(cost) * 1.35) + 1.39

            self.amountLabel.text = "$\(total)"
        }) 
    }
}
EN

回答 1

Stack Overflow用户

发布于 2017-08-29 04:03:08

问题是你提交的是一个空白的STPCard。您正在调用createToken方法,而没有设置卡片上的任何字段。由于某些原因,看起来您只是在获得令牌之后才在完成块中设置卡片字段。您需要移动以下行:

代码语言:javascript
运行
复制
 stripCard.number = self.cardNumber
 stripCard.cvc = self.cvc
 stripCard.expMonth = UInt(self.expMon)
 stripCard.expYear = UInt(self.expYear)

在你给createToken打电话之前。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45926409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档