2

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

我按照venmo github 项目创建了它的演示。

根据下面 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 名称]:无法识别的选择器已发送到实例 0x17556e00”

有人用过venmo吗?

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

在此处输入图像描述

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

吊舱 '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文件中声明的。
4

2 回答 2

1

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

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

我为混乱道歉。我们会立即将您正在使用的框架标记为已弃用,并将人们指向新的 SDK。

如果您在集成新 sdk 时遇到任何问题,请提交问题

更新

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

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

  • 要使用 Venmo 应用程序发送付款,您需要在安装了 Venmo 应用程序的设备上运行您的应用程序。
  • 要使用 Venmo API 发送付款,您需要首先向用户请求权限

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

于 2014-05-20T19:01:12.123 回答
0

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

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

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

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

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

让我知道这是否有帮助

于 2016-01-04T22:53:47.417 回答