标签:
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;
}
关于渠道
使用微信支付必须要求用户安装微信客户端。
标签:
原文地址:http://www.cnblogs.com/Cheetah-yang/p/4715571.html