Venmo支付iOS集成问题

时间:2014-05-20 07:27:43

标签: ios objective-c ios7 venmo

我想将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名称]:无法识别的选择器发送到实例0x17556e00'

有人用过venmo吗?

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

enter image description here

然后我尝试通过添加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文件中声明。

2 个答案:

答案 0 :(得分: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行更新了文档,handleOpenURL:不再遗漏Venmo.m。我还更新了README,以阐明如何使用不同的事务方法。希望通过本教程可以获得更好的体验 - 抱歉,您最终成为了我们的豚鼠!

  • 要使用Venmo应用程序发送付款,您需要在安装了Venmo应用程序的设备上运行您的应用程序。
  • 要使用Venmo API发送付款,您需要first request permissions from the user

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

答案 1 :(得分:0)

这里的派对可能有点晚了,但我注意到了:

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

我知道你看看他们需要的类型为float的文档。

我明白了使用Decimal,但是尝试将它投射到浮点数或使用类似的东西:

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

如果有帮助,请告诉我