Venmo-iOS-SDK 1.3.0

Venmo-iOS-SDK 1.3.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2014年12月

Ayaka NonakaMark AdamsDasmer Singh 维护。



 
依赖
VENCore~> 3.0.0
SSKeychain~> 1.2.2
CMDQueryStringSerialization~> 0.2.0
 


Venmo iOS SDK

Venmo iOS SDK 允许您在应用程序中使用 Venmo 进行付款和收款。

安装

如果您正在使用 CocoaPods

  1. 如果您的 Podfile 中没有 pod init 命令,请运行
  2. 将以下行添加到您的 Podfile 中
pod 'Venmo-iOS-SDK', '~>1.0.0'

如果您不使用 CocoaPods

克隆此仓库并将它添加到您的项目中(这是一个多步骤的过程,但这是可能的)。我们建议现在使用 CocoaPods。

使用方法

使用 Venmo iOS SDK 和 Venmo 向朋友发送钱一样简单!

1. 在 Venmo 上创建您的应用

  1. Venmo 开发者网站上创建一个新的应用程序。
  2. 注意您新应用中的 app idapp secret

2. 配置您的 Xcode 项目

  1. 在您的应用目标中,在 Info 部分,滚动到 URL Types
  2. 添加一个具有以下属性的新的 URL 类型

    标识符: venmo<<YOUR_APP_ID>>

    URL 方案: venmo<<YOUR_APP_ID>>

例如,如果您的应用 ID 为 1234,请输入 venmo1234

Set URL Types

注意:如果您正在使用Parse SDK并遇到问题,请查阅此 gist

3. 初始化 Venmo iOS SDK

将 Venmo SDK 的头文件添加到您的 app 委托人中。将此头文件导入到您的实现文件中以使用 SDK。

#import <Venmo-iOS-SDK/Venmo.h>

将以下代码添加到您 app 委托人的 application:didFinishLaunchingWithOptions: 方法中初始化 SDK。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    [Venmo startWithAppId:@"VENMO_APP_ID" secret:@"VENMO_APP_SECRET" name:@"VENMO_APP_NAME"];

    return YES;
}
  • VENMO_APP_ID:来自您在 Venmo 开发者网站上注册的应用的 ID
  • VENMO_APP_SECRET:来自您在 Venmo 开发者网站上注册的应用的 密钥
  • VENMO_APP_NAME:将显示在 Venmo 应用中的应用名称(例如,“通过 My Supercool App 发送”)

要允许 Venmo iOS SDK 处理 Venmo 应用程序的响应,请将以下代码添加到您应用程序代理的 application:openURL:sourceApplication:annotation: 方法中:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    if ([[Venmo sharedInstance] handleOpenURL:url]) {
        return YES;
    }
    // You can add your app-specific url handling code here if needed
    return NO;
}

4. 选择交易方式

Venmo iOS SDK 允许您以两种方式发送付款:

  1. 切换到 Venmo 应用程序

    • [[Venmo sharedInstance] setDefaultTransactionMethod:VENTransactionMethodAppSwitch];
    • 此交易方式将用户切换到 Venmo 应用程序中的预先填充的付款屏幕。用户发送或取消付款后,他们将回到您的应用程序。
    • 如果用户未安装 Venmo 应用程序,付款将失败并显示适当的错误。
    • 注意。您应该在安装了 Venmo 应用程序的真机上测试切换到 Venmo 应用程序。
  2. 使用 Venmo API

    • [[Venmo sharedInstance] setDefaultTransactionMethod:VENTransactionMethodAPI];
    • 此交易方式不会将用户切换到 Venmo 进行付款,但会提示用户允许您的应用程序访问其 Venmo 账户。如果您想使用此交易方式,您需要在尝试发送交易之前从用户那里请求权限 请求权限

如果用户未安装 Venmo 应用程序,我们建议通过 Venmo API 发送交易。

if (![Venmo isVenmoAppInstalled]) {
    [[Venmo sharedInstance] setDefaultTransactionMethod:VENTransactionMethodAPI];
}
else {
    [[Venmo sharedInstance] setDefaultTransactionMethod:VENTransactionMethodAppSwitch];
}

5. 请求权限

您可以使用 requestPermissions:withCompletionHandler: 请求对用户 Venmo 账户的访问权限。这些权限可以使用 这些作用域 指定。如果用户安装了 Venmo 应用程序,则 requestPermissions:withCompletionHandler 将将用户切换到 Venmo 应用程序中的授权页面。否则,用户将被引导到 Safari 的授权页面。用户授予或拒绝权限后,将被重定向回您的应用程序。

[[Venmo sharedInstance] requestPermissions:@[VENPermissionMakePayments,
                                             VENPermissionAccessProfile]
                     withCompletionHandler:^(BOOL success, NSError *error) {
    if (success) {
        // :)
    }
    else {
        // :(
    }
}];

6. 发送付款

设置所需的交易方式并请求权限(如果您想使用 Venmo API)后,您可以使用 sendPaymentTo:amount:note:completionHandler: 发送付款。要发送 付款请求(即收费),请使用 sendRequestTo:amount:note:completionHandler:

[[Venmo sharedInstance] sendPaymentTo:self.toTextField.text
                               amount:self.amountTextField.text.floatValue*100
                                 note:self.noteTextField.text
                    completionHandler:^(VENTransaction *transaction, BOOL success, NSError *error) {
    if (success) {
        NSLog(@"Transaction succeeded!");
    }
    else {
        NSLog(@"Transaction failed with error: %@", [error localizedDescription]);
    }
}];

示例应用程序

sample 目录中包含一个示例应用程序,名为 MiniVenmo,该程序演示了如何使用 Venmo iOS SDK 进行登录并发送付款。

贡献

我们欢迎您提出改进此库的想法!最好的贡献方式是通过提交拉取请求 - 我们将尽全力尽快响应您的补丁。如果发现错误或有任何疑问,您还可以 提交问题:octocat:

请确保遵循我们的通用编码风格并添加对新功能的测试覆盖!