Ping++支付

 

iOS SDK 接入指南
安装
使用 CocoaPods

在 Podfile 添加

    pod 'Pingpp', '~> 2.1.0'
默认会包含支付宝、微信、银联和百度钱包,你也可以自己选择渠道。
目前有 ApplePay、Alipay、Wx、UnionPay、Bfb 五个子模块可选择,例如:

    pod 'Pingpp/Alipay', '~> 2.1.0'
    pod 'Pingpp/Wx', '~> 2.1.0'
    pod 'Pingpp/UnionPay', '~> 2.1.0'
    pod 'Pingpp/ApplePay', '~> 2.1.0'

运行 pod install
从现在开始使用 .xcworkspace 打开项目,而不是 .xcodeproj
添加 URL Schemes:在 Xcode 中,选择你的工程设置项,选中 TARGETS 一栏,在 Info 标签栏的 URL Types 添加 URL Schemes,如果使用微信,填入微信平台上注册的应用程序 id(为 wx 开头的字符串),如果不使用微信,则自定义,建议起名稍复杂一些,尽量避免与其他程序冲突。允许英文字母和数字,首字母必须是英文字母,不允许特殊字符。
2.1.0 及以上版本,可打开 Debug 模式,打印出 log,方便调试。开启方法:[Pingpp setDebugMode:YES];。
手动导入

在 Github 根据所需渠道下载相应分支的 iOS SDK,里面包含 lib 和 example 两个目录。example 目录下的是示例项目,你需要将 lib 目录下的文件添加到你的项目。
依赖 Frameworks:
必需:
CFNetwork.framework
SystemConfiguration.framework
Security.framework
libc++.dylib
libz.dylib
libsqlite3.0.dylib
百度钱包所需:
libstdc++.dylib
CoreTelephony.framework
AddressBook.framework
AddressBookUI.framework
AudioToolbox.framework
CoreAudio.framework
CoreGraphics.framework
ImageIO.framework
MapKit.framework
MessageUI.framework
MobileCoreServices.framework
QuartzCore.framework
Apple Pay 所需:
PassKit.framework
如果不需要某些渠道,删除 lib/Channels 下的相应目录即可。
添加 URL Schemes:在 Xcode 中,选择你的工程设置项,选中 TARGETS 一栏,在 Info 标签栏的 URL Types 添加 URL Schemes,如果使用微信,填入微信平台上注册的应用程序 id(为 wx 开头的字符串),如果不使用微信,则自定义,建议起名稍复杂一些,尽量避免与其他程序冲突。允许英文字母和数字,首字母必须是英文字母,不允许特殊字符。
添加 Other Linker Flags:在 Build Settings 搜索 Other Linker Flags,添加 -ObjC。
2.1.0 及以上版本,可打开 Debug 模式,打印出 log,方便调试。开启方法:[Pingpp setDebugMode:YES];。
接入
客户端从服务器端拿到 charge 对象后,调用下面的方法

[Pingpp createPayment:charge
       viewController:viewController
         appURLScheme:kUrlScheme
       withCompletion:^(NSString *result, PingppError *error) {
    if ([result isEqualToString:@"success"]) {
        // 支付成功
    } else {
        // 支付失败或取消
        NSLog(@"Error: code=%lu msg=%@", error.code, [error getMsg]);
    }
}];
 
接收并处理交易结果
渠道为银联、百度钱包或者渠道为支付宝但未安装支付宝钱包时,交易结果会在调起插件时的 Completion 中返回。渠道为微信、支付宝且安装了支付宝钱包或者测试模式时,请实现 UIApplicationDelegate 的 - application:openURL:sourceApplication:annotation: 方法:

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {
    [Pingpp handleOpenURL:url
           withCompletion:^(NSString *result, PingppError *error) {
        if ([result isEqualToString:@"success"]) {
            // 支付成功
        } else {
            // 支付失败或取消
            NSLog(@"Error: code=%lu msg=%@", error.code, [error getMsg]);
        }
    }];
    return  YES;
}
关于渠道
使用微信支付必须要求用户安装微信客户端。

 
posted @ 2015-08-09 18:12  Cheetah_yang  阅读(651)  评论(0编辑  收藏  举报