小编C6S*_*ver的帖子

Python中的Stripe不会引发计费错误

我在Python中使用条带库进行信用卡收费.我使用customerID来充电而不是令牌,因为我想重新使用卡而不是每次都要求它.成功过程工作得很好,但是,如果我创建一个错误条件,则永远不会抛出"except".我正在使用无效的客户ID测试故障状态.

服务器日志显示以下错误:"InvalidRequestError:Request req_8949iJfEmeX39p:No such customer:22"但是再次在try/except中处理.

class ChargeCustomerCard(webapp2.RequestHandler):
def post(self):
    stripe.api_key = stripeApiKey
    customerID = self.request.get("cust")
    amount = self.request.get("amt")

    try:
        charge = stripe.Charge.create(amount=int(amount),currency="usd",customer=customerID,description=customerID)
    except stripe.error.CardError, e:
        output = {"result":e}
    else:
        output = {"result":"1"}

    self.response.out.write(json.dumps(output))
Run Code Online (Sandbox Code Playgroud)

python stripe-payments

3
推荐指数
1
解决办法
2705
查看次数

NSUbiquitousKeyValueStore 在 Watch OS 3.1.3 上不可用

在尝试让 iCloud 文档存储在手表Watchkit Extension Cannot Read from iCloud上工作失败后,我尝试简单地使用密钥库。然而,这样做我得到:

NSUbiquitousKeyValueStore 不可用。

根据苹果公司的说法,这应该是“始终可用”的。因此,如果这个基本共享不能在手表上运行,那么文档内容当然也不能在手表上运行。

这是通过简单地使用以下命令生成的:

let keyStore = NSUbiquitousKeyValueStore()
Run Code Online (Sandbox Code Playgroud)

在 iPhone 上工作和文档一样完美。它也适用于手表的模拟器,但不适用于实际的手表。

需要明确的是,我不明白为什么我不能在实际手表上使用 iCloud 的键值存储。这些应该从 Watch OS 2 开始可用。

icloud nsubiquitouskeyvaluestore swift cloudkit

3
推荐指数
1
解决办法
695
查看次数

NDB - 删除密钥列表的最有效方法

我相信我需要使用,ndb.delete_multi但我很困惑如何使它适用于一组特定的键,以及它是否是最有效的方法.将Python 2.7与Google App Engine结合使用.

首先,我正在收集我要删除的密钥.我不想删除所有内容,只删除1小时或更长时间的条目.为此,我首先收集符合此标准的密钥列表.

cs = ChannelStore()
delMsgKeys = []
for x in cs.allMessages():
   current = datetime.datetime.now()
   recordTime = x.channelMessageCreated
   timeDiffSecs = (current - recordTime).total_seconds()
   timeDiff = (timeDiffSecs/60)/60
   if timeDiff >=1:
      delMsgKeys.append(x.key.id())
ndb.delete_multi(?????)
Run Code Online (Sandbox Code Playgroud)

cs.allMessages()的定义:

def allMessages(self):
        return ChannelStore.query().fetch()
Run Code Online (Sandbox Code Playgroud)

首先,这总体上是最有效的方法吗?其次,如何使用我用ndb.delete_multi语句创建的密钥列表?

---更新----

ndb.delete_multi的问题与我传递的密钥有关.在我上面发布的代码中,密钥应该存储如下:

delMsgKeys.append(x.key)
Run Code Online (Sandbox Code Playgroud)

用上面的ndb.delete_multi工作.

google-app-engine python-2.7 app-engine-ndb google-cloud-datastore

2
推荐指数
1
解决办法
1095
查看次数

Firebase Observer未在Swift中删除

顶级:

let ref = FIRDatabase.database().reference()
var handler:FIRDatabaseHandle!
Run Code Online (Sandbox Code Playgroud)

从屏幕上看到的视图:

