【问题标题】:Venmo payment iOS integration issueVenmo 支付 iOS 集成问题
【发布时间】:2014-07-08 08:12:10
【问题描述】:

我想将用于支付的 venmo 库集成到 iOS 应用中。

我通过关注venmo github project创建了它的演示。

根据 github 项目的描述,下面是在浏览器中显示 venmo app/open venmo 的代码:

- (IBAction)payButtonPressed:(UIButton *)sender
{
    // App crashes here. Does not crash if I comment this line.
    venmoClient = [VenmoClient clientWithAppId:AppId secret:AppSecret];

    VenmoTransaction *venmoTransaction = [[VenmoTransaction alloc] init];
    venmoTransaction.type = VenmoTransactionTypePay;
    venmoTransaction.amount = [NSDecimalNumber decimalNumberWithString:@"5"];
    venmoTransaction.note = @"Payment for something";
    venmoTransaction.toUserHandle = @"Name";

    VenmoViewController *venmoViewController = [venmoClient viewControllerWithTransaction:
                                                venmoTransaction];
    if (venmoViewController) {
        [self presentViewController:venmoViewController animated:YES completion:nil];
    }
}

当我运行项目时,它在方法的第一行崩溃。如果我将其注释掉,则它不会崩溃。

下面是它抛出的错误信息:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[NSBundle name]:无法识别的选择器已发送到实例 0x17556e00”

有人用过venmo吗?

更新:我从venmo-ios-sdk 下载了项目。打开示例项目并尝试运行。但它甚至无法编译。

然后我尝试通过添加 venmo ios sdk 创建一个新的演示。根据 gihub 自述文件,我必须添加

pod 'venmo-ios-sdk', :git => 'https://github.com/venmo/venmo-ios-sdk'

到 Podfile。但它会引发错误:

[!] 给定 podspec 的名称 Venmo-iOS-SDK 与预期的名称不匹配 venmo-ios-sdk

然后我尝试添加

pod 'Venmo-iOS-SDK', :git => 'https://github.com/venmo/venmo-ios-sdk'

它允许安装。

现在,根据教程,有两种付款方式。

  1. 切换到 Venmo 应用程序:尝试此操作会引发错误 Transaction failed with error: The current session is not open.
  2. 使用 Venmo API:这会抛出 Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Venmo handleOpenURL:]: unrecognized selector sent to instance 0x8e8a410'。这很清楚,因为Venmo.m 文件中没有实现这样的方法。但它是在Venmo.h 文件中声明的。

【问题讨论】:

    标签: ios objective-c ios7 venmo


    【解决方案1】:

    这里是 Venmo 的 iOS 工程师 - 我们实际上正在发布新的 Venmo iOS SDK,您现在可以开始使用了!

    pod 'Venmo-iOS-SDK', :git => 'https://github.com/venmo/venmo-ios-sdk'
    

    对于造成的混乱,我深表歉意。我们会立即将您正在使用的框架标记为已弃用,并将人们指向新的 SDK。

    如果您在集成新的sdk时遇到任何问题,请submit an issue

    更新

    对于您遇到的所有集成问题,我们深表歉意!在正式发布之前,我们仍在完善我们的文档,您的反馈非常有帮助。你应该charge me on Venmo

    我已使用正确的 Podfile 行更新了文档,Venmo.m 中不再缺少 handleOpenURL:。我还更新了 README 以阐明如何使用不同的交易方法。希望现在通过本教程可以获得更好的体验 - 很抱歉您最终成为我们的豚鼠!

    如果您对 SDK 有任何其他问题,请告诉我们!

    【讨论】:

    • 请查看我关于 github 上示例 venmo 项目问题的更新答案。还有没有办法在不使用 pod 的情况下安装 venmo?我在 github 自述文件中找不到它。
    • 查看我在使用pod 添加库时遇到的更新问题。
    • handleOpenURL: 方法也存在一个问题,该方法已声明但未实现。它会导致应用崩溃。
    【解决方案2】:

    在这里聚会可能有点晚了,但我注意到了:

    venmoTransaction.amount = [NSDecimalNumber decimalNumberWithString:@"5"];
    

    我知道如果你看一下@他们需要的文档是 float 类型的。

    我明白使用十进制的意义,但尝试将其转换为浮点数或使用类似的东西:

    NSDecimalNumber *someDecimalNumber = [NSDecimalNumber decimalNumberWithString:@"5"]
    //then in the venmo piece 
    venmoTransaction.amount = [self.someDecimalNumber floatvalue];
    

    如果有帮助请告诉我

    【讨论】:

      猜你喜欢
      • 2013-06-19
      • 1970-01-01
      • 1970-01-01
      • 2021-03-04
      • 2018-09-11
      • 2012-09-03
      • 1970-01-01
      • 2015-09-02
      • 2011-09-06
      相关资源
      最近更新 更多