self.handler = self.ref.child("Requests").observe(.value, with: {(snapshot) in
Run Code Online (Sandbox Code Playgroud)

最后:

override func viewDidDisappear(_ animated: Bool)
{
    super.viewDidDisappear(animated)

    self.ref.removeObserver(withHandle: self.handler)
    self.ref.removeAllObservers()
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,当在另一个视图中更改数据库时,仍会调用上面VC中的观察者.我明白我不应该同时删除,但我正在尝试一切.从断点我可以看到删除代码正在触发,我也可以看到观察者只被调用一次.

在删除观察者时我错过了什么?

firebase swift

2
推荐指数
1
解决办法
867
查看次数

传递布尔对象NO总是导致YES

我试图通过选择器传递一个布尔对象.但是,即使我发送NO(Xcode 5 iOS 7),结果总是等于YES.

[self performSelectorOnMainThread:@selector(clearMessageElements:) withObject:@NO waitUntilDone:NO];


-(void)clearMessageElements:(BOOL)resetLastUpdate
Run Code Online (Sandbox Code Playgroud)

如果我在clearMessageElements的第一行放置一个断点,然后查看resetLastUpdate,尽管在上面的调用中传递了NO,但结果始终为YES.

更新:

我赞赏下面发送的回复.但是,我仍然有一个问题,虽然现在有点不同.boolValue确实会正确解释,但不会在通知中调用该方法.所以扩大:

[[NSNotificationCenter defaultCenter]addObserver:self
                                            selector:@selector(clearMessageElements:)
                                                name:@"appResigning"
                                              object:@YES];


-(void)clearMessageElements:(NSNumber *)resetLastUpdate
{
    NSLog(@"%hhd",[resetLastUpdate boolValue]);
}
Run Code Online (Sandbox Code Playgroud)

clearMessageElements现在可以使用我在这个问题顶部写的原始调用,但在NSSNotification中使用时,使用这种方法根本不调用该方法.但是,如果我删除@YES并用NIL替换它将执行该函数.所以我知道正在发送通知,但是在这里使用@YES的一些事情是阻止它执行该方法.

objective-c ios7

1
推荐指数
1
解决办法
307
查看次数

UITableView不显示单元格

我正在使用Xcode 6 Swift和情节提要构建一个IOS应用。贝娄是我在File.swift中拥有的:

import Foundation

struct December {
    let name : String
}
Run Code Online (Sandbox Code Playgroud)

然后,在我的视图控制器中,我有:

import UIKit

class ViewControllerDecember: UITableViewController {

    var december = [December] ()


    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        self.december = [December(name: "1"), December(name: "2"), December(name: "3"), December(name: "4"), December(name: "5"), December(name: "6"), December(name: "7"), December(name: "8"), December(name: "9"), December(name: "10"), December(name: "11"), December(name: "12"), December(name: "13"), December(name: "14"), December(name: "15"), December(name: "16"), December(name: "17"), December(name: …
Run Code Online (Sandbox Code Playgroud)

uitableview ios swift xcode6

1
推荐指数
1
解决办法
8240
查看次数

Watchkit 扩展无法从 iCloud 读取

我正在寻找 watchkit 扩展来从 iCloud 文档存储中读取文件。我从 iOS 应用程序编写了该文件,该应用程序也可以读取它。我正在利用共享类,因此代码是相同的。问题是在手表上,云容器的 URL 返回 nil。

static func readFromFile(fileName:String) -> String?
{
    let fileManager = FileManager.default
    var cloudURL = fileManager.url(forUbiquityContainerIdentifier: nil)

    cloudURL = cloudURL?.appendingPathComponent("Documents/\(fileName)")

    do
    {
        return try String(contentsOf: cloudURL!)
    } catch {
        print (error)
        return nil
    }
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,cloudURL在手表上是nil,但在手机上不是。为此,forUbiquityContainerIdentifier我检查了手表和手机使用相同的标识符。我还尝试直接输入名称,而不是使用 nil 并让它从权利中获取它。容器的格式:

iCloud.com.company.app
Run Code Online (Sandbox Code Playgroud)

据我了解,Watch OS 3 应该能够使用 iCloud。

更新:

我打印出来let token = fileManager.ubiquityIdentityToken并得到以下内容:

WatchKit Extension[390:687462] [default] [ERROR] 获取 ubiquityIdentityToken 时出错:Error Domain=NSCocoaErrorDomain Code=4099 “与名为 com.apple.bird.token 的服务的连接已失效。” UserInfo={NSDebugDescription=与名为 com.apple.bird.token 的服务的连接已失效。}

icloud swift watchkit

1
推荐指数
1
解决办法
469
查看次数

SwiftUI - 表单选择器和按钮不共存

我创建了一个可重用的组件,它在表单中具有选择器、文本字段和按钮。但是,如果存在该按钮,则点击选择器字段不会转到选择器。相反,它执行按钮代码。文本字段工作正常。如果我删除按钮代码,选择器将出现正确的行为。那么问题是如何在这个组件中同时拥有这两个元素?请注意,预览添加了导航和表单,否则这些导航和表单将来自父视图。

var body: some View {
        HStack {
            if !showFee {
                Spacer()
                Button(action: {
                    withAnimation(.easeInOut(duration: 0.3)) {
                        self.showFee.toggle()
                    }
                }) {
                    Image(systemName: "plus.circle")
                        .font(.largeTitle)
                }
                Spacer()
            } else {
                VStack(spacing:20) {
                    Picker(selection: $feeSelection, label: Text("Fee Type")) {
                        ForEach(0 ..< fees.count) {
                            Text(self.fees[$0])
                        }
                    }

                    TextField("Fee Amount: $", value: $feeAmount, formatter: NumberFormatter.currency)
                    .keyboardType(.decimalPad)

                    Divider()
                    Button(action: {
                        withAnimation(.easeInOut(duration: 0.3)) {
                            self.showFee.toggle()
                        }
                    }) {
                        Image(systemName: "trash.circle.fill")
                            .font(.largeTitle)
                            .foregroundColor(.red)
                    }
                }
            }
        }
        .padding()
    }
}

struct FeeCell_Previews: PreviewProvider {
    static var previews: …
Run Code Online (Sandbox Code Playgroud)

swiftui

1
推荐指数
1
解决办法
306
查看次数