New file |
| | |
| | | ### 2.2.10 |
| | | - 更改:兼用 支付宝 最新版 客户端同步返回结果 |
| | | - 更改:优化 京东、招行一网通 支付完成回调 |
| | | - 更改:更新银联 SDK 到 3.3.6 版本 |
| | | |
| | | ### 2.2.9 |
| | | - 新增:账户余额系统(SDK 兼容 charge 与 order 对象) |
| | | - 更改:Ping++ Debug Log 信息优化 |
| | | - 更改:优化百度钱包网页支付 |
| | | - 更改:优化京东支付网页支付 |
| | | - 更改:更新 Demo |
| | | |
| | | ### 2.2.8 |
| | | - 更改:更新 Apple Pay SDK |
| | | - 更改:所有web渠道添加 [Pingpp ignoreResultUrl: YES] 方法 |
| | | - 更改:优化 在某些情况下 会导致 [Pingpp handleOpenURL:url withCompletion:nil] 崩溃的问题 |
| | | - 更改:优化 壹收款 支付成功页面 |
| | | - 更改:优化 SDK 支付失败后的回调信息 |
| | | - 删除:bfb渠道(百度钱包) 可以用(bfb_wap)代替 |
| | | |
| | | ### 2.2.7 |
| | | - 新增:QQ钱包 (qpay) |
| | | - 新增:京东支付 wap版(jdpay_wap) |
| | | |
| | | ### 2.2.6 |
| | | - 新增:分期渠道 添加 processing 状态 (交易处理中) |
| | | - 更改:更新 ApplePay SDK |
| | | - 更改:易宝支付 通过webView打开 |
| | | - 更改:优化 么么贷 结果回调 |
| | | |
| | | ### 2.2.5 |
| | | - 新增:招行一网通(cmb_wallet) |
| | | - 新增:百度钱包 wap版(bfb_wap) |
| | | - 更改:分期乐(fqlpay_wap) 优化支付结果页面 |
| | | |
| | | ### 2.2.4 |
| | | - 新增:添加么么贷(mmdpay_wap) |
| | | - 更改:分期渠道通过 webView 打开 |
| | | - 更改:iOS 9 以下 livemode 字段兼容以下值 [true, false, 1, 0] |
| | | - 更改:更新支付宝 SDK(支持 ipv6),依赖框架(CoreTelephony.framework, CoreMotion.framework) |
| | | |
| | | ### 2.2.2 |
| | | * 新增: |
| | | 添加分期乐 (fqlpay_wap) |
| | | 添加量化派 (qgbc_wap) |
| | | |
| | | ### 2.2.1 |
| | | * 更改: |
| | | 更新银联 SDK 到 3.3.3 版本 |
| | | |
| | | ### 2.2.0 |
| | | * 新增: |
| | | 添加应用内快捷支付(cnp) |
| | | 添加壹收款模块 |
| | | |
| | | ### 2.1.4 |
| | | * 更改: |
| | | 修复编译 warning 问题 |
| | | 修改 podspec 默认不包含 bfb |
| | | |
| | | ### 2.1.3 |
| | | * 更改: |
| | | 更新银联 SDK 到 3.1.1 版本 |
| | | 修复 CocoaPods 导入问题 |
| | | 更新支付宝 SDK |
| | | Ping++ 静态库文件支持 Bitcode |
| | | |
| | | ### 2.1.2 |
| | | * 更改: |
| | | 更新银联 SDK 到 3.1.0 版本 |
| | | |
| | | ### 2.1.1 |
| | | * 更改: |
| | | 修正 charge 格式不正确时的回调 |
| | | |
| | | ### 2.1.0 |
| | | * 新增: |
| | | 添加 Debug 模式,可打印出 log,方便调试。开启方法:`[Pingpp setDebugMode:YES];` |
| | | * 更改: |
| | | charge 可以用 NSDictionary 格式传入 |
| | | 更新支付宝、微信(不支持 armv7s)和百度钱包 SDK |
| | | 不包含微信静态库文件也可以调用支付 |
| | | |
| | | ### 2.0.6 |
| | | * 更改: |
| | | 添加 handleOpenURL 返回值 |
| | | |
| | | ### 2.0.5 |
| | | * 更改: |
| | | 分离各渠道静态库 |
| | | |
| | | ### 2.0.4 (20150428) |
| | | * 更改: |
| | | 分离 Apple Pay 静态库 |
| | | 更新 AlipaySDK.framework |
| | | |
| | | ### 2.0.4 |
| | | * 新增: |
| | | 支持 Apple Pay |
| | | |
| | | ### 2.0.3 |
| | | * 更改: |
| | | 支持 iOS 5.1.1 |
| | | |
| | | ### 2.0.2 |
| | | * 更改: |
| | | 新的测试模式 |
| | | 百度钱包 SDK 静态库文件更新 |
| | | |
| | | ### 2.0.1(20150112) |
| | | * 更改: |
| | | 更换银联静态库文件 |
| | | |
| | | ### 2.0.1 |
| | | * 更改: |
| | | 方法 `+handleOpenURL:withCompletion:` 中 `completion` 可以传 `nil` |
| | | |
| | | ### 2.0.0 |
| | | * 更改: |
| | | 支持 arm64 |
| | | 添加新渠道:百付宝 |
| | | 调用方法更改 |
| | | callback 添加返回错误信息 |
| | | |
| | | ### 1.0.5 |
| | | * 更改: |
| | | 更换了测试环境 URL |
New file |
| | |
| | | Pod::Spec.new do |s| |
| | | s.name = 'Pingpp' |
| | | s.version = '2.2.10' |
| | | s.summary = 'Pingplusplus iOS SDK' |
| | | s.description = <<-DESC |
| | | 移动应用支付接口。 |
| | | 开发者不再需要编写冗长的代码,简单几步就可以使你的应用获得支付功能。 |
| | | 让你的移动应用接入支付像大厦接入电力一样简单,方便,和温暖。 |
| | | 支持微信支付,公众账号支付,支付宝钱包,百度钱包,银联手机支付。 |
| | | DESC |
| | | s.homepage = 'https://pingxx.com' |
| | | s.license = 'COMMERCIAL' |
| | | s.author = { 'Afon Weng' => 'xufeng.weng@pingxx.com' } |
| | | s.platform = :ios, '7.0' |
| | | s.source = { :http => "https://github.com/PingPlusPlus/pingpp-ios/releases/download/v#{s.version}/pingpp-ios-#{s.version}.zip", |
| | | :sha1 => 'c18f57e505da0979eb735346c25af1d9ba93881e' } |
| | | s.requires_arc = true |
| | | s.default_subspec = 'Core', 'Alipay', 'UnionPay' |
| | | |
| | | s.subspec 'Core' do |core| |
| | | core.source_files = 'lib/*.h', 'lib/Dependencies/Network/*.h' |
| | | core.public_header_files = 'lib/*.h', 'lib/Dependencies/Network/*.h' |
| | | core.vendored_libraries = 'lib/*.a', 'lib/Dependencies/Network/*.a' |
| | | core.resource = 'lib/*.bundle' |
| | | core.frameworks = 'CFNetwork', 'SystemConfiguration', 'Security' |
| | | core.ios.library = 'c++', 'stdc++', 'z' |
| | | core.xcconfig = { 'OTHER_LDFLAGS' => '-ObjC' } |
| | | end |
| | | |
| | | s.subspec 'ApplePay' do|ss| |
| | | ss.vendored_libraries = 'lib/Channels/ApplePay/*.a' |
| | | ss.frameworks = 'Passkit' |
| | | ss.dependency 'Pingpp/Core' |
| | | end |
| | | |
| | | s.subspec 'Alipay' do |ss| |
| | | ss.vendored_libraries = 'lib/Channels/Alipay/*.a' |
| | | ss.ios.vendored_frameworks = 'lib/Channels/Alipay/AlipaySDK.framework' |
| | | ss.resource = 'lib/Channels/Alipay/AlipaySDK.bundle' |
| | | ss.frameworks = 'CoreMotion', 'CoreTelephony' |
| | | ss.dependency 'Pingpp/Core' |
| | | end |
| | | |
| | | s.subspec 'Wx' do |ss| |
| | | ss.dependency 'Pingpp/Core' |
| | | end |
| | | |
| | | s.subspec 'UnionPay' do |ss| |
| | | ss.vendored_libraries = 'lib/Channels/UnionPay/*.a' |
| | | ss.dependency 'Pingpp/Core' |
| | | end |
| | | |
| | | s.subspec 'One' do |ss| |
| | | ss.frameworks = 'QuartzCore' |
| | | ss.source_files = 'lib/One/*.h' |
| | | ss.public_header_files = 'lib/One/*.h' |
| | | ss.vendored_libraries = 'lib/One/*.a' |
| | | ss.dependency 'Pingpp/Core' |
| | | end |
| | | |
| | | s.subspec 'Qgbc' do |ss| |
| | | ss.vendored_libraries = 'lib/Channels/Qgbc/*.a' |
| | | ss.dependency 'Pingpp/Core' |
| | | ss.dependency 'Pingpp/WebView' |
| | | end |
| | | |
| | | s.subspec 'Fqlpay' do |ss| |
| | | ss.vendored_libraries = 'lib/Channels/Fqlpay/*.a' |
| | | ss.dependency 'Pingpp/Core' |
| | | ss.dependency 'Pingpp/WebView' |
| | | end |
| | | |
| | | s.subspec 'Mmdpay' do |ss| |
| | | ss.vendored_libraries = 'lib/Channels/Mmdpay/*.a' |
| | | ss.dependency 'Pingpp/Core' |
| | | ss.dependency 'Pingpp/WebView' |
| | | end |
| | | |
| | | s.subspec 'BfbWap' do |ss| |
| | | ss.vendored_libraries = 'lib/Channels/BfbWap/*.a' |
| | | ss.dependency 'Pingpp/Core' |
| | | ss.dependency 'Pingpp/WebView' |
| | | end |
| | | |
| | | s.subspec 'Yeepay' do |ss| |
| | | ss.vendored_libraries = 'lib/Channels/Yeepay/*.a' |
| | | ss.dependency 'Pingpp/Core' |
| | | ss.dependency 'Pingpp/WebView' |
| | | end |
| | | |
| | | s.subspec 'CmbWallet' do |ss| |
| | | ss.vendored_libraries = 'lib/Channels/CmbWallet/*.a' |
| | | ss.ios.vendored_frameworks = 'lib/Channels/CmbWallet/cmbkeyboard.framework' |
| | | ss.resource = 'lib/Channels/CmbWallet/SecreteKeyBoard' |
| | | ss.dependency 'Pingpp/Core' |
| | | ss.dependency 'Pingpp/WebView' |
| | | end |
| | | |
| | | s.subspec 'Jdpay' do |ss| |
| | | ss.vendored_libraries = 'lib/Channels/Jdpay/*.a' |
| | | ss.dependency 'Pingpp/Core' |
| | | ss.dependency 'Pingpp/WebView' |
| | | end |
| | | |
| | | s.subspec 'QQWallet' do |ss| |
| | | ss.vendored_libraries = 'lib/Channels/QQWallet/*.a' |
| | | ss.dependency 'Pingpp/Core' |
| | | end |
| | | |
| | | s.subspec 'WebView' do |ss| |
| | | ss.vendored_libraries = 'lib/Dependencies/WebView/*.a' |
| | | ss.dependency 'Pingpp/Core' |
| | | end |
| | | |
| | | end |
New file |
| | |
| | | # Pingpp iOS SDK |
| | | |
| | | ## 简介 |
| | | lib 文件夹下是 iOS SDK 文件, |
| | | example 文件夹里面是一个简单的接入示例,该示例仅供参考。 |
| | | |
| | | __当前版本,不需要微信的 SDK,可以正常调用微信支付__ |
| | | |
| | | ## 版本要求 |
| | | |
| | | iOS SDK 要求 iOS 6.0 及以上版本 |
| | | |
| | | ## 接入方法 |
| | | ### 安装 |
| | | #### 使用 CocoaPods |
| | | 1. 在 `Podfile` 添加 |
| | | |
| | | ``` |
| | | pod 'Pingpp', '~> 2.2.10' |
| | | ``` |
| | | |
| | | 默认会包含支付宝、微信和银联。你也可以自己选择渠道。 |
| | | 目前支持以下模块: |
| | | - `Alipay`(支付宝移动支付) |
| | | - `Wx`(微信 App 支付) |
| | | - `QQWallet`(QQ钱包 App 支付) |
| | | - `UnionPay`(银联手机支付) |
| | | - `ApplePay` |
| | | - `Cnp`(应用内快捷支付) |
| | | - `Fqlpay`(分期乐) |
| | | - `Qgbc`(量化派) |
| | | - `Mmdpay`(么么贷) |
| | | - `CmbWallet`(招行一网通) |
| | | - `BfbWap`(百度钱包 Wap 支付) |
| | | - `Yeepay`(易宝支付 Wap 支付) |
| | | - `Jdpay`(京东支付 Wap 支付) |
| | | - `One`(壹收款) |
| | | |
| | | 例如: |
| | | |
| | | ``` |
| | | pod 'Pingpp/Alipay', '~> 2.2.10' |
| | | pod 'Pingpp/UnionPay', '~> 2.2.10' |
| | | pod 'Pingpp/One', '~> 2.2.10' |
| | | ``` |
| | | |
| | | 2. 运行 `pod install` |
| | | 3. 从现在开始使用 `.xcworkspace` 打开项目,而不是 `.xcodeproj` |
| | | 4. 添加 URL Schemes:在 Xcode 中,选择你的工程设置项,选中 "TARGETS" 一栏,在 "Info" 标签栏的 "URL Types" 添加 "URL Schemes",如果使用微信,填入所注册的微信应用程序 id,如果不使用微信,则自定义,允许英文字母和数字,首字母必须是英文字母,建议起名稍复杂一些,尽量避免与其他程序冲突。 |
| | | 5. 2.1.0 及以上版本,可打开 Debug 模式,打印出 log,方便调试。开启方法:`[Pingpp setDebugMode:YES];`。 |
| | | 6. 2.2.8 及以上版本,可选择是否在 WAP 渠道中支付完成后,点击“返回商户”按钮,直接关闭支付页面。开启方法:`[Pingpp ignoreResultUrl: YES];` 。 |
| | | |
| | | #### 手动导入 |
| | | 1. 获取 SDK |
| | | 下载 SDK, 里面包含了 lib 文件夹和 example 文件夹。lib 文件夹里面是 SDK 的文件。 |
| | | 2. 依赖 Frameworks: |
| | | |
| | | 必需: |
| | | |
| | | ``` |
| | | CFNetwork.framework |
| | | SystemConfiguration.framework |
| | | Security.framework |
| | | QuartzCore.framework |
| | | CoreTelephony.framework |
| | | libc++.tbd |
| | | libz.tbd |
| | | libsqlite3.0.tbd |
| | | libstdc++.tbd |
| | | CoreMotion.framework |
| | | ``` |
| | | |
| | | 百度钱包所需: |
| | | |
| | | ``` |
| | | AddressBook.framework |
| | | AddressBookUI.framework |
| | | AudioToolbox.framework |
| | | CoreAudio.framework |
| | | CoreGraphics.framework |
| | | ImageIO.framework |
| | | MapKit.framework |
| | | MessageUI.framework |
| | | MobileCoreServices.framework |
| | | ``` |
| | | |
| | | Apple Pay 所需: |
| | | |
| | | ``` |
| | | PassKit.framework |
| | | ``` |
| | | 3. 如果不需要某些渠道,删除 `lib/Channels` 下的相应目录即可。 |
| | | 4. 添加 URL Schemes:在 Xcode 中,选择你的工程设置项,选中 "TARGETS" 一栏,在 "Info" 标签栏的 "URL Types" 添加 "URL Schemes",如果使用微信,填入所注册的微信应用程序 id,如果不使用微信,则自定义,允许英文字母和数字,首字母必须是英文字母,建议起名稍复杂一些,尽量避免与其他程序冲突。 |
| | | 5. 添加 Other Linker Flags:在 Build Settings 搜索 Other Linker Flags ,添加 `-ObjC`。 |
| | | 6. 2.1.0 及以上版本,可打开 Debug 模式,打印出 log,方便调试。开启方法:`[Pingpp setDebugMode:YES];`。 |
| | | 7. 2.2.8 及以上版本,可选择是否在 WAP 渠道中支付完成后,点击“返回商户”按钮,直接关闭支付页面。开启方法:`[Pingpp ignoreResultUrl: YES];` 。 |
| | | |
| | | ### 额外配置 |
| | | 1. iOS 9 以上版本如果需要使用支付宝和微信渠道,需要在 `Info.plist` 添加以下代码: |
| | | |
| | | ``` |
| | | <key>LSApplicationQueriesSchemes</key> |
| | | <array> |
| | | <string>weixin</string> |
| | | <string>wechat</string> |
| | | <string>alipay</string> |
| | | <string>alipays</string> |
| | | <string>mqq</string> |
| | | </array> |
| | | ``` |
| | | 2. iOS 9 限制了 http 协议的访问,如果 App 需要访问 `http://`,需要在 `Info.plist` 添加如下代码: |
| | | |
| | | ``` |
| | | <key>NSAppTransportSecurity</key> |
| | | <dict> |
| | | <key>NSAllowsArbitraryLoads</key> |
| | | <true/> |
| | | </dict> |
| | | ``` |
| | | 3. 如果编译失败,遇到错误信息为: |
| | | |
| | | ``` |
| | | XXXXXXX does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. |
| | | ``` |
| | | 请到 Xcode 项目的 `Build Settings` 标签页搜索 bitcode,将 `Enable Bitcode` 设置为 `NO`。 |
| | | 4. 如果不需要应用内快捷支付,请删除 `Channels/Cnp` 目录。否则,请把 `Build Settings` 中的 `CLANG_CXX_LIBRARY` 改成 `libstdc++`。 |
| | | 5. `CmbWallet`(招行一网通) 需要把 招行一网通 提供的秘钥`CMBPublicKey` 添加到 `Info.plist` 如以下代码: |
| | | |
| | | ``` |
| | | <key>CMBPublicKey</key> |
| | | <string>IwxiAyJIT4tlwJSCbRRE0jZFTvYjt02/CrlutsMzd5O4B9PaVyUmIKSasdasdasdhWTyp3Bb9T7c9ujiUJOJ8y7893grwEae9yiOBoBmByVsCMTaxnc+lMr7A9ifk48Tz61WxsxnQTyYzrIVbuerQIUi3PSORwcPMRqi+XLX8qPXkNpLT9dMvjOasdasdasdUaAdPFc2YFHwl9dHf2ydQsxh1BHvaVO0OO+GtZ04ZKjxRyJW2HfghKLJijl;XTjrWSNizcdoefFKQsTdzvcPNvx7PsxuXKo9SosheeS/SHPk9sGNdwvL55yEBA8gNs0XZbkxJYjuwrwsQInC/N6QSaI0f0kyTA== |
| | | </string> |
| | | ``` |
| | | |
| | | 6. `CmbWallet`(招行一网通) 手动导入 : 需要把 `lib/Channels/CmbWallet`目录下的 `SecreteKeyBoard`文件夹手动添加到 工程中的 `Assets.xcassets` 添加成功后即可删除 |
| | | 7. `CmbWallet`(招行一网通) pod 安装 : 需要把 `Pods/Pingpp/CmbWallet`目录下的 `SecreteKeyBoard`文件夹手动添加到 工程中的 `Assets.xcassets` 添加成功后即可删除 |
| | | |
| | | |
| | | **关于如何使用 SDK 请参考 [开发者中心](https://www.pingxx.com/docs/index) 或者 [example](https://github.com/PingPlusPlus/pingpp-ios/tree/master/example) 文件夹里的示例。** |
| | | |
| | | ## 注意事项 |
| | | |
| | | - 由于百度钱包 SDK 不支持 iOS 模拟器,目前带有百度钱包的 Ping++ SDK 只能运行于真机。 |
| | | - 如果不需要 Apple Pay,请不要导入 Apple Pay 的静态库。以免提交到 App Store 时审核不通过。 |
New file |
| | |
| | | # Xcode |
| | | # |
| | | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore |
| | | |
| | | ## Build generated |
| | | build/ |
| | | DerivedData |
| | | |
| | | ## Various settings |
| | | *.pbxuser |
| | | !default.pbxuser |
| | | *.mode1v3 |
| | | !default.mode1v3 |
| | | *.mode2v3 |
| | | !default.mode2v3 |
| | | *.perspectivev3 |
| | | !default.perspectivev3 |
| | | xcuserdata |
| | | |
| | | ## Other |
| | | *.xccheckout |
| | | *.moved-aside |
| | | *.xcuserstate |
| | | *.xcscmblueprint |
| | | |
| | | ## Obj-C/Swift specific |
| | | *.hmap |
| | | *.ipa |
| | | |
| | | # CocoaPods |
| | | # |
| | | # We recommend against adding the Pods directory to your .gitignore. However |
| | | # you should judge for yourself, the pros and cons are mentioned at: |
| | | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control |
| | | # |
| | | # Pods/ |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <Workspace |
| | | version = "1.0"> |
| | | <FileRef |
| | | location = "group:demoapp-swift/demoapp-swift.xcodeproj"> |
| | | </FileRef> |
| | | <FileRef |
| | | location = "container:demoapp.xcodeproj"> |
| | | </FileRef> |
| | | </Workspace> |
New file |
| | |
| | | // !$*UTF8*$! |
| | | { |
| | | archiveVersion = 1; |
| | | classes = { |
| | | }; |
| | | objectVersion = 46; |
| | | objects = { |
| | | |
| | | /* Begin PBXBuildFile section */ |
| | | 1E1560DB1D9A5B8A00CC4E13 /* AlipaySDK.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 1E155F9B1D9A5B8A00CC4E13 /* AlipaySDK.bundle */; }; |
| | | 1E1560DC1D9A5B8A00CC4E13 /* AlipaySDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E155F9C1D9A5B8A00CC4E13 /* AlipaySDK.framework */; }; |
| | | 1E1560DD1D9A5B8A00CC4E13 /* libpingpp+alipay.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E155F9D1D9A5B8A00CC4E13 /* libpingpp+alipay.a */; }; |
| | | 1E1560DE1D9A5B8A00CC4E13 /* libpingpp+applepayUpacp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E155F9F1D9A5B8A00CC4E13 /* libpingpp+applepayUpacp.a */; }; |
| | | 1E1560DF1D9A5B8A00CC4E13 /* libUPAPayPlugin.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E155FA01D9A5B8A00CC4E13 /* libUPAPayPlugin.a */; }; |
| | | 1E1560E01D9A5B8A00CC4E13 /* libpingpp+bfbWap.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E155FA31D9A5B8A00CC4E13 /* libpingpp+bfbWap.a */; }; |
| | | 1E1561B91D9A5B8A00CC4E13 /* libpingpp+qqwallet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E1560C81D9A5B8A00CC4E13 /* libpingpp+qqwallet.a */; }; |
| | | 1E1561BA1D9A5B8A00CC4E13 /* libPaymentControl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E1560CA1D9A5B8A00CC4E13 /* libPaymentControl.a */; }; |
| | | 1E1561BB1D9A5B8A00CC4E13 /* libpingpp+up.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E1560CB1D9A5B8A00CC4E13 /* libpingpp+up.a */; }; |
| | | 1E1561BC1D9A5B8A00CC4E13 /* libpingpp+yeepay.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E1560CE1D9A5B8A00CC4E13 /* libpingpp+yeepay.a */; }; |
| | | 1E1561BD1D9A5B8A00CC4E13 /* libpingpp+network.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E1560D11D9A5B8A00CC4E13 /* libpingpp+network.a */; }; |
| | | 1E1561BE1D9A5B8A00CC4E13 /* libpingpp+webview.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E1560D41D9A5B8A00CC4E13 /* libpingpp+webview.a */; }; |
| | | 1E1561BF1D9A5B8A00CC4E13 /* libpingppcore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E1560D51D9A5B8A00CC4E13 /* libpingppcore.a */; }; |
| | | 1E1561C01D9A5B8A00CC4E13 /* libpingpp+one.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E1560D71D9A5B8A00CC4E13 /* libpingpp+one.a */; }; |
| | | 1E1561C11D9A5B8A00CC4E13 /* Pingpp.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 1E1560D91D9A5B8A00CC4E13 /* Pingpp.bundle */; }; |
| | | 1EAA24681AF2115B00952143 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EAA24671AF2115B00952143 /* AppDelegate.swift */; }; |
| | | 1EAA246A1AF2115B00952143 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EAA24691AF2115B00952143 /* ViewController.swift */; }; |
| | | 1EAA246D1AF2115B00952143 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 1EAA246B1AF2115B00952143 /* Main.storyboard */; }; |
| | | 1EAA246F1AF2115B00952143 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1EAA246E1AF2115B00952143 /* Images.xcassets */; }; |
| | | 1EAA24721AF2115B00952143 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1EAA24701AF2115B00952143 /* LaunchScreen.xib */; }; |
| | | 1EAA24F71AF213EB00952143 /* libc++.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA24F61AF213EB00952143 /* libc++.dylib */; }; |
| | | 1EAA24F81AF213F600952143 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA24F11AF213BE00952143 /* SystemConfiguration.framework */; }; |
| | | 1EAA24F91AF213FB00952143 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA24F31AF213C300952143 /* CFNetwork.framework */; }; |
| | | 1EAA24FB1AF2140100952143 /* libstdc++.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA24FA1AF2140100952143 /* libstdc++.dylib */; }; |
| | | 1EAA24FD1AF2140800952143 /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA24FC1AF2140800952143 /* libsqlite3.dylib */; }; |
| | | 1EAA24FF1AF2140D00952143 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA24FE1AF2140D00952143 /* libz.dylib */; }; |
| | | 1EAA25011AF2142000952143 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA25001AF2142000952143 /* Security.framework */; }; |
| | | 1EAA25031AF2142B00952143 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA25021AF2142B00952143 /* CoreTelephony.framework */; }; |
| | | 1EAA25051AF2143800952143 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA25041AF2143800952143 /* CoreGraphics.framework */; }; |
| | | 1EAA25071AF2144000952143 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA25061AF2144000952143 /* ImageIO.framework */; }; |
| | | 1EAA25091AF2144500952143 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA25081AF2144500952143 /* QuartzCore.framework */; }; |
| | | 1EAA250B1AF2144C00952143 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA250A1AF2144C00952143 /* MobileCoreServices.framework */; }; |
| | | 1EAA250D1AF2145500952143 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA250C1AF2145500952143 /* MessageUI.framework */; }; |
| | | 1EAA250F1AF2146300952143 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA250E1AF2146300952143 /* AudioToolbox.framework */; }; |
| | | 1EAA25111AF2146800952143 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA25101AF2146800952143 /* CoreAudio.framework */; }; |
| | | 1EAA25131AF2147300952143 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA25121AF2147300952143 /* MapKit.framework */; }; |
| | | 1EAA25151AF2148C00952143 /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA25141AF2148C00952143 /* AddressBook.framework */; }; |
| | | 1EAA25171AF2149100952143 /* AddressBookUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA25161AF2149100952143 /* AddressBookUI.framework */; }; |
| | | 1EAA25191AF214B300952143 /* PassKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EAA25181AF214B300952143 /* PassKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; |
| | | /* End PBXBuildFile section */ |
| | | |
| | | /* Begin PBXFileReference section */ |
| | | 1E155F9B1D9A5B8A00CC4E13 /* AlipaySDK.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = AlipaySDK.bundle; sourceTree = "<group>"; }; |
| | | 1E155F9C1D9A5B8A00CC4E13 /* AlipaySDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AlipaySDK.framework; sourceTree = "<group>"; }; |
| | | 1E155F9D1D9A5B8A00CC4E13 /* libpingpp+alipay.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libpingpp+alipay.a"; sourceTree = "<group>"; }; |
| | | 1E155F9F1D9A5B8A00CC4E13 /* libpingpp+applepayUpacp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libpingpp+applepayUpacp.a"; sourceTree = "<group>"; }; |
| | | 1E155FA01D9A5B8A00CC4E13 /* libUPAPayPlugin.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libUPAPayPlugin.a; sourceTree = "<group>"; }; |
| | | 1E155FA31D9A5B8A00CC4E13 /* libpingpp+bfbWap.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libpingpp+bfbWap.a"; sourceTree = "<group>"; }; |
| | | 1E1560C81D9A5B8A00CC4E13 /* libpingpp+qqwallet.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libpingpp+qqwallet.a"; sourceTree = "<group>"; }; |
| | | 1E1560CA1D9A5B8A00CC4E13 /* libPaymentControl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libPaymentControl.a; sourceTree = "<group>"; }; |
| | | 1E1560CB1D9A5B8A00CC4E13 /* libpingpp+up.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libpingpp+up.a"; sourceTree = "<group>"; }; |
| | | 1E1560CE1D9A5B8A00CC4E13 /* libpingpp+yeepay.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libpingpp+yeepay.a"; sourceTree = "<group>"; }; |
| | | 1E1560D11D9A5B8A00CC4E13 /* libpingpp+network.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libpingpp+network.a"; sourceTree = "<group>"; }; |
| | | 1E1560D21D9A5B8A00CC4E13 /* PingppURLResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PingppURLResponse.h; sourceTree = "<group>"; }; |
| | | 1E1560D41D9A5B8A00CC4E13 /* libpingpp+webview.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libpingpp+webview.a"; sourceTree = "<group>"; }; |
| | | 1E1560D51D9A5B8A00CC4E13 /* libpingppcore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libpingppcore.a; sourceTree = "<group>"; }; |
| | | 1E1560D71D9A5B8A00CC4E13 /* libpingpp+one.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libpingpp+one.a"; sourceTree = "<group>"; }; |
| | | 1E1560D81D9A5B8A00CC4E13 /* Pingpp+One.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Pingpp+One.h"; sourceTree = "<group>"; }; |
| | | 1E1560D91D9A5B8A00CC4E13 /* Pingpp.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Pingpp.bundle; sourceTree = "<group>"; }; |
| | | 1E1560DA1D9A5B8A00CC4E13 /* Pingpp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Pingpp.h; sourceTree = "<group>"; }; |
| | | 1EAA24621AF2115B00952143 /* demoapp-swift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "demoapp-swift.app"; sourceTree = BUILT_PRODUCTS_DIR; }; |
| | | 1EAA24661AF2115B00952143 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; |
| | | 1EAA24671AF2115B00952143 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; |
| | | 1EAA24691AF2115B00952143 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; }; |
| | | 1EAA246C1AF2115B00952143 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; }; |
| | | 1EAA246E1AF2115B00952143 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; }; |
| | | 1EAA24711AF2115B00952143 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; }; |
| | | 1EAA247C1AF2115B00952143 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; |
| | | 1EAA247D1AF2115B00952143 /* demoapp_swiftTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = demoapp_swiftTests.swift; sourceTree = "<group>"; }; |
| | | 1EAA24F11AF213BE00952143 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; |
| | | 1EAA24F31AF213C300952143 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; }; |
| | | 1EAA24F61AF213EB00952143 /* libc++.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libc++.dylib"; path = "usr/lib/libc++.dylib"; sourceTree = SDKROOT; }; |
| | | 1EAA24FA1AF2140100952143 /* libstdc++.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libstdc++.dylib"; path = "usr/lib/libstdc++.dylib"; sourceTree = SDKROOT; }; |
| | | 1EAA24FC1AF2140800952143 /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; }; |
| | | 1EAA24FE1AF2140D00952143 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; |
| | | 1EAA25001AF2142000952143 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; |
| | | 1EAA25021AF2142B00952143 /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = System/Library/Frameworks/CoreTelephony.framework; sourceTree = SDKROOT; }; |
| | | 1EAA25041AF2143800952143 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; |
| | | 1EAA25061AF2144000952143 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = System/Library/Frameworks/ImageIO.framework; sourceTree = SDKROOT; }; |
| | | 1EAA25081AF2144500952143 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; |
| | | 1EAA250A1AF2144C00952143 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; }; |
| | | 1EAA250C1AF2145500952143 /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; }; |
| | | 1EAA250E1AF2146300952143 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; |
| | | 1EAA25101AF2146800952143 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; |
| | | 1EAA25121AF2147300952143 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; }; |
| | | 1EAA25141AF2148C00952143 /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; }; |
| | | 1EAA25161AF2149100952143 /* AddressBookUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBookUI.framework; path = System/Library/Frameworks/AddressBookUI.framework; sourceTree = SDKROOT; }; |
| | | 1EAA25181AF214B300952143 /* PassKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PassKit.framework; path = System/Library/Frameworks/PassKit.framework; sourceTree = SDKROOT; }; |
| | | 1EAA251D1AF2191500952143 /* demoapp-swift-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "demoapp-swift-Bridging-Header.h"; sourceTree = "<group>"; }; |
| | | /* End PBXFileReference section */ |
| | | |
| | | /* Begin PBXFrameworksBuildPhase section */ |
| | | 1EAA245F1AF2115B00952143 /* Frameworks */ = { |
| | | isa = PBXFrameworksBuildPhase; |
| | | buildActionMask = 2147483647; |
| | | files = ( |
| | | 1EAA25191AF214B300952143 /* PassKit.framework in Frameworks */, |
| | | 1E1560DC1D9A5B8A00CC4E13 /* AlipaySDK.framework in Frameworks */, |
| | | 1E1561BF1D9A5B8A00CC4E13 /* libpingppcore.a in Frameworks */, |
| | | 1EAA25171AF2149100952143 /* AddressBookUI.framework in Frameworks */, |
| | | 1E1560DF1D9A5B8A00CC4E13 /* libUPAPayPlugin.a in Frameworks */, |
| | | 1E1560DE1D9A5B8A00CC4E13 /* libpingpp+applepayUpacp.a in Frameworks */, |
| | | 1E1561BC1D9A5B8A00CC4E13 /* libpingpp+yeepay.a in Frameworks */, |
| | | 1EAA25151AF2148C00952143 /* AddressBook.framework in Frameworks */, |
| | | 1EAA250B1AF2144C00952143 /* MobileCoreServices.framework in Frameworks */, |
| | | 1E1561BB1D9A5B8A00CC4E13 /* libpingpp+up.a in Frameworks */, |
| | | 1EAA25131AF2147300952143 /* MapKit.framework in Frameworks */, |
| | | 1EAA25111AF2146800952143 /* CoreAudio.framework in Frameworks */, |
| | | 1E1561BD1D9A5B8A00CC4E13 /* libpingpp+network.a in Frameworks */, |
| | | 1E1561BE1D9A5B8A00CC4E13 /* libpingpp+webview.a in Frameworks */, |
| | | 1E1560DD1D9A5B8A00CC4E13 /* libpingpp+alipay.a in Frameworks */, |
| | | 1EAA250F1AF2146300952143 /* AudioToolbox.framework in Frameworks */, |
| | | 1EAA250D1AF2145500952143 /* MessageUI.framework in Frameworks */, |
| | | 1EAA25091AF2144500952143 /* QuartzCore.framework in Frameworks */, |
| | | 1EAA25071AF2144000952143 /* ImageIO.framework in Frameworks */, |
| | | 1EAA25051AF2143800952143 /* CoreGraphics.framework in Frameworks */, |
| | | 1E1561C01D9A5B8A00CC4E13 /* libpingpp+one.a in Frameworks */, |
| | | 1EAA25031AF2142B00952143 /* CoreTelephony.framework in Frameworks */, |
| | | 1EAA25011AF2142000952143 /* Security.framework in Frameworks */, |
| | | 1EAA24FF1AF2140D00952143 /* libz.dylib in Frameworks */, |
| | | 1EAA24FD1AF2140800952143 /* libsqlite3.dylib in Frameworks */, |
| | | 1E1560E01D9A5B8A00CC4E13 /* libpingpp+bfbWap.a in Frameworks */, |
| | | 1EAA24FB1AF2140100952143 /* libstdc++.dylib in Frameworks */, |
| | | 1EAA24F91AF213FB00952143 /* CFNetwork.framework in Frameworks */, |
| | | 1E1561BA1D9A5B8A00CC4E13 /* libPaymentControl.a in Frameworks */, |
| | | 1EAA24F81AF213F600952143 /* SystemConfiguration.framework in Frameworks */, |
| | | 1E1561B91D9A5B8A00CC4E13 /* libpingpp+qqwallet.a in Frameworks */, |
| | | 1EAA24F71AF213EB00952143 /* libc++.dylib in Frameworks */, |
| | | ); |
| | | runOnlyForDeploymentPostprocessing = 0; |
| | | }; |
| | | /* End PBXFrameworksBuildPhase section */ |
| | | |
| | | /* Begin PBXGroup section */ |
| | | 1E155F981D9A5B8A00CC4E13 /* Pingpp */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1E155F991D9A5B8A00CC4E13 /* Channels */, |
| | | 1E1560CF1D9A5B8A00CC4E13 /* Dependencies */, |
| | | 1E1560D51D9A5B8A00CC4E13 /* libpingppcore.a */, |
| | | 1E1560D61D9A5B8A00CC4E13 /* One */, |
| | | 1E1560D91D9A5B8A00CC4E13 /* Pingpp.bundle */, |
| | | 1E1560DA1D9A5B8A00CC4E13 /* Pingpp.h */, |
| | | ); |
| | | name = Pingpp; |
| | | path = ../../../lib; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1E155F991D9A5B8A00CC4E13 /* Channels */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1E155F9A1D9A5B8A00CC4E13 /* Alipay */, |
| | | 1E155F9E1D9A5B8A00CC4E13 /* ApplePay */, |
| | | 1E155FA21D9A5B8A00CC4E13 /* BfbWap */, |
| | | 1E1560C71D9A5B8A00CC4E13 /* QQWallet */, |
| | | 1E1560C91D9A5B8A00CC4E13 /* UnionPay */, |
| | | 1E1560CD1D9A5B8A00CC4E13 /* Yeepay */, |
| | | ); |
| | | path = Channels; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1E155F9A1D9A5B8A00CC4E13 /* Alipay */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1E155F9B1D9A5B8A00CC4E13 /* AlipaySDK.bundle */, |
| | | 1E155F9C1D9A5B8A00CC4E13 /* AlipaySDK.framework */, |
| | | 1E155F9D1D9A5B8A00CC4E13 /* libpingpp+alipay.a */, |
| | | ); |
| | | path = Alipay; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1E155F9E1D9A5B8A00CC4E13 /* ApplePay */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1E155F9F1D9A5B8A00CC4E13 /* libpingpp+applepayUpacp.a */, |
| | | 1E155FA01D9A5B8A00CC4E13 /* libUPAPayPlugin.a */, |
| | | ); |
| | | path = ApplePay; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1E155FA21D9A5B8A00CC4E13 /* BfbWap */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1E155FA31D9A5B8A00CC4E13 /* libpingpp+bfbWap.a */, |
| | | ); |
| | | path = BfbWap; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1E1560C71D9A5B8A00CC4E13 /* QQWallet */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1E1560C81D9A5B8A00CC4E13 /* libpingpp+qqwallet.a */, |
| | | ); |
| | | path = QQWallet; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1E1560C91D9A5B8A00CC4E13 /* UnionPay */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1E1560CA1D9A5B8A00CC4E13 /* libPaymentControl.a */, |
| | | 1E1560CB1D9A5B8A00CC4E13 /* libpingpp+up.a */, |
| | | ); |
| | | path = UnionPay; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1E1560CD1D9A5B8A00CC4E13 /* Yeepay */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1E1560CE1D9A5B8A00CC4E13 /* libpingpp+yeepay.a */, |
| | | ); |
| | | path = Yeepay; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1E1560CF1D9A5B8A00CC4E13 /* Dependencies */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1E1560D01D9A5B8A00CC4E13 /* Network */, |
| | | 1E1560D31D9A5B8A00CC4E13 /* WebView */, |
| | | ); |
| | | path = Dependencies; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1E1560D01D9A5B8A00CC4E13 /* Network */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1E1560D11D9A5B8A00CC4E13 /* libpingpp+network.a */, |
| | | 1E1560D21D9A5B8A00CC4E13 /* PingppURLResponse.h */, |
| | | ); |
| | | path = Network; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1E1560D31D9A5B8A00CC4E13 /* WebView */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1E1560D41D9A5B8A00CC4E13 /* libpingpp+webview.a */, |
| | | ); |
| | | path = WebView; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1E1560D61D9A5B8A00CC4E13 /* One */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1E1560D71D9A5B8A00CC4E13 /* libpingpp+one.a */, |
| | | 1E1560D81D9A5B8A00CC4E13 /* Pingpp+One.h */, |
| | | ); |
| | | path = One; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1EAA24591AF2115A00952143 = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1EAA24641AF2115B00952143 /* demoapp-swift */, |
| | | 1EAA24F51AF213D200952143 /* Frameworks */, |
| | | 1EAA247A1AF2115B00952143 /* demoapp-swiftTests */, |
| | | 1EAA24631AF2115B00952143 /* Products */, |
| | | ); |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1EAA24631AF2115B00952143 /* Products */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1EAA24621AF2115B00952143 /* demoapp-swift.app */, |
| | | ); |
| | | name = Products; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1EAA24641AF2115B00952143 /* demoapp-swift */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1E155F981D9A5B8A00CC4E13 /* Pingpp */, |
| | | 1EAA24671AF2115B00952143 /* AppDelegate.swift */, |
| | | 1EAA24691AF2115B00952143 /* ViewController.swift */, |
| | | 1EAA246B1AF2115B00952143 /* Main.storyboard */, |
| | | 1EAA246E1AF2115B00952143 /* Images.xcassets */, |
| | | 1EAA24701AF2115B00952143 /* LaunchScreen.xib */, |
| | | 1EAA251D1AF2191500952143 /* demoapp-swift-Bridging-Header.h */, |
| | | 1EAA24651AF2115B00952143 /* Supporting Files */, |
| | | ); |
| | | path = "demoapp-swift"; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1EAA24651AF2115B00952143 /* Supporting Files */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1EAA24661AF2115B00952143 /* Info.plist */, |
| | | ); |
| | | name = "Supporting Files"; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1EAA247A1AF2115B00952143 /* demoapp-swiftTests */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1EAA247D1AF2115B00952143 /* demoapp_swiftTests.swift */, |
| | | 1EAA247B1AF2115B00952143 /* Supporting Files */, |
| | | ); |
| | | path = "demoapp-swiftTests"; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1EAA247B1AF2115B00952143 /* Supporting Files */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1EAA247C1AF2115B00952143 /* Info.plist */, |
| | | ); |
| | | name = "Supporting Files"; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1EAA24F51AF213D200952143 /* Frameworks */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 1EAA25181AF214B300952143 /* PassKit.framework */, |
| | | 1EAA25161AF2149100952143 /* AddressBookUI.framework */, |
| | | 1EAA25141AF2148C00952143 /* AddressBook.framework */, |
| | | 1EAA25121AF2147300952143 /* MapKit.framework */, |
| | | 1EAA25101AF2146800952143 /* CoreAudio.framework */, |
| | | 1EAA250E1AF2146300952143 /* AudioToolbox.framework */, |
| | | 1EAA250C1AF2145500952143 /* MessageUI.framework */, |
| | | 1EAA250A1AF2144C00952143 /* MobileCoreServices.framework */, |
| | | 1EAA25081AF2144500952143 /* QuartzCore.framework */, |
| | | 1EAA25061AF2144000952143 /* ImageIO.framework */, |
| | | 1EAA25041AF2143800952143 /* CoreGraphics.framework */, |
| | | 1EAA25021AF2142B00952143 /* CoreTelephony.framework */, |
| | | 1EAA25001AF2142000952143 /* Security.framework */, |
| | | 1EAA24FE1AF2140D00952143 /* libz.dylib */, |
| | | 1EAA24FC1AF2140800952143 /* libsqlite3.dylib */, |
| | | 1EAA24FA1AF2140100952143 /* libstdc++.dylib */, |
| | | 1EAA24F61AF213EB00952143 /* libc++.dylib */, |
| | | 1EAA24F31AF213C300952143 /* CFNetwork.framework */, |
| | | 1EAA24F11AF213BE00952143 /* SystemConfiguration.framework */, |
| | | ); |
| | | name = Frameworks; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | /* End PBXGroup section */ |
| | | |
| | | /* Begin PBXNativeTarget section */ |
| | | 1EAA24611AF2115B00952143 /* demoapp-swift */ = { |
| | | isa = PBXNativeTarget; |
| | | buildConfigurationList = 1EAA24811AF2115B00952143 /* Build configuration list for PBXNativeTarget "demoapp-swift" */; |
| | | buildPhases = ( |
| | | 1EAA245E1AF2115B00952143 /* Sources */, |
| | | 1EAA245F1AF2115B00952143 /* Frameworks */, |
| | | 1EAA24601AF2115B00952143 /* Resources */, |
| | | ); |
| | | buildRules = ( |
| | | ); |
| | | dependencies = ( |
| | | ); |
| | | name = "demoapp-swift"; |
| | | productName = "demoapp-swift"; |
| | | productReference = 1EAA24621AF2115B00952143 /* demoapp-swift.app */; |
| | | productType = "com.apple.product-type.application"; |
| | | }; |
| | | /* End PBXNativeTarget section */ |
| | | |
| | | /* Begin PBXProject section */ |
| | | 1EAA245A1AF2115A00952143 /* Project object */ = { |
| | | isa = PBXProject; |
| | | attributes = { |
| | | LastSwiftUpdateCheck = 0700; |
| | | LastUpgradeCheck = 0700; |
| | | ORGANIZATIONNAME = Pingplusplus; |
| | | TargetAttributes = { |
| | | 1EAA24611AF2115B00952143 = { |
| | | CreatedOnToolsVersion = 6.3.1; |
| | | DevelopmentTeam = 3XCAYELUBS; |
| | | LastSwiftMigration = 0800; |
| | | }; |
| | | }; |
| | | }; |
| | | buildConfigurationList = 1EAA245D1AF2115A00952143 /* Build configuration list for PBXProject "demoapp-swift" */; |
| | | compatibilityVersion = "Xcode 3.2"; |
| | | developmentRegion = English; |
| | | hasScannedForEncodings = 0; |
| | | knownRegions = ( |
| | | en, |
| | | Base, |
| | | ); |
| | | mainGroup = 1EAA24591AF2115A00952143; |
| | | productRefGroup = 1EAA24631AF2115B00952143 /* Products */; |
| | | projectDirPath = ""; |
| | | projectRoot = ""; |
| | | targets = ( |
| | | 1EAA24611AF2115B00952143 /* demoapp-swift */, |
| | | ); |
| | | }; |
| | | /* End PBXProject section */ |
| | | |
| | | /* Begin PBXResourcesBuildPhase section */ |
| | | 1EAA24601AF2115B00952143 /* Resources */ = { |
| | | isa = PBXResourcesBuildPhase; |
| | | buildActionMask = 2147483647; |
| | | files = ( |
| | | 1E1561C11D9A5B8A00CC4E13 /* Pingpp.bundle in Resources */, |
| | | 1EAA246D1AF2115B00952143 /* Main.storyboard in Resources */, |
| | | 1EAA24721AF2115B00952143 /* LaunchScreen.xib in Resources */, |
| | | 1E1560DB1D9A5B8A00CC4E13 /* AlipaySDK.bundle in Resources */, |
| | | 1EAA246F1AF2115B00952143 /* Images.xcassets in Resources */, |
| | | ); |
| | | runOnlyForDeploymentPostprocessing = 0; |
| | | }; |
| | | /* End PBXResourcesBuildPhase section */ |
| | | |
| | | /* Begin PBXSourcesBuildPhase section */ |
| | | 1EAA245E1AF2115B00952143 /* Sources */ = { |
| | | isa = PBXSourcesBuildPhase; |
| | | buildActionMask = 2147483647; |
| | | files = ( |
| | | 1EAA246A1AF2115B00952143 /* ViewController.swift in Sources */, |
| | | 1EAA24681AF2115B00952143 /* AppDelegate.swift in Sources */, |
| | | ); |
| | | runOnlyForDeploymentPostprocessing = 0; |
| | | }; |
| | | /* End PBXSourcesBuildPhase section */ |
| | | |
| | | /* Begin PBXVariantGroup section */ |
| | | 1EAA246B1AF2115B00952143 /* Main.storyboard */ = { |
| | | isa = PBXVariantGroup; |
| | | children = ( |
| | | 1EAA246C1AF2115B00952143 /* Base */, |
| | | ); |
| | | name = Main.storyboard; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 1EAA24701AF2115B00952143 /* LaunchScreen.xib */ = { |
| | | isa = PBXVariantGroup; |
| | | children = ( |
| | | 1EAA24711AF2115B00952143 /* Base */, |
| | | ); |
| | | name = LaunchScreen.xib; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | /* End PBXVariantGroup section */ |
| | | |
| | | /* Begin XCBuildConfiguration section */ |
| | | 1EAA247F1AF2115B00952143 /* Debug */ = { |
| | | isa = XCBuildConfiguration; |
| | | buildSettings = { |
| | | ALWAYS_SEARCH_USER_PATHS = NO; |
| | | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; |
| | | CLANG_CXX_LIBRARY = "libc++"; |
| | | CLANG_ENABLE_MODULES = YES; |
| | | CLANG_ENABLE_OBJC_ARC = YES; |
| | | CLANG_WARN_BOOL_CONVERSION = YES; |
| | | CLANG_WARN_CONSTANT_CONVERSION = YES; |
| | | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; |
| | | CLANG_WARN_EMPTY_BODY = YES; |
| | | CLANG_WARN_ENUM_CONVERSION = YES; |
| | | CLANG_WARN_INT_CONVERSION = YES; |
| | | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
| | | CLANG_WARN_UNREACHABLE_CODE = YES; |
| | | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; |
| | | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; |
| | | COPY_PHASE_STRIP = NO; |
| | | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; |
| | | ENABLE_STRICT_OBJC_MSGSEND = YES; |
| | | ENABLE_TESTABILITY = YES; |
| | | GCC_C_LANGUAGE_STANDARD = gnu99; |
| | | GCC_DYNAMIC_NO_PIC = NO; |
| | | GCC_NO_COMMON_BLOCKS = YES; |
| | | GCC_OPTIMIZATION_LEVEL = 0; |
| | | GCC_PREPROCESSOR_DEFINITIONS = ( |
| | | "DEBUG=1", |
| | | "$(inherited)", |
| | | ); |
| | | GCC_SYMBOLS_PRIVATE_EXTERN = NO; |
| | | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; |
| | | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; |
| | | GCC_WARN_UNDECLARED_SELECTOR = YES; |
| | | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
| | | GCC_WARN_UNUSED_FUNCTION = YES; |
| | | GCC_WARN_UNUSED_VARIABLE = YES; |
| | | IPHONEOS_DEPLOYMENT_TARGET = 8.0; |
| | | MTL_ENABLE_DEBUG_INFO = YES; |
| | | ONLY_ACTIVE_ARCH = YES; |
| | | SDKROOT = iphoneos; |
| | | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; |
| | | TARGETED_DEVICE_FAMILY = "1,2"; |
| | | }; |
| | | name = Debug; |
| | | }; |
| | | 1EAA24801AF2115B00952143 /* Release */ = { |
| | | isa = XCBuildConfiguration; |
| | | buildSettings = { |
| | | ALWAYS_SEARCH_USER_PATHS = NO; |
| | | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; |
| | | CLANG_CXX_LIBRARY = "libc++"; |
| | | CLANG_ENABLE_MODULES = YES; |
| | | CLANG_ENABLE_OBJC_ARC = YES; |
| | | CLANG_WARN_BOOL_CONVERSION = YES; |
| | | CLANG_WARN_CONSTANT_CONVERSION = YES; |
| | | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; |
| | | CLANG_WARN_EMPTY_BODY = YES; |
| | | CLANG_WARN_ENUM_CONVERSION = YES; |
| | | CLANG_WARN_INT_CONVERSION = YES; |
| | | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
| | | CLANG_WARN_UNREACHABLE_CODE = YES; |
| | | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; |
| | | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; |
| | | COPY_PHASE_STRIP = NO; |
| | | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; |
| | | ENABLE_NS_ASSERTIONS = NO; |
| | | ENABLE_STRICT_OBJC_MSGSEND = YES; |
| | | GCC_C_LANGUAGE_STANDARD = gnu99; |
| | | GCC_NO_COMMON_BLOCKS = YES; |
| | | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; |
| | | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; |
| | | GCC_WARN_UNDECLARED_SELECTOR = YES; |
| | | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
| | | GCC_WARN_UNUSED_FUNCTION = YES; |
| | | GCC_WARN_UNUSED_VARIABLE = YES; |
| | | IPHONEOS_DEPLOYMENT_TARGET = 8.0; |
| | | MTL_ENABLE_DEBUG_INFO = NO; |
| | | SDKROOT = iphoneos; |
| | | TARGETED_DEVICE_FAMILY = "1,2"; |
| | | VALIDATE_PRODUCT = YES; |
| | | }; |
| | | name = Release; |
| | | }; |
| | | 1EAA24821AF2115B00952143 /* Debug */ = { |
| | | isa = XCBuildConfiguration; |
| | | buildSettings = { |
| | | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
| | | CLANG_CXX_LIBRARY = "libstdc++"; |
| | | DEVELOPMENT_TEAM = 3XCAYELUBS; |
| | | ENABLE_BITCODE = NO; |
| | | FRAMEWORK_SEARCH_PATHS = ( |
| | | "$(inherited)", |
| | | "$(PROJECT_DIR)/../../lib/Channels/Alipay", |
| | | ); |
| | | INFOPLIST_FILE = "demoapp-swift/Info.plist"; |
| | | IPHONEOS_DEPLOYMENT_TARGET = 8.0; |
| | | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; |
| | | LIBRARY_SEARCH_PATHS = ( |
| | | "$(inherited)", |
| | | "$(PROJECT_DIR)/../../lib/Channels/Alipay", |
| | | "$(PROJECT_DIR)/../../lib/Channels/UnionPay", |
| | | "$(PROJECT_DIR)/../../lib", |
| | | "$(PROJECT_DIR)/../../lib/Dependencies/Network", |
| | | "$(PROJECT_DIR)/../../lib/One", |
| | | "$(PROJECT_DIR)/../../lib/Channels/BfbWap", |
| | | "$(PROJECT_DIR)/../../lib/Channels/QQWallet", |
| | | "$(PROJECT_DIR)/../../lib/Dependencies/Webview", |
| | | "$(PROJECT_DIR)/../../lib/Channels/Yeepay", |
| | | "$(PROJECT_DIR)/../../lib/Channels/ApplePay", |
| | | ); |
| | | OTHER_LDFLAGS = ( |
| | | "$(inherited)", |
| | | "-ObjC", |
| | | "-l\"c++\"", |
| | | "-l\"pingpp+alipay\"", |
| | | "-l\"pingpp+network\"", |
| | | "-l\"pingpp+one\"", |
| | | "-l\"pingpp+up\"", |
| | | "-l\"pingppcore\"", |
| | | "-l\"sqlite3\"", |
| | | "-l\"stdc++\"", |
| | | "-l\"z\"", |
| | | "-framework", |
| | | "\"AddressBook\"", |
| | | "-framework", |
| | | "\"AddressBookUI\"", |
| | | "-framework", |
| | | "\"AlipaySDK\"", |
| | | "-framework", |
| | | "\"AudioToolbox\"", |
| | | "-framework", |
| | | "\"CFNetwork\"", |
| | | "-framework", |
| | | "\"CoreAudio\"", |
| | | "-framework", |
| | | "\"CoreGraphics\"", |
| | | "-framework", |
| | | "\"CoreTelephony\"", |
| | | "-framework", |
| | | "\"ImageIO\"", |
| | | "-framework", |
| | | "\"MapKit\"", |
| | | "-framework", |
| | | "\"MessageUI\"", |
| | | "-framework", |
| | | "\"MobileCoreServices\"", |
| | | "-framework", |
| | | "\"QuartzCore\"", |
| | | "-framework", |
| | | "\"Security\"", |
| | | "-framework", |
| | | "\"SystemConfiguration\"", |
| | | "-framework", |
| | | "\"CoreMotion\"", |
| | | ); |
| | | PRODUCT_BUNDLE_IDENTIFIER = "com.pingplusplus.demoapp-swift"; |
| | | PRODUCT_NAME = "$(TARGET_NAME)"; |
| | | SDKROOT = iphoneos10.0; |
| | | SWIFT_OBJC_BRIDGING_HEADER = "demoapp-swift/demoapp-swift-Bridging-Header.h"; |
| | | SWIFT_VERSION = 3.0; |
| | | }; |
| | | name = Debug; |
| | | }; |
| | | 1EAA24831AF2115B00952143 /* Release */ = { |
| | | isa = XCBuildConfiguration; |
| | | buildSettings = { |
| | | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
| | | CLANG_CXX_LIBRARY = "libstdc++"; |
| | | DEVELOPMENT_TEAM = 3XCAYELUBS; |
| | | ENABLE_BITCODE = NO; |
| | | FRAMEWORK_SEARCH_PATHS = ( |
| | | "$(inherited)", |
| | | "$(PROJECT_DIR)/../../lib/Channels/Alipay", |
| | | ); |
| | | INFOPLIST_FILE = "demoapp-swift/Info.plist"; |
| | | IPHONEOS_DEPLOYMENT_TARGET = 8.0; |
| | | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; |
| | | LIBRARY_SEARCH_PATHS = ( |
| | | "$(inherited)", |
| | | "$(PROJECT_DIR)/../../lib/Channels/Alipay", |
| | | "$(PROJECT_DIR)/../../lib/Channels/UnionPay", |
| | | "$(PROJECT_DIR)/../../lib", |
| | | "$(PROJECT_DIR)/../../lib/Dependencies/Network", |
| | | "$(PROJECT_DIR)/../../lib/One", |
| | | "$(PROJECT_DIR)/../../lib/Channels/BfbWap", |
| | | "$(PROJECT_DIR)/../../lib/Channels/QQWallet", |
| | | "$(PROJECT_DIR)/../../lib/Dependencies/Webview", |
| | | "$(PROJECT_DIR)/../../lib/Channels/Yeepay", |
| | | "$(PROJECT_DIR)/../../lib/Channels/ApplePay", |
| | | ); |
| | | OTHER_LDFLAGS = ( |
| | | "$(inherited)", |
| | | "-ObjC", |
| | | "-l\"c++\"", |
| | | "-l\"pingpp+alipay\"", |
| | | "-l\"pingpp+network\"", |
| | | "-l\"pingpp+one\"", |
| | | "-l\"pingpp+up\"", |
| | | "-l\"pingppcore\"", |
| | | "-l\"sqlite3\"", |
| | | "-l\"stdc++\"", |
| | | "-l\"z\"", |
| | | "-framework", |
| | | "\"AddressBook\"", |
| | | "-framework", |
| | | "\"AddressBookUI\"", |
| | | "-framework", |
| | | "\"AlipaySDK\"", |
| | | "-framework", |
| | | "\"AudioToolbox\"", |
| | | "-framework", |
| | | "\"CFNetwork\"", |
| | | "-framework", |
| | | "\"CoreAudio\"", |
| | | "-framework", |
| | | "\"CoreGraphics\"", |
| | | "-framework", |
| | | "\"CoreTelephony\"", |
| | | "-framework", |
| | | "\"ImageIO\"", |
| | | "-framework", |
| | | "\"MapKit\"", |
| | | "-framework", |
| | | "\"MessageUI\"", |
| | | "-framework", |
| | | "\"MobileCoreServices\"", |
| | | "-framework", |
| | | "\"QuartzCore\"", |
| | | "-framework", |
| | | "\"Security\"", |
| | | "-framework", |
| | | "\"SystemConfiguration\"", |
| | | "-framework", |
| | | "\"CoreMotion\"", |
| | | ); |
| | | PRODUCT_BUNDLE_IDENTIFIER = "com.pingplusplus.demoapp-swift"; |
| | | PRODUCT_NAME = "$(TARGET_NAME)"; |
| | | SDKROOT = iphoneos10.0; |
| | | SWIFT_OBJC_BRIDGING_HEADER = "demoapp-swift/demoapp-swift-Bridging-Header.h"; |
| | | SWIFT_VERSION = 3.0; |
| | | }; |
| | | name = Release; |
| | | }; |
| | | /* End XCBuildConfiguration section */ |
| | | |
| | | /* Begin XCConfigurationList section */ |
| | | 1EAA245D1AF2115A00952143 /* Build configuration list for PBXProject "demoapp-swift" */ = { |
| | | isa = XCConfigurationList; |
| | | buildConfigurations = ( |
| | | 1EAA247F1AF2115B00952143 /* Debug */, |
| | | 1EAA24801AF2115B00952143 /* Release */, |
| | | ); |
| | | defaultConfigurationIsVisible = 0; |
| | | defaultConfigurationName = Release; |
| | | }; |
| | | 1EAA24811AF2115B00952143 /* Build configuration list for PBXNativeTarget "demoapp-swift" */ = { |
| | | isa = XCConfigurationList; |
| | | buildConfigurations = ( |
| | | 1EAA24821AF2115B00952143 /* Debug */, |
| | | 1EAA24831AF2115B00952143 /* Release */, |
| | | ); |
| | | defaultConfigurationIsVisible = 0; |
| | | defaultConfigurationName = Release; |
| | | }; |
| | | /* End XCConfigurationList section */ |
| | | }; |
| | | rootObject = 1EAA245A1AF2115A00952143 /* Project object */; |
| | | } |
New file |
| | |
| | | // |
| | | // AppDelegate.swift |
| | | // demoapp-swift |
| | | // |
| | | // Created by Afon on 15/4/30. |
| | | // Copyright (c) 2015年 Pingplusplus. All rights reserved. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | @UIApplicationMain |
| | | class AppDelegate: UIResponder, UIApplicationDelegate { |
| | | |
| | | var window: UIWindow? |
| | | |
| | | |
| | | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { |
| | | // Override point for customization after application launch. |
| | | Pingpp.setDebugMode(true) |
| | | print(Pingpp.version()) |
| | | return true |
| | | } |
| | | |
| | | func applicationWillResignActive(application: UIApplication) { |
| | | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. |
| | | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. |
| | | } |
| | | |
| | | func applicationDidEnterBackground(application: UIApplication) { |
| | | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. |
| | | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. |
| | | } |
| | | |
| | | func applicationWillEnterForeground(application: UIApplication) { |
| | | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. |
| | | } |
| | | |
| | | func applicationDidBecomeActive(application: UIApplication) { |
| | | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. |
| | | } |
| | | |
| | | func applicationWillTerminate(application: UIApplication) { |
| | | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. |
| | | } |
| | | |
| | | // 以下方法调用相关说明请查看 Objective-C 相关文件 |
| | | // iOS 8 及以下请用这个 |
| | | func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool { |
| | | return Pingpp.handleOpen(url as URL!, withCompletion: nil) |
| | | } |
| | | |
| | | // iOS 9 以上请用这个 |
| | | func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool { |
| | | return Pingpp.handleOpen(url as URL!, withCompletion: nil) |
| | | } |
| | | |
| | | } |
| | | |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6214" systemVersion="14A314h" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES"> |
| | | <dependencies> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6207"/> |
| | | <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/> |
| | | </dependencies> |
| | | <objects> |
| | | <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> |
| | | <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> |
| | | <view contentMode="scaleToFill" id="iN0-l3-epB"> |
| | | <rect key="frame" x="0.0" y="0.0" width="480" height="480"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <subviews> |
| | | <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" Copyright (c) 2015年 Pingplusplus. All rights reserved." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye"> |
| | | <rect key="frame" x="20" y="439" width="441" height="21"/> |
| | | <fontDescription key="fontDescription" type="system" pointSize="17"/> |
| | | <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="demoapp-swift" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX"> |
| | | <rect key="frame" x="20" y="140" width="441" height="43"/> |
| | | <fontDescription key="fontDescription" type="boldSystem" pointSize="36"/> |
| | | <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> |
| | | <nil key="highlightedColor"/> |
| | | </label> |
| | | </subviews> |
| | | <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> |
| | | <constraints> |
| | | <constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/> |
| | | <constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/> |
| | | <constraint firstAttribute="bottom" secondItem="8ie-xW-0ye" secondAttribute="bottom" constant="20" id="Kzo-t9-V3l"/> |
| | | <constraint firstItem="8ie-xW-0ye" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="MfP-vx-nX0"/> |
| | | <constraint firstAttribute="centerX" secondItem="8ie-xW-0ye" secondAttribute="centerX" id="ZEH-qu-HZ9"/> |
| | | <constraint firstItem="kId-c2-rCX" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="fvb-Df-36g"/> |
| | | </constraints> |
| | | <nil key="simulatedStatusBarMetrics"/> |
| | | <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> |
| | | <point key="canvasLocation" x="548" y="455"/> |
| | | </view> |
| | | </objects> |
| | | </document> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8" standalone="no"?> |
| | | <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="6211" systemVersion="14A298i" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r"> |
| | | <dependencies> |
| | | <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6204"/> |
| | | </dependencies> |
| | | <scenes> |
| | | <!--View Controller--> |
| | | <scene sceneID="tne-QT-ifu"> |
| | | <objects> |
| | | <viewController id="BYZ-38-t0r" customClass="ViewController" customModuleProvider="target" sceneMemberID="viewController"> |
| | | <layoutGuides> |
| | | <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/> |
| | | <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/> |
| | | </layoutGuides> |
| | | <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC"> |
| | | <rect key="frame" x="0.0" y="0.0" width="600" height="600"/> |
| | | <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> |
| | | <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> |
| | | </view> |
| | | </viewController> |
| | | <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/> |
| | | </objects> |
| | | </scene> |
| | | </scenes> |
| | | </document> |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "iphone", |
| | | "size" : "29x29", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "iphone", |
| | | "size" : "29x29", |
| | | "scale" : "3x" |
| | | }, |
| | | { |
| | | "idiom" : "iphone", |
| | | "size" : "40x40", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "iphone", |
| | | "size" : "40x40", |
| | | "scale" : "3x" |
| | | }, |
| | | { |
| | | "idiom" : "iphone", |
| | | "size" : "60x60", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "iphone", |
| | | "size" : "60x60", |
| | | "scale" : "3x" |
| | | }, |
| | | { |
| | | "idiom" : "ipad", |
| | | "size" : "29x29", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "ipad", |
| | | "size" : "29x29", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "ipad", |
| | | "size" : "40x40", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "ipad", |
| | | "size" : "40x40", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "ipad", |
| | | "size" : "76x76", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "ipad", |
| | | "size" : "76x76", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
| | | <plist version="1.0"> |
| | | <dict> |
| | | <key>CFBundleDevelopmentRegion</key> |
| | | <string>en</string> |
| | | <key>CFBundleExecutable</key> |
| | | <string>$(EXECUTABLE_NAME)</string> |
| | | <key>CFBundleIdentifier</key> |
| | | <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> |
| | | <key>CFBundleInfoDictionaryVersion</key> |
| | | <string>6.0</string> |
| | | <key>CFBundleName</key> |
| | | <string>$(PRODUCT_NAME)</string> |
| | | <key>CFBundlePackageType</key> |
| | | <string>APPL</string> |
| | | <key>CFBundleShortVersionString</key> |
| | | <string>1.0</string> |
| | | <key>CFBundleSignature</key> |
| | | <string>????</string> |
| | | <key>CFBundleURLTypes</key> |
| | | <array> |
| | | <dict> |
| | | <key>CFBundleTypeRole</key> |
| | | <string>Editor</string> |
| | | <key>CFBundleURLSchemes</key> |
| | | <array> |
| | | <string>YOUR-APP-URL-SCHEME</string> |
| | | </array> |
| | | </dict> |
| | | <dict> |
| | | <key>CFBundleTypeRole</key> |
| | | <string>Editor</string> |
| | | <key>CFBundleURLSchemes</key> |
| | | <array> |
| | | <string>demoappswift</string> |
| | | </array> |
| | | </dict> |
| | | </array> |
| | | <key>CFBundleVersion</key> |
| | | <string>1</string> |
| | | <key>LSApplicationQueriesSchemes</key> |
| | | <array> |
| | | <string>weixin</string> |
| | | <string>wechat</string> |
| | | <string>alipay</string> |
| | | </array> |
| | | <key>LSRequiresIPhoneOS</key> |
| | | <true/> |
| | | <key>NSAppTransportSecurity</key> |
| | | <dict> |
| | | <key>NSAllowsArbitraryLoads</key> |
| | | <true/> |
| | | </dict> |
| | | <key>UILaunchStoryboardName</key> |
| | | <string>LaunchScreen</string> |
| | | <key>UIMainStoryboardFile</key> |
| | | <string>Main</string> |
| | | <key>UIRequiredDeviceCapabilities</key> |
| | | <array> |
| | | <string>armv7</string> |
| | | </array> |
| | | <key>UISupportedInterfaceOrientations</key> |
| | | <array> |
| | | <string>UIInterfaceOrientationPortrait</string> |
| | | </array> |
| | | <key>UISupportedInterfaceOrientations~ipad</key> |
| | | <array> |
| | | <string>UIInterfaceOrientationPortrait</string> |
| | | <string>UIInterfaceOrientationPortraitUpsideDown</string> |
| | | <string>UIInterfaceOrientationLandscapeLeft</string> |
| | | <string>UIInterfaceOrientationLandscapeRight</string> |
| | | </array> |
| | | </dict> |
| | | </plist> |
New file |
| | |
| | | // |
| | | // ViewController.swift |
| | | // demoapp-swift |
| | | // |
| | | // Created by Afon on 15/4/30. |
| | | // Copyright (c) 2015年 Pingplusplus. All rights reserved. |
| | | // |
| | | |
| | | import UIKit |
| | | |
| | | let kBackendChargeURL = "http://218.244.151.190/demo/charge" // 你的服务端创建并返回 charge 的 URL 地址,此地址仅供测试用。 |
| | | // 以下参数的相关说明请查看 Objective-C 相关文件 |
| | | let kAppURLScheme = "demoappswift" // 这个是你定义的 URL Scheme,支付宝、微信支付和测试模式需要。 |
| | | |
| | | class ViewController: UIViewController { |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | | // Do any additional setup after loading the view, typically from a nib. |
| | | } |
| | | |
| | | override func didReceiveMemoryWarning() { |
| | | super.didReceiveMemoryWarning() |
| | | // Dispose of any resources that can be recreated. |
| | | } |
| | | |
| | | override func viewDidAppear(_ animated: Bool) { |
| | | |
| | | let postDict : AnyObject = NSDictionary(objects: ["alipay", "10"], forKeys: ["channel" as NSCopying, "amount" as NSCopying]) |
| | | var postData: NSData = NSData() |
| | | do { |
| | | try postData = JSONSerialization.data(withJSONObject: postDict, options: JSONSerialization.WritingOptions.prettyPrinted) as NSData |
| | | } catch { |
| | | print("Serialization error") |
| | | } |
| | | |
| | | let url = NSURL(string: kBackendChargeURL) |
| | | let session = URLSession.shared |
| | | let request = NSMutableURLRequest(url: url! as URL) |
| | | request.httpMethod = "POST" |
| | | request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type") |
| | | request.httpBody = postData as Data |
| | | |
| | | let sessionTask = session.dataTask(with: request as URLRequest) { (data, response, error) -> Void in |
| | | if data != nil { |
| | | let charge = NSString(data: data!, encoding: String.Encoding.utf8.rawValue) |
| | | print(charge! as String) |
| | | |
| | | Pingpp.createPayment(charge! as String as String as NSObject!, appURLScheme: kAppURLScheme) { (result, error) -> Void in |
| | | print(result) |
| | | if error != nil { |
| | | print(error?.code.rawValue) |
| | | print(error?.getMsg()) |
| | | } |
| | | } |
| | | |
| | | } else { |
| | | print("response data is nil") |
| | | } |
| | | } |
| | | sessionTask.resume() |
| | | } |
| | | } |
| | | |
New file |
| | |
| | | // |
| | | // Use this file to import your target's public headers that you would like to expose to Swift. |
| | | // |
| | | |
| | | #import <UIKit/UIKit.h> |
| | | #import "Pingpp.h" |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
| | | <plist version="1.0"> |
| | | <dict> |
| | | <key>CFBundleDevelopmentRegion</key> |
| | | <string>en</string> |
| | | <key>CFBundleExecutable</key> |
| | | <string>$(EXECUTABLE_NAME)</string> |
| | | <key>CFBundleIdentifier</key> |
| | | <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> |
| | | <key>CFBundleInfoDictionaryVersion</key> |
| | | <string>6.0</string> |
| | | <key>CFBundleName</key> |
| | | <string>$(PRODUCT_NAME)</string> |
| | | <key>CFBundlePackageType</key> |
| | | <string>BNDL</string> |
| | | <key>CFBundleShortVersionString</key> |
| | | <string>1.0</string> |
| | | <key>CFBundleSignature</key> |
| | | <string>????</string> |
| | | <key>CFBundleVersion</key> |
| | | <string>1</string> |
| | | </dict> |
| | | </plist> |
New file |
| | |
| | | // |
| | | // demoapp_swiftTests.swift |
| | | // demoapp-swiftTests |
| | | // |
| | | // Created by Afon on 15/4/30. |
| | | // Copyright (c) 2015年 Pingplusplus. All rights reserved. |
| | | // |
| | | |
| | | import UIKit |
| | | import XCTest |
| | | |
| | | class demoapp_swiftTests: XCTestCase { |
| | | |
| | | override func setUp() { |
| | | super.setUp() |
| | | // Put setup code here. This method is called before the invocation of each test method in the class. |
| | | } |
| | | |
| | | override func tearDown() { |
| | | // Put teardown code here. This method is called after the invocation of each test method in the class. |
| | | super.tearDown() |
| | | } |
| | | |
| | | func testExample() { |
| | | // This is an example of a functional test case. |
| | | XCTAssert(true, "Pass") |
| | | } |
| | | |
| | | func testPerformanceExample() { |
| | | // This is an example of a performance test case. |
| | | self.measureBlock() { |
| | | // Put the code you want to measure the time of here. |
| | | } |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | // !$*UTF8*$! |
| | | { |
| | | archiveVersion = 1; |
| | | classes = { |
| | | }; |
| | | objectVersion = 46; |
| | | objects = { |
| | | |
| | | /* Begin PBXBuildFile section */ |
| | | 003625991D9A4CB8004E6244 /* AlipaySDK.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 0036245A1D9A4CB7004E6244 /* AlipaySDK.bundle */; }; |
| | | 0036259A1D9A4CB8004E6244 /* AlipaySDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0036245B1D9A4CB7004E6244 /* AlipaySDK.framework */; }; |
| | | 0036259B1D9A4CB8004E6244 /* libpingpp+alipay.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0036245C1D9A4CB7004E6244 /* libpingpp+alipay.a */; }; |
| | | 0036259E1D9A4CB8004E6244 /* libpingpp+bfbWap.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 003624611D9A4CB7004E6244 /* libpingpp+bfbWap.a */; }; |
| | | 003626771D9A4CB8004E6244 /* libpingpp+qqwallet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 003625861D9A4CB8004E6244 /* libpingpp+qqwallet.a */; }; |
| | | 003626781D9A4CB8004E6244 /* libPaymentControl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 003625891D9A4CB8004E6244 /* libPaymentControl.a */; }; |
| | | 003626791D9A4CB8004E6244 /* libpingpp+up.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0036258A1D9A4CB8004E6244 /* libpingpp+up.a */; }; |
| | | 0036267B1D9A4CB8004E6244 /* libpingpp+network.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0036258F1D9A4CB8004E6244 /* libpingpp+network.a */; }; |
| | | 0036267C1D9A4CB8004E6244 /* libpingpp+webview.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 003625921D9A4CB8004E6244 /* libpingpp+webview.a */; }; |
| | | 0036267D1D9A4CB8004E6244 /* libpingppcore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 003625931D9A4CB8004E6244 /* libpingppcore.a */; }; |
| | | 0036267E1D9A4CB8004E6244 /* libpingpp+one.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 003625951D9A4CB8004E6244 /* libpingpp+one.a */; }; |
| | | 0036267F1D9A4CB8004E6244 /* Pingpp.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 003625971D9A4CB8004E6244 /* Pingpp.bundle */; }; |
| | | 003626821D9A5091004E6244 /* libpingpp+yeepay.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 003626811D9A5091004E6244 /* libpingpp+yeepay.a */; }; |
| | | 5F61B02119C81A4F0035CD99 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5F61B02019C81A4F0035CD99 /* Foundation.framework */; }; |
| | | 5F61B02519C81A500035CD99 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5F61B02419C81A500035CD99 /* UIKit.framework */; }; |
| | | 5FA5761F1A58F551000B36ED /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FA576111A58F551000B36ED /* AppDelegate.m */; }; |
| | | 5FA576211A58F551000B36ED /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5FA576141A58F551000B36ED /* Images.xcassets */; }; |
| | | 5FA576221A58F551000B36ED /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FA576151A58F551000B36ED /* main.m */; }; |
| | | 5FA576231A58F551000B36ED /* home.png in Resources */ = {isa = PBXBuildFile; fileRef = 5FA576171A58F551000B36ED /* home.png */; }; |
| | | 5FA576241A58F551000B36ED /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 5FA576191A58F551000B36ED /* InfoPlist.strings */; }; |
| | | 5FA576251A58F551000B36ED /* ViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5FA5761B1A58F551000B36ED /* ViewController_iPad.xib */; }; |
| | | 5FA576261A58F551000B36ED /* ViewController_iPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5FA5761C1A58F551000B36ED /* ViewController_iPhone.xib */; }; |
| | | 5FA576311A58FA7C000B36ED /* ViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5FA576301A58FA7C000B36ED /* ViewController.mm */; }; |
| | | /* End PBXBuildFile section */ |
| | | |
| | | /* Begin PBXFileReference section */ |
| | | 0036245A1D9A4CB7004E6244 /* AlipaySDK.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = AlipaySDK.bundle; sourceTree = "<group>"; }; |
| | | 0036245B1D9A4CB7004E6244 /* AlipaySDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AlipaySDK.framework; sourceTree = "<group>"; }; |
| | | 0036245C1D9A4CB7004E6244 /* libpingpp+alipay.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libpingpp+alipay.a"; sourceTree = "<group>"; }; |
| | | 003624611D9A4CB7004E6244 /* libpingpp+bfbWap.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libpingpp+bfbWap.a"; sourceTree = "<group>"; }; |
| | | 003625861D9A4CB8004E6244 /* libpingpp+qqwallet.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libpingpp+qqwallet.a"; sourceTree = "<group>"; }; |
| | | 003625891D9A4CB8004E6244 /* libPaymentControl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libPaymentControl.a; sourceTree = "<group>"; }; |
| | | 0036258A1D9A4CB8004E6244 /* libpingpp+up.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libpingpp+up.a"; sourceTree = "<group>"; }; |
| | | 0036258F1D9A4CB8004E6244 /* libpingpp+network.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libpingpp+network.a"; sourceTree = "<group>"; }; |
| | | 003625901D9A4CB8004E6244 /* PingppURLResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PingppURLResponse.h; sourceTree = "<group>"; }; |
| | | 003625921D9A4CB8004E6244 /* libpingpp+webview.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libpingpp+webview.a"; sourceTree = "<group>"; }; |
| | | 003625931D9A4CB8004E6244 /* libpingppcore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libpingppcore.a; sourceTree = "<group>"; }; |
| | | 003625951D9A4CB8004E6244 /* libpingpp+one.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libpingpp+one.a"; sourceTree = "<group>"; }; |
| | | 003625961D9A4CB8004E6244 /* Pingpp+One.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Pingpp+One.h"; sourceTree = "<group>"; }; |
| | | 003625971D9A4CB8004E6244 /* Pingpp.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Pingpp.bundle; sourceTree = "<group>"; }; |
| | | 003625981D9A4CB8004E6244 /* Pingpp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Pingpp.h; sourceTree = "<group>"; }; |
| | | 003626811D9A5091004E6244 /* libpingpp+yeepay.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libpingpp+yeepay.a"; sourceTree = "<group>"; }; |
| | | 5F5BBB2019D0189B009A9DCE /* en */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = en; path = en.lproj/home.png; sourceTree = "<group>"; }; |
| | | 5F61B01D19C81A4F0035CD99 /* demoapp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = demoapp.app; sourceTree = BUILT_PRODUCTS_DIR; }; |
| | | 5F61B02019C81A4F0035CD99 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; |
| | | 5F61B02419C81A500035CD99 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; |
| | | 5F61B05E19C81D390035CD99 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; }; |
| | | 5F61B05F19C81D390035CD99 /* ViewController_iPad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ViewController_iPad.xib; sourceTree = "<group>"; }; |
| | | 5F61B06019C81D390035CD99 /* ViewController_iPhone.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ViewController_iPhone.xib; sourceTree = "<group>"; }; |
| | | 5FA576101A58F551000B36ED /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; |
| | | 5FA576111A58F551000B36ED /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; |
| | | 5FA576121A58F551000B36ED /* demoapp-Info.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "demoapp-Info.pch"; sourceTree = "<group>"; }; |
| | | 5FA576131A58F551000B36ED /* demoapp-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "demoapp-Info.plist"; sourceTree = "<group>"; }; |
| | | 5FA576141A58F551000B36ED /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; }; |
| | | 5FA576151A58F551000B36ED /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; |
| | | 5FA576181A58F551000B36ED /* en */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = en; path = en.lproj/home.png; sourceTree = "<group>"; }; |
| | | 5FA5761A1A58F551000B36ED /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; }; |
| | | 5FA5761B1A58F551000B36ED /* ViewController_iPad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ViewController_iPad.xib; sourceTree = "<group>"; }; |
| | | 5FA5761C1A58F551000B36ED /* ViewController_iPhone.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ViewController_iPhone.xib; sourceTree = "<group>"; }; |
| | | 5FA5761D1A58F551000B36ED /* ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; }; |
| | | 5FA576301A58FA7C000B36ED /* ViewController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ViewController.mm; sourceTree = "<group>"; }; |
| | | /* End PBXFileReference section */ |
| | | |
| | | /* Begin PBXFrameworksBuildPhase section */ |
| | | 5F61B01A19C81A4F0035CD99 /* Frameworks */ = { |
| | | isa = PBXFrameworksBuildPhase; |
| | | buildActionMask = 2147483647; |
| | | files = ( |
| | | 0036267B1D9A4CB8004E6244 /* libpingpp+network.a in Frameworks */, |
| | | 5F61B02519C81A500035CD99 /* UIKit.framework in Frameworks */, |
| | | 0036259E1D9A4CB8004E6244 /* libpingpp+bfbWap.a in Frameworks */, |
| | | 003626771D9A4CB8004E6244 /* libpingpp+qqwallet.a in Frameworks */, |
| | | 0036267E1D9A4CB8004E6244 /* libpingpp+one.a in Frameworks */, |
| | | 003626781D9A4CB8004E6244 /* libPaymentControl.a in Frameworks */, |
| | | 0036267D1D9A4CB8004E6244 /* libpingppcore.a in Frameworks */, |
| | | 0036267C1D9A4CB8004E6244 /* libpingpp+webview.a in Frameworks */, |
| | | 003626791D9A4CB8004E6244 /* libpingpp+up.a in Frameworks */, |
| | | 003626821D9A5091004E6244 /* libpingpp+yeepay.a in Frameworks */, |
| | | 0036259B1D9A4CB8004E6244 /* libpingpp+alipay.a in Frameworks */, |
| | | 5F61B02119C81A4F0035CD99 /* Foundation.framework in Frameworks */, |
| | | 0036259A1D9A4CB8004E6244 /* AlipaySDK.framework in Frameworks */, |
| | | ); |
| | | runOnlyForDeploymentPostprocessing = 0; |
| | | }; |
| | | /* End PBXFrameworksBuildPhase section */ |
| | | |
| | | /* Begin PBXGroup section */ |
| | | 003624571D9A4CB7004E6244 /* Pingpp */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 003624581D9A4CB7004E6244 /* Channels */, |
| | | 0036258D1D9A4CB8004E6244 /* Dependencies */, |
| | | 003625931D9A4CB8004E6244 /* libpingppcore.a */, |
| | | 003625941D9A4CB8004E6244 /* One */, |
| | | 003625971D9A4CB8004E6244 /* Pingpp.bundle */, |
| | | 003625981D9A4CB8004E6244 /* Pingpp.h */, |
| | | ); |
| | | name = Pingpp; |
| | | path = ../../lib; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 003624581D9A4CB7004E6244 /* Channels */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 003624591D9A4CB7004E6244 /* Alipay */, |
| | | 003624601D9A4CB7004E6244 /* BfbWap */, |
| | | 003625851D9A4CB8004E6244 /* QQWallet */, |
| | | 003625881D9A4CB8004E6244 /* UnionPay */, |
| | | 003626801D9A5091004E6244 /* Yeepay */, |
| | | ); |
| | | path = Channels; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 003624591D9A4CB7004E6244 /* Alipay */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 0036245A1D9A4CB7004E6244 /* AlipaySDK.bundle */, |
| | | 0036245B1D9A4CB7004E6244 /* AlipaySDK.framework */, |
| | | 0036245C1D9A4CB7004E6244 /* libpingpp+alipay.a */, |
| | | ); |
| | | path = Alipay; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 003624601D9A4CB7004E6244 /* BfbWap */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 003624611D9A4CB7004E6244 /* libpingpp+bfbWap.a */, |
| | | ); |
| | | path = BfbWap; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 003625851D9A4CB8004E6244 /* QQWallet */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 003625861D9A4CB8004E6244 /* libpingpp+qqwallet.a */, |
| | | ); |
| | | path = QQWallet; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 003625881D9A4CB8004E6244 /* UnionPay */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 003625891D9A4CB8004E6244 /* libPaymentControl.a */, |
| | | 0036258A1D9A4CB8004E6244 /* libpingpp+up.a */, |
| | | ); |
| | | path = UnionPay; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 0036258D1D9A4CB8004E6244 /* Dependencies */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 0036258E1D9A4CB8004E6244 /* Network */, |
| | | 003625911D9A4CB8004E6244 /* WebView */, |
| | | ); |
| | | path = Dependencies; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 0036258E1D9A4CB8004E6244 /* Network */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 0036258F1D9A4CB8004E6244 /* libpingpp+network.a */, |
| | | 003625901D9A4CB8004E6244 /* PingppURLResponse.h */, |
| | | ); |
| | | path = Network; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 003625911D9A4CB8004E6244 /* WebView */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 003625921D9A4CB8004E6244 /* libpingpp+webview.a */, |
| | | ); |
| | | path = WebView; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 003625941D9A4CB8004E6244 /* One */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 003625951D9A4CB8004E6244 /* libpingpp+one.a */, |
| | | 003625961D9A4CB8004E6244 /* Pingpp+One.h */, |
| | | ); |
| | | path = One; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 003626801D9A5091004E6244 /* Yeepay */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 003626811D9A5091004E6244 /* libpingpp+yeepay.a */, |
| | | ); |
| | | path = Yeepay; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 5F61B01419C81A4F0035CD99 = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 5FA5760F1A58F551000B36ED /* demoapp */, |
| | | 5F61B01F19C81A4F0035CD99 /* Frameworks */, |
| | | 5F61B05C19C81D390035CD99 /* Resources */, |
| | | 5F61B01E19C81A4F0035CD99 /* Products */, |
| | | ); |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 5F61B01E19C81A4F0035CD99 /* Products */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 5F61B01D19C81A4F0035CD99 /* demoapp.app */, |
| | | ); |
| | | name = Products; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 5F61B01F19C81A4F0035CD99 /* Frameworks */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 5F61B02019C81A4F0035CD99 /* Foundation.framework */, |
| | | 5F61B02419C81A500035CD99 /* UIKit.framework */, |
| | | ); |
| | | name = Frameworks; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 5F61B05C19C81D390035CD99 /* Resources */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 5F61B05D19C81D390035CD99 /* InfoPlist.strings */, |
| | | 5F61B05F19C81D390035CD99 /* ViewController_iPad.xib */, |
| | | 5F61B06019C81D390035CD99 /* ViewController_iPhone.xib */, |
| | | 5F5BBB1F19D0189B009A9DCE /* home.png */, |
| | | ); |
| | | name = Resources; |
| | | path = demoapp/Resources; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 5FA5760F1A58F551000B36ED /* demoapp */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 003624571D9A4CB7004E6244 /* Pingpp */, |
| | | 5FA576101A58F551000B36ED /* AppDelegate.h */, |
| | | 5FA576111A58F551000B36ED /* AppDelegate.m */, |
| | | 5FA5761D1A58F551000B36ED /* ViewController.h */, |
| | | 5FA576301A58FA7C000B36ED /* ViewController.mm */, |
| | | 5FA576121A58F551000B36ED /* demoapp-Info.pch */, |
| | | 5FA576131A58F551000B36ED /* demoapp-Info.plist */, |
| | | 5FA576141A58F551000B36ED /* Images.xcassets */, |
| | | 5FA576151A58F551000B36ED /* main.m */, |
| | | 5FA576161A58F551000B36ED /* Resources */, |
| | | ); |
| | | path = demoapp; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 5FA576161A58F551000B36ED /* Resources */ = { |
| | | isa = PBXGroup; |
| | | children = ( |
| | | 5FA576171A58F551000B36ED /* home.png */, |
| | | 5FA576191A58F551000B36ED /* InfoPlist.strings */, |
| | | 5FA5761B1A58F551000B36ED /* ViewController_iPad.xib */, |
| | | 5FA5761C1A58F551000B36ED /* ViewController_iPhone.xib */, |
| | | ); |
| | | path = Resources; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | /* End PBXGroup section */ |
| | | |
| | | /* Begin PBXNativeTarget section */ |
| | | 5F61B01C19C81A4F0035CD99 /* demoapp */ = { |
| | | isa = PBXNativeTarget; |
| | | buildConfigurationList = 5F61B04919C81A500035CD99 /* Build configuration list for PBXNativeTarget "demoapp" */; |
| | | buildPhases = ( |
| | | 5F61B01919C81A4F0035CD99 /* Sources */, |
| | | 5F61B01A19C81A4F0035CD99 /* Frameworks */, |
| | | 5F61B01B19C81A4F0035CD99 /* Resources */, |
| | | ); |
| | | buildRules = ( |
| | | ); |
| | | dependencies = ( |
| | | ); |
| | | name = demoapp; |
| | | productName = demoapp; |
| | | productReference = 5F61B01D19C81A4F0035CD99 /* demoapp.app */; |
| | | productType = "com.apple.product-type.application"; |
| | | }; |
| | | /* End PBXNativeTarget section */ |
| | | |
| | | /* Begin PBXProject section */ |
| | | 5F61B01519C81A4F0035CD99 /* Project object */ = { |
| | | isa = PBXProject; |
| | | attributes = { |
| | | LastUpgradeCheck = 0810; |
| | | ORGANIZATIONNAME = pingplusplus; |
| | | TargetAttributes = { |
| | | 5F61B01C19C81A4F0035CD99 = { |
| | | DevelopmentTeam = 77HWE3KHM5; |
| | | }; |
| | | }; |
| | | }; |
| | | buildConfigurationList = 5F61B01819C81A4F0035CD99 /* Build configuration list for PBXProject "demoapp" */; |
| | | compatibilityVersion = "Xcode 3.2"; |
| | | developmentRegion = English; |
| | | hasScannedForEncodings = 0; |
| | | knownRegions = ( |
| | | en, |
| | | ); |
| | | mainGroup = 5F61B01419C81A4F0035CD99; |
| | | productRefGroup = 5F61B01E19C81A4F0035CD99 /* Products */; |
| | | projectDirPath = ""; |
| | | projectRoot = ""; |
| | | targets = ( |
| | | 5F61B01C19C81A4F0035CD99 /* demoapp */, |
| | | ); |
| | | }; |
| | | /* End PBXProject section */ |
| | | |
| | | /* Begin PBXResourcesBuildPhase section */ |
| | | 5F61B01B19C81A4F0035CD99 /* Resources */ = { |
| | | isa = PBXResourcesBuildPhase; |
| | | buildActionMask = 2147483647; |
| | | files = ( |
| | | 003625991D9A4CB8004E6244 /* AlipaySDK.bundle in Resources */, |
| | | 5FA576251A58F551000B36ED /* ViewController_iPad.xib in Resources */, |
| | | 5FA576211A58F551000B36ED /* Images.xcassets in Resources */, |
| | | 5FA576261A58F551000B36ED /* ViewController_iPhone.xib in Resources */, |
| | | 5FA576231A58F551000B36ED /* home.png in Resources */, |
| | | 5FA576241A58F551000B36ED /* InfoPlist.strings in Resources */, |
| | | 0036267F1D9A4CB8004E6244 /* Pingpp.bundle in Resources */, |
| | | ); |
| | | runOnlyForDeploymentPostprocessing = 0; |
| | | }; |
| | | /* End PBXResourcesBuildPhase section */ |
| | | |
| | | /* Begin PBXSourcesBuildPhase section */ |
| | | 5F61B01919C81A4F0035CD99 /* Sources */ = { |
| | | isa = PBXSourcesBuildPhase; |
| | | buildActionMask = 2147483647; |
| | | files = ( |
| | | 5FA576221A58F551000B36ED /* main.m in Sources */, |
| | | 5FA5761F1A58F551000B36ED /* AppDelegate.m in Sources */, |
| | | 5FA576311A58FA7C000B36ED /* ViewController.mm in Sources */, |
| | | ); |
| | | runOnlyForDeploymentPostprocessing = 0; |
| | | }; |
| | | /* End PBXSourcesBuildPhase section */ |
| | | |
| | | /* Begin PBXVariantGroup section */ |
| | | 5F5BBB1F19D0189B009A9DCE /* home.png */ = { |
| | | isa = PBXVariantGroup; |
| | | children = ( |
| | | 5F5BBB2019D0189B009A9DCE /* en */, |
| | | ); |
| | | name = home.png; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 5F61B05D19C81D390035CD99 /* InfoPlist.strings */ = { |
| | | isa = PBXVariantGroup; |
| | | children = ( |
| | | 5F61B05E19C81D390035CD99 /* en */, |
| | | ); |
| | | name = InfoPlist.strings; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 5FA576171A58F551000B36ED /* home.png */ = { |
| | | isa = PBXVariantGroup; |
| | | children = ( |
| | | 5FA576181A58F551000B36ED /* en */, |
| | | ); |
| | | name = home.png; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | 5FA576191A58F551000B36ED /* InfoPlist.strings */ = { |
| | | isa = PBXVariantGroup; |
| | | children = ( |
| | | 5FA5761A1A58F551000B36ED /* en */, |
| | | ); |
| | | name = InfoPlist.strings; |
| | | sourceTree = "<group>"; |
| | | }; |
| | | /* End PBXVariantGroup section */ |
| | | |
| | | /* Begin XCBuildConfiguration section */ |
| | | 5F61B04719C81A500035CD99 /* Debug */ = { |
| | | isa = XCBuildConfiguration; |
| | | buildSettings = { |
| | | ALWAYS_SEARCH_USER_PATHS = NO; |
| | | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; |
| | | CLANG_ENABLE_MODULES = YES; |
| | | CLANG_ENABLE_OBJC_ARC = NO; |
| | | CLANG_WARN_BOOL_CONVERSION = YES; |
| | | CLANG_WARN_CONSTANT_CONVERSION = YES; |
| | | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; |
| | | CLANG_WARN_EMPTY_BODY = YES; |
| | | CLANG_WARN_ENUM_CONVERSION = YES; |
| | | CLANG_WARN_INFINITE_RECURSION = YES; |
| | | CLANG_WARN_INT_CONVERSION = YES; |
| | | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
| | | CLANG_WARN_SUSPICIOUS_MOVE = YES; |
| | | CLANG_WARN_UNREACHABLE_CODE = YES; |
| | | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; |
| | | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; |
| | | COPY_PHASE_STRIP = NO; |
| | | ENABLE_STRICT_OBJC_MSGSEND = YES; |
| | | ENABLE_TESTABILITY = YES; |
| | | GCC_C_LANGUAGE_STANDARD = gnu99; |
| | | GCC_DYNAMIC_NO_PIC = NO; |
| | | GCC_NO_COMMON_BLOCKS = YES; |
| | | GCC_OPTIMIZATION_LEVEL = 0; |
| | | GCC_PREPROCESSOR_DEFINITIONS = ( |
| | | "DEBUG=1", |
| | | "$(inherited)", |
| | | ); |
| | | GCC_SYMBOLS_PRIVATE_EXTERN = NO; |
| | | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; |
| | | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; |
| | | GCC_WARN_UNDECLARED_SELECTOR = YES; |
| | | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
| | | GCC_WARN_UNUSED_FUNCTION = YES; |
| | | GCC_WARN_UNUSED_VARIABLE = YES; |
| | | IPHONEOS_DEPLOYMENT_TARGET = 8.0; |
| | | ONLY_ACTIVE_ARCH = YES; |
| | | SDKROOT = iphoneos; |
| | | TARGETED_DEVICE_FAMILY = "1,2"; |
| | | }; |
| | | name = Debug; |
| | | }; |
| | | 5F61B04819C81A500035CD99 /* Release */ = { |
| | | isa = XCBuildConfiguration; |
| | | buildSettings = { |
| | | ALWAYS_SEARCH_USER_PATHS = NO; |
| | | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; |
| | | CLANG_ENABLE_MODULES = YES; |
| | | CLANG_ENABLE_OBJC_ARC = NO; |
| | | CLANG_WARN_BOOL_CONVERSION = YES; |
| | | CLANG_WARN_CONSTANT_CONVERSION = YES; |
| | | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; |
| | | CLANG_WARN_EMPTY_BODY = YES; |
| | | CLANG_WARN_ENUM_CONVERSION = YES; |
| | | CLANG_WARN_INFINITE_RECURSION = YES; |
| | | CLANG_WARN_INT_CONVERSION = YES; |
| | | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; |
| | | CLANG_WARN_SUSPICIOUS_MOVE = YES; |
| | | CLANG_WARN_UNREACHABLE_CODE = YES; |
| | | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; |
| | | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; |
| | | COPY_PHASE_STRIP = YES; |
| | | ENABLE_NS_ASSERTIONS = NO; |
| | | ENABLE_STRICT_OBJC_MSGSEND = YES; |
| | | GCC_C_LANGUAGE_STANDARD = gnu99; |
| | | GCC_NO_COMMON_BLOCKS = YES; |
| | | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; |
| | | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; |
| | | GCC_WARN_UNDECLARED_SELECTOR = YES; |
| | | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; |
| | | GCC_WARN_UNUSED_FUNCTION = YES; |
| | | GCC_WARN_UNUSED_VARIABLE = YES; |
| | | IPHONEOS_DEPLOYMENT_TARGET = 8.0; |
| | | SDKROOT = iphoneos; |
| | | TARGETED_DEVICE_FAMILY = "1,2"; |
| | | VALIDATE_PRODUCT = YES; |
| | | }; |
| | | name = Release; |
| | | }; |
| | | 5F61B04A19C81A500035CD99 /* Debug */ = { |
| | | isa = XCBuildConfiguration; |
| | | buildSettings = { |
| | | ALWAYS_SEARCH_USER_PATHS = NO; |
| | | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
| | | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; |
| | | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; |
| | | CLANG_CXX_LIBRARY = "libc++"; |
| | | CLANG_ENABLE_OBJC_ARC = YES; |
| | | CODE_SIGN_IDENTITY = "iPhone Developer"; |
| | | DEVELOPMENT_TEAM = 77HWE3KHM5; |
| | | ENABLE_BITCODE = NO; |
| | | FRAMEWORK_SEARCH_PATHS = ( |
| | | "$(inherited)", |
| | | "$(PROJECT_DIR)/../lib/Channels/Alipay", |
| | | ); |
| | | GCC_PRECOMPILE_PREFIX_HEADER = YES; |
| | | GCC_PREFIX_HEADER = "demoapp/demoapp-Info.pch"; |
| | | INFOPLIST_FILE = "$(SRCROOT)/demoapp/demoapp-Info.plist"; |
| | | IPHONEOS_DEPLOYMENT_TARGET = 8.0; |
| | | LIBRARY_SEARCH_PATHS = ( |
| | | "$(inherited)", |
| | | "$(PROJECT_DIR)/../lib", |
| | | "$(PROJECT_DIR)/../lib/Channels/Alipay", |
| | | "$(PROJECT_DIR)/../lib/Channels/UnionPay", |
| | | "$(PROJECT_DIR)/../lib/Channels/Yeepay", |
| | | "$(PROJECT_DIR)/../lib/Channels/BfbWap", |
| | | "$(PROJECT_DIR)/../lib/One", |
| | | "$(PROJECT_DIR)/../lib/Dependencies/Network", |
| | | "$(PROJECT_DIR)/../lib/Channels/QQWallet", |
| | | "$(PROJECT_DIR)/../lib/Dependencies/Webview", |
| | | ); |
| | | OTHER_LDFLAGS = ( |
| | | "$(inherited)", |
| | | "-ObjC", |
| | | "-l\"c++\"", |
| | | "-l\"sqlite3\"", |
| | | "-l\"pingpp+yeepay\"", |
| | | "-l\"stdc++\"", |
| | | "-l\"z\"", |
| | | "-framework", |
| | | "\"AddressBook\"", |
| | | "-framework", |
| | | "\"AddressBookUI\"", |
| | | "-framework", |
| | | "\"AlipaySDK\"", |
| | | "-framework", |
| | | "\"AudioToolbox\"", |
| | | "-framework", |
| | | "\"CFNetwork\"", |
| | | "-framework", |
| | | "\"CoreAudio\"", |
| | | "-framework", |
| | | "\"CoreGraphics\"", |
| | | "-framework", |
| | | "\"CoreTelephony\"", |
| | | "-framework", |
| | | "\"ImageIO\"", |
| | | "-framework", |
| | | "\"MapKit\"", |
| | | "-framework", |
| | | "\"MessageUI\"", |
| | | "-framework", |
| | | "\"MobileCoreServices\"", |
| | | "-framework", |
| | | "\"QuartzCore\"", |
| | | "-framework", |
| | | "\"Security\"", |
| | | "-framework", |
| | | "\"SystemConfiguration\"", |
| | | "-framework", |
| | | "\"CoreMotion\"", |
| | | ); |
| | | PRODUCT_BUNDLE_IDENTIFIER = com.pingplusplus.demoapp; |
| | | PRODUCT_NAME = demoapp; |
| | | WRAPPER_EXTENSION = app; |
| | | }; |
| | | name = Debug; |
| | | }; |
| | | 5F61B04B19C81A500035CD99 /* Release */ = { |
| | | isa = XCBuildConfiguration; |
| | | buildSettings = { |
| | | ALWAYS_SEARCH_USER_PATHS = NO; |
| | | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; |
| | | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; |
| | | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; |
| | | CLANG_CXX_LIBRARY = "libc++"; |
| | | CLANG_ENABLE_OBJC_ARC = YES; |
| | | CODE_SIGN_IDENTITY = "iPhone Developer"; |
| | | DEVELOPMENT_TEAM = 77HWE3KHM5; |
| | | ENABLE_BITCODE = NO; |
| | | FRAMEWORK_SEARCH_PATHS = ( |
| | | "$(inherited)", |
| | | "$(PROJECT_DIR)/../lib/Channels/Alipay", |
| | | ); |
| | | GCC_PRECOMPILE_PREFIX_HEADER = YES; |
| | | GCC_PREFIX_HEADER = "demoapp/demoapp-Info.pch"; |
| | | INFOPLIST_FILE = "$(SRCROOT)/demoapp/demoapp-Info.plist"; |
| | | IPHONEOS_DEPLOYMENT_TARGET = 8.0; |
| | | LIBRARY_SEARCH_PATHS = ( |
| | | "$(inherited)", |
| | | "$(PROJECT_DIR)/../lib", |
| | | "$(PROJECT_DIR)/../lib/Channels/Alipay", |
| | | "$(PROJECT_DIR)/../lib/Channels/UnionPay", |
| | | "$(PROJECT_DIR)/../lib/Channels/Yeepay", |
| | | "$(PROJECT_DIR)/../lib/Channels/BfbWap", |
| | | "$(PROJECT_DIR)/../lib/One", |
| | | "$(PROJECT_DIR)/../lib/Dependencies/Network", |
| | | "$(PROJECT_DIR)/../lib/Channels/QQWallet", |
| | | "$(PROJECT_DIR)/../lib/Dependencies/Webview", |
| | | ); |
| | | OTHER_LDFLAGS = ( |
| | | "$(inherited)", |
| | | "-ObjC", |
| | | "-l\"c++\"", |
| | | "-l\"sqlite3\"", |
| | | "-l\"pingpp+yeepay\"", |
| | | "-l\"stdc++\"", |
| | | "-l\"z\"", |
| | | "-framework", |
| | | "\"AddressBook\"", |
| | | "-framework", |
| | | "\"AddressBookUI\"", |
| | | "-framework", |
| | | "\"AlipaySDK\"", |
| | | "-framework", |
| | | "\"AudioToolbox\"", |
| | | "-framework", |
| | | "\"CFNetwork\"", |
| | | "-framework", |
| | | "\"CoreAudio\"", |
| | | "-framework", |
| | | "\"CoreGraphics\"", |
| | | "-framework", |
| | | "\"CoreTelephony\"", |
| | | "-framework", |
| | | "\"ImageIO\"", |
| | | "-framework", |
| | | "\"MapKit\"", |
| | | "-framework", |
| | | "\"MessageUI\"", |
| | | "-framework", |
| | | "\"MobileCoreServices\"", |
| | | "-framework", |
| | | "\"QuartzCore\"", |
| | | "-framework", |
| | | "\"Security\"", |
| | | "-framework", |
| | | "\"SystemConfiguration\"", |
| | | "-framework", |
| | | "\"CoreMotion\"", |
| | | ); |
| | | PRODUCT_BUNDLE_IDENTIFIER = com.pingplusplus.demoapp; |
| | | PRODUCT_NAME = demoapp; |
| | | WRAPPER_EXTENSION = app; |
| | | }; |
| | | name = Release; |
| | | }; |
| | | /* End XCBuildConfiguration section */ |
| | | |
| | | /* Begin XCConfigurationList section */ |
| | | 5F61B01819C81A4F0035CD99 /* Build configuration list for PBXProject "demoapp" */ = { |
| | | isa = XCConfigurationList; |
| | | buildConfigurations = ( |
| | | 5F61B04719C81A500035CD99 /* Debug */, |
| | | 5F61B04819C81A500035CD99 /* Release */, |
| | | ); |
| | | defaultConfigurationIsVisible = 0; |
| | | defaultConfigurationName = Release; |
| | | }; |
| | | 5F61B04919C81A500035CD99 /* Build configuration list for PBXNativeTarget "demoapp" */ = { |
| | | isa = XCConfigurationList; |
| | | buildConfigurations = ( |
| | | 5F61B04A19C81A500035CD99 /* Debug */, |
| | | 5F61B04B19C81A500035CD99 /* Release */, |
| | | ); |
| | | defaultConfigurationIsVisible = 0; |
| | | defaultConfigurationName = Release; |
| | | }; |
| | | /* End XCConfigurationList section */ |
| | | }; |
| | | rootObject = 5F61B01519C81A4F0035CD99 /* Project object */; |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <Workspace |
| | | version = "1.0"> |
| | | <FileRef |
| | | location = "self:demoapp.xcodeproj"> |
| | | </FileRef> |
| | | </Workspace> |
New file |
| | |
| | | // |
| | | // AppDelegate.h |
| | | // AppDelegate |
| | | // |
| | | // Created by Jacky Hu on 07/14/14. |
| | | // |
| | | |
| | | #import <UIKit/UIKit.h> |
| | | |
| | | @class ViewController; |
| | | |
| | | @interface AppDelegate : UIResponder <UIApplicationDelegate> |
| | | |
| | | @property (strong, nonatomic) UIWindow *window; |
| | | |
| | | @property (strong, nonatomic) UINavigationController *viewController; |
| | | |
| | | @end |
New file |
| | |
| | | // |
| | | // AppDelegate.m |
| | | // AppDelegate |
| | | // |
| | | // Created by Jacky Hu on 07/14/14. |
| | | // |
| | | |
| | | #import "AppDelegate.h" |
| | | #import "Pingpp.h" |
| | | #import "ViewController.h" |
| | | |
| | | @implementation AppDelegate |
| | | |
| | | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { |
| | | self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; |
| | | // Override point for customization after application launch. |
| | | |
| | | ViewController* root = [[ViewController alloc] init]; |
| | | UINavigationController* nav = [[UINavigationController alloc] initWithRootViewController:root]; |
| | | |
| | | self.viewController = nav; |
| | | self.window.rootViewController = self.viewController; |
| | | [self.window makeKeyAndVisible]; |
| | | |
| | | [Pingpp setDebugMode:YES]; |
| | | return YES; |
| | | } |
| | | |
| | | - (void)applicationWillResignActive:(UIApplication *)application { |
| | | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. |
| | | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. |
| | | } |
| | | |
| | | - (void)applicationDidEnterBackground:(UIApplication *)application { |
| | | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. |
| | | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. |
| | | } |
| | | |
| | | - (void)applicationWillEnterForeground:(UIApplication *)application { |
| | | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. |
| | | } |
| | | |
| | | - (void)applicationDidBecomeActive:(UIApplication *)application { |
| | | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. |
| | | } |
| | | |
| | | - (void)applicationWillTerminate:(UIApplication *)application { |
| | | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. |
| | | } |
| | | |
| | | #warning \ |
| | | 为了能正确获得结果回调请在工程 AppDelegate 文件中调用 `[Pingpp handleOpenURL:url withCompletion:nil]`。\ |
| | | 如果该方法的第二个参数传 nil,请在在 `createPayment` 方法的 `Completion` 中处理回调结果。否则,在这里处理结果。\ |
| | | 如果你使用了微信分享、登录等一些看起来在这里“冲突”的模块,你可以先判断 url 的 host 来决定调用哪一方的方法。\ |
| | | 也可以先调用 Ping++ 的方法,如果 return 的值为 false,表示这个 url 不是支付相关的,你再调用模块的方法。 |
| | | // iOS 8 及以下请用这个 |
| | | - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { |
| | | return [Pingpp handleOpenURL:url withCompletion:nil]; |
| | | } |
| | | |
| | | // iOS 9 以上请用这个 |
| | | - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options { |
| | | return [Pingpp handleOpenURL:url withCompletion:nil]; |
| | | } |
| | | |
| | | @end |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "iphone", |
| | | "size" : "20x20", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "iphone", |
| | | "size" : "20x20", |
| | | "scale" : "3x" |
| | | }, |
| | | { |
| | | "idiom" : "iphone", |
| | | "size" : "29x29", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "iphone", |
| | | "size" : "29x29", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "iphone", |
| | | "size" : "29x29", |
| | | "scale" : "3x" |
| | | }, |
| | | { |
| | | "idiom" : "iphone", |
| | | "size" : "40x40", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "iphone", |
| | | "size" : "40x40", |
| | | "scale" : "3x" |
| | | }, |
| | | { |
| | | "idiom" : "iphone", |
| | | "size" : "57x57", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "iphone", |
| | | "size" : "57x57", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "iphone", |
| | | "size" : "60x60", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "iphone", |
| | | "size" : "60x60", |
| | | "scale" : "3x" |
| | | }, |
| | | { |
| | | "idiom" : "ipad", |
| | | "size" : "20x20", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "ipad", |
| | | "size" : "20x20", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "ipad", |
| | | "size" : "29x29", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "ipad", |
| | | "size" : "29x29", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "ipad", |
| | | "size" : "40x40", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "ipad", |
| | | "size" : "40x40", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "ipad", |
| | | "size" : "50x50", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "ipad", |
| | | "size" : "50x50", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "ipad", |
| | | "size" : "72x72", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "ipad", |
| | | "size" : "72x72", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "ipad", |
| | | "size" : "76x76", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "ipad", |
| | | "size" : "76x76", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "ipad", |
| | | "size" : "83.5x83.5", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "extent" : "full-screen", |
| | | "idiom" : "iphone", |
| | | "subtype" : "736h", |
| | | "filename" : "launch-5.5.png", |
| | | "minimum-system-version" : "8.0", |
| | | "orientation" : "portrait", |
| | | "scale" : "3x" |
| | | }, |
| | | { |
| | | "orientation" : "landscape", |
| | | "idiom" : "iphone", |
| | | "extent" : "full-screen", |
| | | "minimum-system-version" : "8.0", |
| | | "subtype" : "736h", |
| | | "scale" : "3x" |
| | | }, |
| | | { |
| | | "extent" : "full-screen", |
| | | "idiom" : "iphone", |
| | | "subtype" : "667h", |
| | | "filename" : "launch-4.7.png", |
| | | "minimum-system-version" : "8.0", |
| | | "orientation" : "portrait", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "orientation" : "portrait", |
| | | "idiom" : "iphone", |
| | | "filename" : "launch-3.5.png", |
| | | "extent" : "full-screen", |
| | | "minimum-system-version" : "7.0", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "extent" : "full-screen", |
| | | "idiom" : "iphone", |
| | | "subtype" : "retina4", |
| | | "filename" : "launch-4.0.png", |
| | | "minimum-system-version" : "7.0", |
| | | "orientation" : "portrait", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "orientation" : "portrait", |
| | | "idiom" : "ipad", |
| | | "extent" : "full-screen", |
| | | "minimum-system-version" : "7.0", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "orientation" : "landscape", |
| | | "idiom" : "ipad", |
| | | "extent" : "full-screen", |
| | | "minimum-system-version" : "7.0", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "orientation" : "portrait", |
| | | "idiom" : "ipad", |
| | | "extent" : "full-screen", |
| | | "minimum-system-version" : "7.0", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "orientation" : "landscape", |
| | | "idiom" : "ipad", |
| | | "extent" : "full-screen", |
| | | "minimum-system-version" : "7.0", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "orientation" : "portrait", |
| | | "idiom" : "iphone", |
| | | "extent" : "full-screen", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "orientation" : "portrait", |
| | | "idiom" : "iphone", |
| | | "extent" : "full-screen", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "orientation" : "portrait", |
| | | "idiom" : "iphone", |
| | | "extent" : "full-screen", |
| | | "subtype" : "retina4", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "orientation" : "portrait", |
| | | "idiom" : "ipad", |
| | | "extent" : "to-status-bar", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "orientation" : "portrait", |
| | | "idiom" : "ipad", |
| | | "extent" : "full-screen", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "orientation" : "landscape", |
| | | "idiom" : "ipad", |
| | | "extent" : "to-status-bar", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "orientation" : "landscape", |
| | | "idiom" : "ipad", |
| | | "extent" : "full-screen", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "orientation" : "portrait", |
| | | "idiom" : "ipad", |
| | | "extent" : "to-status-bar", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "orientation" : "portrait", |
| | | "idiom" : "ipad", |
| | | "extent" : "full-screen", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "orientation" : "landscape", |
| | | "idiom" : "ipad", |
| | | "extent" : "to-status-bar", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "orientation" : "landscape", |
| | | "idiom" : "ipad", |
| | | "extent" : "full-screen", |
| | | "scale" : "2x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?>
|
| | | <archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="8.00">
|
| | | <data>
|
| | | <int key="IBDocument.SystemTarget">1536</int>
|
| | | <string key="IBDocument.SystemVersion">12A206j</string>
|
| | | <string key="IBDocument.InterfaceBuilderVersion">2519</string>
|
| | | <string key="IBDocument.AppKitVersion">1172.1</string>
|
| | | <string key="IBDocument.HIToolboxVersion">613.00</string>
|
| | | <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
| | | <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
| | | <string key="NS.object.0">1856</string>
|
| | | </object>
|
| | | <array key="IBDocument.IntegratedClassDependencies">
|
| | | <string>IBProxyObject</string>
|
| | | <string>IBUIView</string>
|
| | | </array>
|
| | | <array key="IBDocument.PluginDependencies">
|
| | | <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
| | | </array>
|
| | | <object class="NSMutableDictionary" key="IBDocument.Metadata">
|
| | | <string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
| | | <integer value="1" key="NS.object.0"/>
|
| | | </object>
|
| | | <array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
| | | <object class="IBProxyObject" id="841351856">
|
| | | <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
| | | <string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
| | | </object>
|
| | | <object class="IBProxyObject" id="606714003">
|
| | | <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
| | | <string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
| | | </object>
|
| | | <object class="IBUIView" id="766721923">
|
| | | <reference key="NSNextResponder"/>
|
| | | <int key="NSvFlags">274</int>
|
| | | <string key="NSFrame">{{0, 20}, {768, 1004}}</string>
|
| | | <reference key="NSSuperview"/>
|
| | | <reference key="NSWindow"/>
|
| | | <object class="NSColor" key="IBUIBackgroundColor">
|
| | | <int key="NSColorSpace">3</int>
|
| | | <bytes key="NSWhite">MQA</bytes>
|
| | | <object class="NSColorSpace" key="NSCustomColorSpace">
|
| | | <int key="NSID">2</int>
|
| | | </object>
|
| | | </object>
|
| | | <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics">
|
| | | <int key="IBUIStatusBarStyle">2</int>
|
| | | </object>
|
| | | <string key="targetRuntimeIdentifier">IBIPadFramework</string>
|
| | | </object>
|
| | | </array>
|
| | | <object class="IBObjectContainer" key="IBDocument.Objects">
|
| | | <array class="NSMutableArray" key="connectionRecords">
|
| | | <object class="IBConnectionRecord">
|
| | | <object class="IBCocoaTouchOutletConnection" key="connection">
|
| | | <string key="label">view</string>
|
| | | <reference key="source" ref="841351856"/>
|
| | | <reference key="destination" ref="766721923"/>
|
| | | </object>
|
| | | <int key="connectionID">3</int>
|
| | | </object>
|
| | | </array>
|
| | | <object class="IBMutableOrderedSet" key="objectRecords">
|
| | | <array key="orderedObjects">
|
| | | <object class="IBObjectRecord">
|
| | | <int key="objectID">0</int>
|
| | | <array key="object" id="0"/>
|
| | | <reference key="children" ref="1000"/>
|
| | | <nil key="parent"/>
|
| | | </object>
|
| | | <object class="IBObjectRecord">
|
| | | <int key="objectID">-1</int>
|
| | | <reference key="object" ref="841351856"/>
|
| | | <reference key="parent" ref="0"/>
|
| | | <string key="objectName">File's Owner</string>
|
| | | </object>
|
| | | <object class="IBObjectRecord">
|
| | | <int key="objectID">-2</int>
|
| | | <reference key="object" ref="606714003"/>
|
| | | <reference key="parent" ref="0"/>
|
| | | </object>
|
| | | <object class="IBObjectRecord">
|
| | | <int key="objectID">2</int>
|
| | | <reference key="object" ref="766721923"/>
|
| | | <reference key="parent" ref="0"/>
|
| | | </object>
|
| | | </array>
|
| | | </object>
|
| | | <dictionary class="NSMutableDictionary" key="flattenedProperties">
|
| | | <string key="-1.CustomClassName">ViewController</string>
|
| | | <string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
| | | <string key="-2.CustomClassName">UIResponder</string>
|
| | | <string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
| | | <string key="2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
| | | </dictionary>
|
| | | <dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
| | | <nil key="activeLocalization"/>
|
| | | <dictionary class="NSMutableDictionary" key="localizations"/>
|
| | | <nil key="sourceID"/>
|
| | | <int key="maxID">3</int>
|
| | | </object>
|
| | | <object class="IBClassDescriber" key="IBDocument.Classes">
|
| | | <array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
| | | <object class="IBPartialClassDescription">
|
| | | <string key="className">ViewController</string>
|
| | | <string key="superclassName">UIViewController</string>
|
| | | <object class="IBClassDescriptionSource" key="sourceIdentifier">
|
| | | <string key="majorKey">IBProjectSource</string>
|
| | | <string key="minorKey">./Classes/ViewController.h</string>
|
| | | </object>
|
| | | </object>
|
| | | </array>
|
| | | </object>
|
| | | <int key="IBDocument.localizationMode">0</int>
|
| | | <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
|
| | | <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
| | | <int key="IBDocument.defaultPropertyAccessControl">3</int>
|
| | | <bool key="IBDocument.UseAutolayout">YES</bool>
|
| | | <string key="IBCocoaTouchPluginVersion">1856</string>
|
| | | </data>
|
| | | </archive>
|
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?>
|
| | | <archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
|
| | | <data>
|
| | | <int key="IBDocument.SystemTarget">1536</int>
|
| | | <string key="IBDocument.SystemVersion">12A269</string>
|
| | | <string key="IBDocument.InterfaceBuilderVersion">2835</string>
|
| | | <string key="IBDocument.AppKitVersion">1187</string>
|
| | | <string key="IBDocument.HIToolboxVersion">624.00</string>
|
| | | <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
| | | <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
| | | <string key="NS.object.0">1919</string>
|
| | | </object>
|
| | | <array key="IBDocument.IntegratedClassDependencies">
|
| | | <string>IBProxyObject</string>
|
| | | <string>IBUIView</string>
|
| | | </array>
|
| | | <array key="IBDocument.PluginDependencies">
|
| | | <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
| | | </array>
|
| | | <object class="NSMutableDictionary" key="IBDocument.Metadata">
|
| | | <string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
| | | <integer value="1" key="NS.object.0"/>
|
| | | </object>
|
| | | <array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
| | | <object class="IBProxyObject" id="372490531">
|
| | | <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
| | | <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
| | | </object>
|
| | | <object class="IBProxyObject" id="843779117">
|
| | | <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
| | | <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
| | | </object>
|
| | | <object class="IBUIView" id="774585933">
|
| | | <reference key="NSNextResponder"/>
|
| | | <int key="NSvFlags">274</int>
|
| | | <string key="NSFrame">{{0, 20}, {320, 548}}</string>
|
| | | <reference key="NSSuperview"/>
|
| | | <reference key="NSWindow"/>
|
| | | <reference key="NSNextKeyView"/>
|
| | | <object class="NSColor" key="IBUIBackgroundColor">
|
| | | <int key="NSColorSpace">3</int>
|
| | | <bytes key="NSWhite">MC43NQA</bytes>
|
| | | <object class="NSColorSpace" key="NSCustomColorSpace">
|
| | | <int key="NSID">2</int>
|
| | | </object>
|
| | | </object>
|
| | | <bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
| | | <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
| | | <object class="IBUIScreenMetrics" key="IBUISimulatedDestinationMetrics">
|
| | | <string key="IBUISimulatedSizeMetricsClass">IBUIScreenMetrics</string>
|
| | | <object class="NSMutableDictionary" key="IBUINormalizedOrientationToSizeMap">
|
| | | <bool key="EncodedWithXMLCoder">YES</bool>
|
| | | <array key="dict.sortedKeys">
|
| | | <integer value="1"/>
|
| | | <integer value="3"/>
|
| | | </array>
|
| | | <array key="dict.values">
|
| | | <string>{320, 568}</string>
|
| | | <string>{568, 320}</string>
|
| | | </array>
|
| | | </object>
|
| | | <string key="IBUITargetRuntime">IBCocoaTouchFramework</string>
|
| | | <string key="IBUIDisplayName">Retina 4 Full Screen</string>
|
| | | <int key="IBUIType">2</int>
|
| | | </object>
|
| | | <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
| | | </object>
|
| | | </array>
|
| | | <object class="IBObjectContainer" key="IBDocument.Objects">
|
| | | <array class="NSMutableArray" key="connectionRecords">
|
| | | <object class="IBConnectionRecord">
|
| | | <object class="IBCocoaTouchOutletConnection" key="connection">
|
| | | <string key="label">view</string>
|
| | | <reference key="source" ref="372490531"/>
|
| | | <reference key="destination" ref="774585933"/>
|
| | | </object>
|
| | | <int key="connectionID">7</int>
|
| | | </object>
|
| | | </array>
|
| | | <object class="IBMutableOrderedSet" key="objectRecords">
|
| | | <array key="orderedObjects">
|
| | | <object class="IBObjectRecord">
|
| | | <int key="objectID">0</int>
|
| | | <array key="object" id="0"/>
|
| | | <reference key="children" ref="1000"/>
|
| | | <nil key="parent"/>
|
| | | </object>
|
| | | <object class="IBObjectRecord">
|
| | | <int key="objectID">-1</int>
|
| | | <reference key="object" ref="372490531"/>
|
| | | <reference key="parent" ref="0"/>
|
| | | <string key="objectName">File's Owner</string>
|
| | | </object>
|
| | | <object class="IBObjectRecord">
|
| | | <int key="objectID">-2</int>
|
| | | <reference key="object" ref="843779117"/>
|
| | | <reference key="parent" ref="0"/>
|
| | | </object>
|
| | | <object class="IBObjectRecord">
|
| | | <int key="objectID">6</int>
|
| | | <reference key="object" ref="774585933"/>
|
| | | <reference key="parent" ref="0"/>
|
| | | </object>
|
| | | </array>
|
| | | </object>
|
| | | <dictionary class="NSMutableDictionary" key="flattenedProperties">
|
| | | <string key="-1.CustomClassName">ViewController</string>
|
| | | <string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
| | | <string key="-2.CustomClassName">UIResponder</string>
|
| | | <string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
| | | <string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
| | | </dictionary>
|
| | | <dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
| | | <nil key="activeLocalization"/>
|
| | | <dictionary class="NSMutableDictionary" key="localizations"/>
|
| | | <nil key="sourceID"/>
|
| | | <int key="maxID">7</int>
|
| | | </object>
|
| | | <object class="IBClassDescriber" key="IBDocument.Classes">
|
| | | <array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
| | | <object class="IBPartialClassDescription">
|
| | | <string key="className">ViewController</string>
|
| | | <string key="superclassName">UIViewController</string>
|
| | | <object class="IBClassDescriptionSource" key="sourceIdentifier">
|
| | | <string key="majorKey">IBProjectSource</string>
|
| | | <string key="minorKey">./Classes/ViewController.h</string>
|
| | | </object>
|
| | | </object>
|
| | | </array>
|
| | | </object>
|
| | | <int key="IBDocument.localizationMode">0</int>
|
| | | <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
| | | <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
| | | <int key="IBDocument.defaultPropertyAccessControl">3</int>
|
| | | <bool key="IBDocument.UseAutolayout">YES</bool>
|
| | | <string key="IBCocoaTouchPluginVersion">1919</string>
|
| | | </data>
|
| | | </archive>
|
New file |
| | |
| | | /* Localized versions of Info.plist keys */
|
| | |
|
New file |
| | |
| | | // |
| | | // ViewController.h |
| | | // ViewController |
| | | // |
| | | // Created by Jacky Hu on 07/14/14. |
| | | // |
| | | |
| | | #import <UIKit/UIKit.h> |
| | | |
| | | @interface ViewController : UIViewController<UIAlertViewDelegate, UITextFieldDelegate> |
| | | { |
| | | UIAlertView* mAlert; |
| | | UITextField *mTextField; |
| | | } |
| | | |
| | | @property(nonatomic, retain)NSString *channel; |
| | | @property(nonatomic ,retain)UITextField *mTextField; |
| | | |
| | | - (void)showAlertWait; |
| | | - (void)showAlertMessage:(NSString*)msg; |
| | | - (void)hideAlert; |
| | | |
| | | @end |
New file |
| | |
| | | // |
| | | // ViewController.m |
| | | // ViewController |
| | | // |
| | | // Created by Jacky Hu on 07/14/14. |
| | | // |
| | | |
| | | #include <sys/socket.h> // Per msqr |
| | | #include <sys/sysctl.h> |
| | | #include <net/if.h> |
| | | #include <net/if_dl.h> |
| | | #import "ViewController.h" |
| | | #import "AppDelegate.h" |
| | | #import "Pingpp.h" |
| | | |
| | | #define KBtn_width 200 |
| | | #define KBtn_height 40 |
| | | #define KXOffSet (self.view.frame.size.width - KBtn_width) / 2 |
| | | #define KYOffSet 20 |
| | | |
| | | #define kWaiting @"正在获取支付凭据,请稍后..." |
| | | #define kNote @"提示" |
| | | #define kConfirm @"确定" |
| | | #define kErrorNet @"网络错误" |
| | | #define kResult @"支付结果:%@" |
| | | |
| | | #define kPlaceHolder @"支付金额" |
| | | #define kMaxAmount 9999999 |
| | | |
| | | #warning \ |
| | | URL Schemes 需要在 Xcode 的 Info 标签页的 URL Types 中添加,\ |
| | | 需要你自定义(不能使用 "alipay", "wx", "wechat" 等等这些),首字母必须是英文字母,支持英文和数字,不建议使用特殊符号。\ |
| | | 如果这个不设置,可能会导致支付完成之后,无法跳转回 App 或者无法得到结果回调。\ |
| | | 对于微信支付来说,必须添加一项值为微信平台上注册的应用程序 id("wx" 开头的字符串)作为 URL Scheme。 |
| | | #define kUrlScheme @"demoapp001" // 这个是你定义的 URL Scheme,支付宝、微信支付、银联和测试模式需要。 |
| | | |
| | | #define kUrl @"http://218.244.151.190/demo/charge" // 你的服务端创建并返回 charge 的 URL 地址,此地址仅供测试用。 |
| | | |
| | | @interface ViewController () |
| | | |
| | | @end |
| | | |
| | | @implementation ViewController |
| | | @synthesize channel; |
| | | @synthesize mTextField; |
| | | |
| | | - (void)viewDidLoad |
| | | { |
| | | [super viewDidLoad]; |
| | | self.view.backgroundColor = [UIColor whiteColor]; |
| | | [self.navigationController setNavigationBarHidden:YES]; |
| | | // Do any additional setup after loading the view, typically from a nib. |
| | | CGRect viewRect = self.view.frame; |
| | | UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:viewRect]; |
| | | [scrollView setScrollEnabled:YES]; |
| | | [self.view addSubview:scrollView]; |
| | | |
| | | CGRect windowRect = [[UIScreen mainScreen] bounds]; |
| | | UIImage *headerImg = [UIImage imageNamed:@"home.png"]; |
| | | CGFloat imgViewWith = windowRect.size.width * 0.9; |
| | | CGFloat imgViewHeight = headerImg.size.height * imgViewWith / headerImg.size.width; |
| | | UIImageView *imgView = [[UIImageView alloc] initWithImage:headerImg]; |
| | | [imgView setContentScaleFactor:[[UIScreen mainScreen] scale]]; |
| | | CGFloat imgx = windowRect.size.width/2-imgViewWith/2; |
| | | [imgView setFrame:CGRectMake(imgx, KYOffSet, imgViewWith, imgViewHeight)]; |
| | | [scrollView addSubview:imgView]; |
| | | |
| | | mTextField = [[UITextField alloc]initWithFrame:CGRectMake(imgx, KYOffSet+imgViewHeight+40, imgViewWith-40, 40)]; |
| | | mTextField.borderStyle = UITextBorderStyleRoundedRect; |
| | | mTextField.backgroundColor = [UIColor whiteColor]; |
| | | mTextField.placeholder = kPlaceHolder; |
| | | mTextField.keyboardType = UIKeyboardTypeNumberPad; |
| | | mTextField.returnKeyType =UIReturnKeyDone; |
| | | mTextField.delegate = self; |
| | | [mTextField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; |
| | | [scrollView addSubview:mTextField]; |
| | | |
| | | UIButton* doneButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; |
| | | [doneButton setTitle:@"OK" forState:UIControlStateNormal]; |
| | | [doneButton addTarget:self action:@selector(okButtonAction:) forControlEvents:UIControlEventTouchUpInside]; |
| | | [doneButton setFrame:CGRectMake(imgx+imgViewWith-35, KYOffSet+imgViewHeight+40, 40, 40)]; |
| | | [doneButton.layer setMasksToBounds:YES]; |
| | | [doneButton.layer setCornerRadius:8.0]; |
| | | [doneButton.layer setBorderWidth:1.0]; |
| | | [doneButton.layer setBorderColor:[UIColor grayColor].CGColor]; |
| | | [scrollView addSubview:doneButton]; |
| | | |
| | | UIButton* wxButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; |
| | | [wxButton setTitle:@"微信" forState:UIControlStateNormal]; |
| | | [wxButton addTarget:self action:@selector(normalPayAction:) forControlEvents:UIControlEventTouchUpInside]; |
| | | [wxButton setFrame:CGRectMake(imgx, KYOffSet+imgViewHeight+90, imgViewWith, KBtn_height)]; |
| | | [wxButton.layer setMasksToBounds:YES]; |
| | | [wxButton.layer setCornerRadius:8.0]; |
| | | [wxButton.layer setBorderWidth:1.0]; |
| | | [wxButton.layer setBorderColor:[UIColor grayColor].CGColor]; |
| | | wxButton.titleLabel.font = [UIFont systemFontOfSize: 18.0]; |
| | | [wxButton setTag:1]; |
| | | [scrollView addSubview:wxButton]; |
| | | |
| | | UIButton* alipayButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; |
| | | [alipayButton setTitle:@"支付宝" forState:UIControlStateNormal]; |
| | | [alipayButton addTarget:self action:@selector(normalPayAction:) forControlEvents:UIControlEventTouchUpInside]; |
| | | [alipayButton setFrame:CGRectMake(imgx, KYOffSet+imgViewHeight+140, imgViewWith, KBtn_height)]; |
| | | [alipayButton.layer setMasksToBounds:YES]; |
| | | [alipayButton.layer setCornerRadius:8.0]; |
| | | [alipayButton.layer setBorderWidth:1.0]; |
| | | [alipayButton.layer setBorderColor:[UIColor grayColor].CGColor]; |
| | | alipayButton.titleLabel.font = [UIFont systemFontOfSize: 18.0]; |
| | | [alipayButton setTag:2]; |
| | | [scrollView addSubview:alipayButton]; |
| | | |
| | | UIButton* upmpButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; |
| | | [upmpButton setTitle:@"银联" forState:UIControlStateNormal]; |
| | | [upmpButton addTarget:self action:@selector(normalPayAction:) forControlEvents:UIControlEventTouchUpInside]; |
| | | [upmpButton setFrame:CGRectMake(imgx, KYOffSet+imgViewHeight+190, imgViewWith, KBtn_height)]; |
| | | [upmpButton.layer setMasksToBounds:YES]; |
| | | [upmpButton.layer setCornerRadius:8.0]; |
| | | [upmpButton.layer setBorderWidth:1.0]; |
| | | [upmpButton.layer setBorderColor:[UIColor grayColor].CGColor]; |
| | | upmpButton.titleLabel.font = [UIFont systemFontOfSize: 18.0]; |
| | | [upmpButton setTag:3]; |
| | | [scrollView addSubview:upmpButton]; |
| | | |
| | | UIButton* bfbButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; |
| | | [bfbButton setTitle:@"百度钱包" forState:UIControlStateNormal]; |
| | | [bfbButton addTarget:self action:@selector(normalPayAction:) forControlEvents:UIControlEventTouchUpInside]; |
| | | [bfbButton setFrame:CGRectMake(imgx, KYOffSet+imgViewHeight+240, imgViewWith, KBtn_height)]; |
| | | [bfbButton.layer setMasksToBounds:YES]; |
| | | [bfbButton.layer setCornerRadius:8.0]; |
| | | [bfbButton.layer setBorderWidth:1.0]; |
| | | [bfbButton.layer setBorderColor:[UIColor grayColor].CGColor]; |
| | | bfbButton.titleLabel.font = [UIFont systemFontOfSize: 18.0]; |
| | | [bfbButton setTag:4]; |
| | | [scrollView addSubview:bfbButton]; |
| | | |
| | | [scrollView setContentSize:CGSizeMake(viewRect.size.width, KYOffSet+imgViewHeight+260+KBtn_height)]; |
| | | } |
| | | |
| | | - (void)didReceiveMemoryWarning |
| | | { |
| | | [super didReceiveMemoryWarning]; |
| | | // Dispose of any resources that can be recreated. |
| | | } |
| | | |
| | | - (void)showAlertWait |
| | | { |
| | | mAlert = [[UIAlertView alloc] initWithTitle:kWaiting message:nil delegate:self cancelButtonTitle:nil otherButtonTitles: nil]; |
| | | [mAlert show]; |
| | | UIActivityIndicatorView* aiv = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite]; |
| | | aiv.center = CGPointMake(mAlert.frame.size.width / 2.0f - 15, mAlert.frame.size.height / 2.0f + 10 ); |
| | | [aiv startAnimating]; |
| | | [mAlert addSubview:aiv]; |
| | | } |
| | | |
| | | - (void)showAlertMessage:(NSString*)msg |
| | | { |
| | | mAlert = [[UIAlertView alloc] initWithTitle:kNote message:msg delegate:nil cancelButtonTitle:kConfirm otherButtonTitles:nil, nil]; |
| | | [mAlert show]; |
| | | } |
| | | |
| | | - (void)hideAlert |
| | | { |
| | | if (mAlert != nil) |
| | | { |
| | | [mAlert dismissWithClickedButtonIndex:0 animated:YES]; |
| | | mAlert = nil; |
| | | } |
| | | } |
| | | |
| | | - (void)normalPayAction:(id)sender |
| | | { |
| | | NSInteger tag = ((UIButton*)sender).tag; |
| | | if (tag == 1) { |
| | | self.channel = @"wx"; |
| | | [self normalPayAction:nil]; |
| | | } else if (tag == 2) { |
| | | self.channel = @"alipay"; |
| | | } else if (tag == 3) { |
| | | self.channel = @"upacp"; |
| | | } else if (tag == 4) { |
| | | self.channel = @"bfb_wap"; |
| | | } else { |
| | | return; |
| | | } |
| | | |
| | | [mTextField resignFirstResponder]; |
| | | long long amount = [[self.mTextField.text stringByReplacingOccurrencesOfString:@"." withString:@""] longLongValue]; |
| | | if (amount == 0) { |
| | | return; |
| | | } |
| | | NSString *amountStr = [NSString stringWithFormat:@"%lld", amount]; |
| | | NSURL* url = [NSURL URLWithString:kUrl]; |
| | | NSMutableURLRequest * postRequest=[NSMutableURLRequest requestWithURL:url]; |
| | | |
| | | NSDictionary* dict = @{ |
| | | @"channel" : self.channel, |
| | | @"amount" : amountStr |
| | | }; |
| | | NSData* data = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:nil]; |
| | | NSString *bodyData = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; |
| | | |
| | | [postRequest setHTTPBody:[NSData dataWithBytes:[bodyData UTF8String] length:strlen([bodyData UTF8String])]]; |
| | | [postRequest setHTTPMethod:@"POST"]; |
| | | [postRequest setValue:@"application/json; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; |
| | | |
| | | ViewController * __weak weakSelf = self; |
| | | NSOperationQueue *queue = [[NSOperationQueue alloc] init]; |
| | | [self showAlertWait]; |
| | | [NSURLConnection sendAsynchronousRequest:postRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { |
| | | dispatch_async(dispatch_get_main_queue(), ^{ |
| | | NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response; |
| | | [weakSelf hideAlert]; |
| | | if (httpResponse.statusCode != 200) { |
| | | NSLog(@"statusCode=%ld error = %@", (long)httpResponse.statusCode, connectionError); |
| | | [weakSelf showAlertMessage:kErrorNet]; |
| | | return; |
| | | } |
| | | if (connectionError != nil) { |
| | | NSLog(@"error = %@", connectionError); |
| | | [weakSelf showAlertMessage:kErrorNet]; |
| | | return; |
| | | } |
| | | NSString* charge = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; |
| | | NSLog(@"charge = %@", charge); |
| | | |
| | | |
| | | [Pingpp createPayment:charge |
| | | viewController:weakSelf |
| | | appURLScheme:kUrlScheme |
| | | withCompletion:^(NSString *result, PingppError *error) |
| | | { |
| | | NSLog(@"completion block: %@", result); |
| | | if (error == nil) |
| | | { |
| | | NSLog(@"PingppError is nil"); |
| | | } |
| | | else |
| | | { |
| | | NSLog(@"PingppError: code=%lu msg=%@", (unsigned long)error.code, [error getMsg]); |
| | | } |
| | | |
| | | [weakSelf showAlertMessage:result]; |
| | | }]; |
| | | }); |
| | | }]; |
| | | } |
| | | |
| | | - (void)okButtonAction:(id)sender |
| | | { |
| | | [mTextField resignFirstResponder]; |
| | | } |
| | | |
| | | - (void) textFieldDidChange:(UITextField *) textField |
| | | { |
| | | NSString *text = textField.text; |
| | | NSUInteger index = [text rangeOfString:@"."].location; |
| | | if (index != NSNotFound) { |
| | | double amount = [[text stringByReplacingOccurrencesOfString:@"." withString:@""] doubleValue]; |
| | | text = [NSString stringWithFormat:@"%.02f", MIN(amount, kMaxAmount)/100]; |
| | | } else { |
| | | double amount = [text doubleValue]; |
| | | text = [NSString stringWithFormat:@"%.02f", MIN(amount, kMaxAmount)/100]; |
| | | } |
| | | textField.text = text; |
| | | } |
| | | |
| | | -(void)textFieldDidBeginEditing:(UITextField *)textField |
| | | { |
| | | CGRect frame = textField.frame; |
| | | if (self.view.frame.size.height > 480) { |
| | | return; |
| | | } |
| | | int offset = frame.origin.y + 45 - (self.view.frame.size.height - 216.0); |
| | | NSTimeInterval animationDuration = 0.30f; |
| | | [UIView beginAnimations:@"ResizeForKeyboard" context:nil]; |
| | | [UIView setAnimationDuration:animationDuration]; |
| | | if(offset > 0) |
| | | self.view.frame = CGRectMake(0.0f, -offset, self.view.frame.size.width, self.view.frame.size.height); |
| | | [UIView commitAnimations]; |
| | | } |
| | | |
| | | -(void)textFieldDidEndEditing:(UITextField *)textField |
| | | { |
| | | self.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); |
| | | } |
| | | |
| | | @end |
New file |
| | |
| | | // |
| | | // Prefix header for all source files of the 'demoapp' target in the 'demoapp' project |
| | | // |
| | | |
| | | #import <Availability.h> |
| | | |
| | | #ifndef __IPHONE_4_0 |
| | | #warning "This project uses features only available in iOS SDK 4.0 and later." |
| | | #endif |
| | | |
| | | #ifdef __OBJC__ |
| | | #import <UIKit/UIKit.h> |
| | | #import <Foundation/Foundation.h> |
| | | #endif |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
| | | <plist version="1.0"> |
| | | <dict> |
| | | <key>CFBundleAllowMixedLocalizations</key> |
| | | <true/> |
| | | <key>CFBundleDevelopmentRegion</key> |
| | | <string>zh_CN</string> |
| | | <key>CFBundleDisplayName</key> |
| | | <string>${PRODUCT_NAME}</string> |
| | | <key>CFBundleExecutable</key> |
| | | <string>${EXECUTABLE_NAME}</string> |
| | | <key>CFBundleIcons</key> |
| | | <dict/> |
| | | <key>CFBundleIcons~ipad</key> |
| | | <dict/> |
| | | <key>CFBundleIdentifier</key> |
| | | <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> |
| | | <key>CFBundleInfoDictionaryVersion</key> |
| | | <string>6.0</string> |
| | | <key>CFBundleName</key> |
| | | <string>${PRODUCT_NAME}</string> |
| | | <key>CFBundlePackageType</key> |
| | | <string>APPL</string> |
| | | <key>CFBundleShortVersionString</key> |
| | | <string>1.0</string> |
| | | <key>CFBundleSignature</key> |
| | | <string>????</string> |
| | | <key>CFBundleURLTypes</key> |
| | | <array> |
| | | <dict> |
| | | <key>CFBundleTypeRole</key> |
| | | <string>Editor</string> |
| | | <key>CFBundleURLSchemes</key> |
| | | <array> |
| | | <string>YOUR-APP-URL-SCHEME</string> |
| | | </array> |
| | | </dict> |
| | | <dict> |
| | | <key>CFBundleTypeRole</key> |
| | | <string>Editor</string> |
| | | <key>CFBundleURLSchemes</key> |
| | | <array> |
| | | <string>demoapp001</string> |
| | | </array> |
| | | </dict> |
| | | </array> |
| | | <key>CFBundleVersion</key> |
| | | <string>1.0</string> |
| | | <key>LSApplicationQueriesSchemes</key> |
| | | <array> |
| | | <string>weixin</string> |
| | | <string>wechat</string> |
| | | <string>alipay</string> |
| | | </array> |
| | | <key>LSRequiresIPhoneOS</key> |
| | | <true/> |
| | | <key>NSAppTransportSecurity</key> |
| | | <dict> |
| | | <key>NSAllowsArbitraryLoads</key> |
| | | <true/> |
| | | </dict> |
| | | <key>UIRequiredDeviceCapabilities</key> |
| | | <array> |
| | | <string>armv7</string> |
| | | </array> |
| | | <key>UISupportedInterfaceOrientations</key> |
| | | <array> |
| | | <string>UIInterfaceOrientationPortrait</string> |
| | | </array> |
| | | <key>UISupportedInterfaceOrientations~ipad</key> |
| | | <array> |
| | | <string>UIInterfaceOrientationPortrait</string> |
| | | <string>UIInterfaceOrientationPortraitUpsideDown</string> |
| | | <string>UIInterfaceOrientationLandscapeLeft</string> |
| | | <string>UIInterfaceOrientationLandscapeRight</string> |
| | | </array> |
| | | </dict> |
| | | </plist> |
New file |
| | |
| | | // |
| | | // main.m |
| | | // main |
| | | // |
| | | // Created by Jacky Hu on 07/14/14. |
| | | // |
| | | |
| | | #import <UIKit/UIKit.h> |
| | | |
| | | #import "AppDelegate.h" |
| | | |
| | | int main(int argc, char *argv[]) |
| | | { |
| | | @autoreleasepool { |
| | | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); |
| | | } |
| | | } |
New file |
| | |
| | | // |
| | | // APAuthInfo.h |
| | | // AliSDKDemo |
| | | // |
| | | // Created by 方彬 on 14-7-18. |
| | | // Copyright (c) 2014年 Alipay.com. All rights reserved. |
| | | // |
| | | |
| | | #import <Foundation/Foundation.h> |
| | | |
| | | @interface APayAuthInfo : NSObject |
| | | |
| | | @property(nonatomic, copy)NSString *appID; |
| | | @property(nonatomic, copy)NSString *pid; |
| | | @property(nonatomic, copy)NSString *redirectUri; |
| | | |
| | | /** |
| | | * 初始化AuthInfo |
| | | * |
| | | * @param appIDStr 应用ID |
| | | * @param productIDStr 产品码 该商户在aboss签约的产品,用户获取pid获取的参数 |
| | | * @param pidStr 商户ID 可不填 |
| | | * @param uriStr 授权的应用回调地址 比如:alidemo://auth |
| | | * |
| | | * @return authinfo实例 |
| | | */ |
| | | - (id)initWithAppID:(NSString *)appIDStr |
| | | pid:(NSString *)pidStr |
| | | redirectUri:(NSString *)uriStr; |
| | | |
| | | - (NSString *)description; |
| | | - (NSString *)wapDescription; |
| | | @end |
New file |
| | |
| | | // |
| | | // AlipaySDK.h |
| | | // AlipaySDK |
| | | // |
| | | // Created by 方彬 on 14-4-28. |
| | | // Copyright (c) 2014年 Alipay. All rights reserved. |
| | | // |
| | | |
| | | |
| | | //////////////////////////////////////////////////////// |
| | | ////////////////version:2.1 motify:2014.12.24////////// |
| | | ///////////////////Merry Christmas=。=////////////////// |
| | | //////////////////////////////////////////////////////// |
| | | |
| | | |
| | | #import "APayAuthInfo.h" |
| | | typedef enum { |
| | | ALIPAY_TIDFACTOR_IMEI, |
| | | ALIPAY_TIDFACTOR_IMSI, |
| | | ALIPAY_TIDFACTOR_TID, |
| | | ALIPAY_TIDFACTOR_CLIENTKEY, |
| | | ALIPAY_TIDFACTOR_VIMEI, |
| | | ALIPAY_TIDFACTOR_VIMSI, |
| | | ALIPAY_TIDFACTOR_CLIENTID, |
| | | ALIPAY_TIDFACTOR_APDID, |
| | | ALIPAY_TIDFACTOR_MAX |
| | | } AlipayTidFactor; |
| | | |
| | | typedef void(^CompletionBlock)(NSDictionary *resultDic); |
| | | |
| | | @interface AlipaySDK : NSObject |
| | | |
| | | /** |
| | | * 创建支付单例服务 |
| | | * |
| | | * @return 返回单例对象 |
| | | */ |
| | | + (AlipaySDK *)defaultService; |
| | | |
| | | /** |
| | | * 支付接口 |
| | | * |
| | | * @param orderStr 订单信息 |
| | | * @param schemeStr 调用支付的app注册在info.plist中的scheme |
| | | * @param compltionBlock 支付结果回调Block |
| | | */ |
| | | - (void)payOrder:(NSString *)orderStr |
| | | fromScheme:(NSString *)schemeStr |
| | | callback:(CompletionBlock)completionBlock; |
| | | |
| | | /** |
| | | * 处理钱包或者独立快捷app支付跳回商户app携带的支付结果Url |
| | | * |
| | | * @param resultUrl 支付结果url,传入后由SDK解析,统一在上面的pay方法的callback中回调 |
| | | * @param completionBlock 跳钱包支付结果回调,保证跳转钱包支付过程中,即使调用方app被系统kill时,能通过这个回调取到支付结果。 |
| | | */ |
| | | - (void)processOrderWithPaymentResult:(NSURL *)resultUrl |
| | | standbyCallback:(CompletionBlock)completionBlock; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取交易token。 |
| | | * |
| | | * @return 交易token,若无则为空。 |
| | | */ |
| | | - (NSString *)fetchTradeToken; |
| | | |
| | | /** |
| | | * 是否已经使用过 |
| | | * |
| | | * @return YES为已经使用过,NO反之 |
| | | */ |
| | | - (BOOL)isLogined; |
| | | |
| | | /** |
| | | * 当前版本号 |
| | | * |
| | | * @return 当前版本字符串 |
| | | */ |
| | | - (NSString *)currentVersion; |
| | | |
| | | /** |
| | | * 当前版本号 |
| | | * |
| | | * @return tid相关信息 |
| | | */ |
| | | - (NSString*)queryTidFactor:(AlipayTidFactor)factor; |
| | | |
| | | /** |
| | | * 測試所用,realse包无效 |
| | | * |
| | | * @param url 测试环境 |
| | | */ |
| | | - (void)setUrl:(NSString *)url; |
| | | |
| | | |
| | | ////////////////////////////////////////////////////////////////////////////////////////////// |
| | | //////////////////////////h5 拦截支付入口/////////////////////////////////////////////////////// |
| | | ////////////////////////////////////////////////////////////////////////////////////////////// |
| | | |
| | | /** |
| | | * url order 获取接口 |
| | | * |
| | | * @param urlStr 拦截的 url string |
| | | * |
| | | * @return 获取到的url order info |
| | | */ |
| | | - (NSString*)fetchOrderInfoFromH5PayUrl:(NSString*)urlStr; |
| | | |
| | | |
| | | /** |
| | | * url支付接口 |
| | | * |
| | | * @param orderStr 订单信息 |
| | | * @param schemeStr 调用支付的app注册在info.plist中的scheme |
| | | * @param compltionBlock 支付结果回调Block |
| | | */ |
| | | - (void)payUrlOrder:(NSString *)orderStr |
| | | fromScheme:(NSString *)schemeStr |
| | | callback:(CompletionBlock)completionBlock; |
| | | |
| | | |
| | | ////////////////////////////////////////////////////////////////////////////////////////////// |
| | | //////////////////////////授权1.0////////////////////////////////////////////////////////////// |
| | | ////////////////////////////////////////////////////////////////////////////////////////////// |
| | | |
| | | /** |
| | | * 快登授权 |
| | | * @param authInfo 需授权信息 |
| | | * @param completionBlock 授权结果回调 |
| | | */ |
| | | - (void)authWithInfo:(APayAuthInfo *)authInfo |
| | | callback:(CompletionBlock)completionBlock; |
| | | |
| | | |
| | | /** |
| | | * 处理授权信息Url |
| | | * |
| | | * @param resultUrl 钱包返回的授权结果url |
| | | * @param completionBlock 跳授权结果回调,保证跳转钱包授权过程中,即使调用方app被系统kill时,能通过这个回调取到支付结果。 |
| | | */ |
| | | - (void)processAuthResult:(NSURL *)resultUrl |
| | | standbyCallback:(CompletionBlock)completionBlock; |
| | | |
| | | ////////////////////////////////////////////////////////////////////////////////////////////// |
| | | //////////////////////////授权2.0////////////////////////////////////////////////////////////// |
| | | ////////////////////////////////////////////////////////////////////////////////////////////// |
| | | |
| | | /** |
| | | * 快登授权2.0 |
| | | * |
| | | * @param infoStr 授权请求信息字符串 |
| | | * @param schemeStr 调用授权的app注册在info.plist中的scheme |
| | | * @param completionBlock 授权结果回调 |
| | | */ |
| | | - (void)auth_V2WithInfo:(NSString *)infoStr |
| | | fromScheme:(NSString *)schemeStr |
| | | callback:(CompletionBlock)completionBlock; |
| | | |
| | | /** |
| | | * 处理授权信息Url |
| | | * |
| | | * @param resultUrl 钱包返回的授权结果url |
| | | * @param completionBlock 跳授权结果回调,保证跳转钱包授权过程中,即使调用方app被系统kill时,能通过这个回调取到支付结果。 |
| | | */ |
| | | - (void)processAuth_V2Result:(NSURL *)resultUrl |
| | | standbyCallback:(CompletionBlock)completionBlock; |
| | | |
| | | @end |
New file |
| | |
| | | { |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "kb_bg1.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "kb_bg1@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "kb_bg1@1x.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "kb_bg1@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "kb_bg1@3x.png", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "kb_bg2.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "kb_bg2@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "kb_bg2.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "kb_bg2@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "kb_bg2@6p.png", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "kb_bgline@1x.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "kb_bgline@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "kb_bgline@3x.png", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_backspace_normal.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_backspace_normal@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_backspace_normal.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_backspace_normal@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_backspace_normal@6p.png", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_backspace_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_backspace_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_backspace_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_backspace_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_backspace_pressed@6p.png", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_fat_bg_blue.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_fat_bg_blue@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_fat_bg_blue.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_fat_bg_blue@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_fat_bg_white.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_fat_bg_white@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_fat_bg_white.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_fat_bg_white@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_fat_normal.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_fat_normal@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_fat_normal.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_fat_normal@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_fat_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_fat_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_fat_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_fat_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_icon_del.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_icon_del@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_icon_del.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_icon_del@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_icon_shift_actived.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_icon_shift_actived@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_icon_shift_actived.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_icon_shift_actived@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_icon_shift_highlighted.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_icon_shift_highlighted@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_icon_shift_highlighted.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_icon_shift_highlighted@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_icon_shift_normal.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_icon_shift_normal@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_icon_shift_normal.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_icon_shift_normal@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_mood_normal.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_mood_normal@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_mood_normal.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_mood_normal@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_mood_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_mood_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_mood_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_mood_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_normal.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_normal@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_normal.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_normal@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_1.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_1@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_1.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_1@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_1_last_row.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_1_last_row@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_1_last_row.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_1_last_row@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_1_last_row_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_1_last_row_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_1_last_row_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_1_last_row_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_1_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_1_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_1_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_1_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_2.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_2@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_2.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_2@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_2_last_row.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_2_last_row@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_2_last_row.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_2_last_row@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_2_last_row_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_2_last_row_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_2_last_row_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_2_last_row_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_2_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_2_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_2_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_2_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_3.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_3@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_3.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_3@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_3_last_row.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_3_last_row@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_3_last_row.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_3_last_row@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_3_last_row_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_3_last_row_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_3_last_row_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_3_last_row_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_3_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_3_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_3_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_num_column_3_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_pressed_fat_middle.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_pressed_fat_middle@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_pressed_fat_middle.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_pressed_fat_middle@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_pressed_leftside.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_pressed_leftside@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_pressed_leftside.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_pressed_leftside@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_pressed_middle.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_pressed_middle@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_pressed_middle.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_pressed_middle@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_pressed_rightside.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_pressed_rightside@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_pressed_rightside.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_pressed_rightside@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_space_normal.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_space_normal@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_space_normal.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_space_normal@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_space_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_space_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | { |
| | | "images" : [ |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_space_pressed.png", |
| | | "scale" : "1x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "filename" : "key_space_pressed@2x.png", |
| | | "scale" : "2x" |
| | | }, |
| | | { |
| | | "idiom" : "universal", |
| | | "scale" : "3x" |
| | | } |
| | | ], |
| | | "info" : { |
| | | "version" : 1, |
| | | "author" : "xcode" |
| | | } |
| | | } |
New file |
| | |
| | | // |
| | | // CMBWebKeyboard.h |
| | | // SKeyboardTest |
| | | // |
| | | // Created by zk on 16/2/23. |
| | | // Copyright © 2016年 zkr. All rights reserved. |
| | | // |
| | | |
| | | #ifndef CMBWebKeyboard_h |
| | | #define CMBWebKeyboard_h |
| | | |
| | | #import <Foundation/Foundation.h> |
| | | #import <UIKit/UIKit.h> |
| | | |
| | | #define cmbKeyboardWillHideNotification @"cmbKeyboardWillHideNotification" |
| | | #define cmbKeyboardDidChangeCharactersNotification @"cmbKeyboardDidChangeCharactersNotification" |
| | | |
| | | typedef NS_ENUM(NSUInteger, CMBLSUICommandPresentType) { |
| | | CMBLSUICommandPresentTypeKeyboardLike, |
| | | CMBLSUICommandPresentTypeFullScreen, |
| | | CMBLSUICommandPresentTypeToolBar,// navigation br or tabbar |
| | | }; |
| | | |
| | | @interface CMBWebKeyboard : NSObject |
| | | |
| | | @property (nonatomic, strong) UIWebView *webView; |
| | | |
| | | + (CMBWebKeyboard *)shareInstance; |
| | | - (void)showKeyboardWithRequest:(NSURLRequest *)request; |
| | | - (void)hideKeyboard; |
| | | @end |
| | | |
| | | |
| | | #endif /* CMBWebKeyboard_h */ |
New file |
| | |
| | | // |
| | | // NSString+Additions.h |
| | | // MPBBank-Vista |
| | | // |
| | | // Created by Xuhl on 12-12-31. |
| | | // |
| | | // |
| | | |
| | | #import <Foundation/Foundation.h> |
| | | |
| | | //#import "NSString+Url.h" |
| | | |
| | | @interface NSString (NSString_Additions) |
| | | |
| | | + (NSString *)hmac_sha1:(NSString *)key text:(NSString *)text; |
| | | |
| | | + (NSString *)parseCardNoToStarString:(NSString *)no; |
| | | |
| | | + (NSString *)stringWithStringOrNil:(NSString *)string; |
| | | |
| | | - (NSComparisonResult)versionStringCompare:(NSString *)version; |
| | | - (BOOL)isCaseInsensitiveEqualToString:(NSString *)string; |
| | | |
| | | - (NSString *)stringByUnescapingHTMLEntities; |
| | | + (NSString *)hexStringFromData:(NSData *)data; |
| | | |
| | | + (NSString *)UUIDString; |
| | | |
| | | + (BOOL)isStringEmpty:(NSString *)str; |
| | | |
| | | - (BOOL)pb_containsString:(NSString *)subString; |
| | | @end |
| | | |
| | | @interface NSString (Repeat) |
| | | |
| | | - (NSString *)repeatTimes:(NSUInteger)times; |
| | | |
| | | @end |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
| | | <plist version="1.0"> |
| | | <dict> |
| | | <key>files</key> |
| | | <dict> |
| | | <key>.DS_Store</key> |
| | | <data> |
| | | rsl8pg+xjDwCVvfco5syYP9ckYI= |
| | | </data> |
| | | <key>Headers/CMBWebKeyboard.h</key> |
| | | <data> |
| | | l+B25l6wgAL6uycW0MbI3G0qjuM= |
| | | </data> |
| | | <key>Headers/NSString+Additions.h</key> |
| | | <data> |
| | | VIdZ0gVZpyxzSdesUi9rstZVyRM= |
| | | </data> |
| | | <key>Info.plist</key> |
| | | <data> |
| | | AzcRVJOb2K/4OSb1KQ76OOufUi4= |
| | | </data> |
| | | </dict> |
| | | <key>files2</key> |
| | | <dict> |
| | | <key>Headers/CMBWebKeyboard.h</key> |
| | | <data> |
| | | l+B25l6wgAL6uycW0MbI3G0qjuM= |
| | | </data> |
| | | <key>Headers/NSString+Additions.h</key> |
| | | <data> |
| | | VIdZ0gVZpyxzSdesUi9rstZVyRM= |
| | | </data> |
| | | </dict> |
| | | <key>rules</key> |
| | | <dict> |
| | | <key>^</key> |
| | | <true/> |
| | | <key>^.*\.lproj/</key> |
| | | <dict> |
| | | <key>optional</key> |
| | | <true/> |
| | | <key>weight</key> |
| | | <real>1000</real> |
| | | </dict> |
| | | <key>^.*\.lproj/locversion.plist$</key> |
| | | <dict> |
| | | <key>omit</key> |
| | | <true/> |
| | | <key>weight</key> |
| | | <real>1100</real> |
| | | </dict> |
| | | <key>^version.plist$</key> |
| | | <true/> |
| | | </dict> |
| | | <key>rules2</key> |
| | | <dict> |
| | | <key>.*\.dSYM($|/)</key> |
| | | <dict> |
| | | <key>weight</key> |
| | | <real>11</real> |
| | | </dict> |
| | | <key>^</key> |
| | | <dict> |
| | | <key>weight</key> |
| | | <real>20</real> |
| | | </dict> |
| | | <key>^(.*/)?\.DS_Store$</key> |
| | | <dict> |
| | | <key>omit</key> |
| | | <true/> |
| | | <key>weight</key> |
| | | <real>2000</real> |
| | | </dict> |
| | | <key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key> |
| | | <dict> |
| | | <key>nested</key> |
| | | <true/> |
| | | <key>weight</key> |
| | | <real>10</real> |
| | | </dict> |
| | | <key>^.*</key> |
| | | <true/> |
| | | <key>^.*\.lproj/</key> |
| | | <dict> |
| | | <key>optional</key> |
| | | <true/> |
| | | <key>weight</key> |
| | | <real>1000</real> |
| | | </dict> |
| | | <key>^.*\.lproj/locversion.plist$</key> |
| | | <dict> |
| | | <key>omit</key> |
| | | <true/> |
| | | <key>weight</key> |
| | | <real>1100</real> |
| | | </dict> |
| | | <key>^Info\.plist$</key> |
| | | <dict> |
| | | <key>omit</key> |
| | | <true/> |
| | | <key>weight</key> |
| | | <real>20</real> |
| | | </dict> |
| | | <key>^PkgInfo$</key> |
| | | <dict> |
| | | <key>omit</key> |
| | | <true/> |
| | | <key>weight</key> |
| | | <real>20</real> |
| | | </dict> |
| | | <key>^[^/]+$</key> |
| | | <dict> |
| | | <key>nested</key> |
| | | <true/> |
| | | <key>weight</key> |
| | | <real>10</real> |
| | | </dict> |
| | | <key>^embedded\.provisionprofile$</key> |
| | | <dict> |
| | | <key>weight</key> |
| | | <real>20</real> |
| | | </dict> |
| | | <key>^version\.plist$</key> |
| | | <dict> |
| | | <key>weight</key> |
| | | <real>20</real> |
| | | </dict> |
| | | </dict> |
| | | </dict> |
| | | </plist> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
| | | <plist version="1.0"> |
| | | <dict> |
| | | <key>BuildMachineOSBuild</key> |
| | | <string>15B42</string> |
| | | <key>CFBundleDevelopmentRegion</key> |
| | | <string>zh_CN</string> |
| | | <key>CFBundleExecutable</key> |
| | | <string>PassGuardCtrlBundle</string> |
| | | <key>CFBundleIdentifier</key> |
| | | <string>com.microdone.security.PassGuardCtrlBundle</string> |
| | | <key>CFBundleInfoDictionaryVersion</key> |
| | | <string>6.0</string> |
| | | <key>CFBundleName</key> |
| | | <string>PassGuardCtrlBundle</string> |
| | | <key>CFBundlePackageType</key> |
| | | <string>BNDL</string> |
| | | <key>CFBundleShortVersionString</key> |
| | | <string>1.0</string> |
| | | <key>CFBundleSignature</key> |
| | | <string>????</string> |
| | | <key>CFBundleVersion</key> |
| | | <string>1</string> |
| | | <key>CFPlugInDynamicRegisterFunction</key> |
| | | <string></string> |
| | | <key>CFPlugInDynamicRegistration</key> |
| | | <string>NO</string> |
| | | <key>CFPlugInFactories</key> |
| | | <dict> |
| | | <key>00000000-0000-0000-0000-000000000000</key> |
| | | <string>MyFactoryFunction</string> |
| | | </dict> |
| | | <key>CFPlugInTypes</key> |
| | | <dict> |
| | | <key>00000000-0000-0000-0000-000000000000</key> |
| | | <array> |
| | | <string>00000000-0000-0000-0000-000000000000</string> |
| | | </array> |
| | | </dict> |
| | | <key>CFPlugInUnloadFunction</key> |
| | | <string></string> |
| | | <key>DTCompiler</key> |
| | | <string>com.apple.compilers.llvm.clang.1_0</string> |
| | | <key>DTPlatformBuild</key> |
| | | <string>6E35b</string> |
| | | <key>DTPlatformVersion</key> |
| | | <string>GM</string> |
| | | <key>DTSDKBuild</key> |
| | | <string>14D125</string> |
| | | <key>DTSDKName</key> |
| | | <string>macosx10.10</string> |
| | | <key>DTXcode</key> |
| | | <string>0640</string> |
| | | <key>DTXcodeBuild</key> |
| | | <string>6E35b</string> |
| | | <key>NSHumanReadableCopyright</key> |
| | | <string>Copyright © 2014年 __microdone__. All rights reserved.</string> |
| | | </dict> |
| | | </plist> |
New file |
| | |
| | | // |
| | | // Pingpp+Cnp.h |
| | | // Pingpp |
| | | // |
| | | // Created by Afon on 15/9/23. |
| | | // Copyright © 2015年 pingplusplus. All rights reserved. |
| | | // |
| | | |
| | | #import "Pingpp.h" |
| | | #import "PingppURLResponse.h" |
| | | |
| | | NS_ASSUME_NONNULL_BEGIN |
| | | |
| | | typedef void (^PingppResultCompletion)(NSString *result, PingppURLResponse * __nullable response, NSError * __nullable error); |
| | | |
| | | typedef NS_ENUM(NSUInteger, PingppCardOperationOption) { |
| | | PingppCardOperationAdd, |
| | | PingppCardOperationRemove, |
| | | PingppCardOperationUnknown |
| | | }; |
| | | |
| | | typedef NS_ENUM(NSUInteger, PingppCardOperationResultOption) { |
| | | PingppCardOperationResultSucceeded, |
| | | PingppCardOperationResultFailed, |
| | | PingppCardOperationResultCancelled |
| | | }; |
| | | |
| | | @interface Pingpp (Cnp) |
| | | |
| | | /** |
| | | * 调用支付接口 |
| | | * @param orderNo 商户订单号 |
| | | * @param amount 订单金额 |
| | | * @param params 自定义附加字段,会放在 custom_params 字段,POST 到 chargeURL |
| | | */ |
| | | + (void)payInAppWithOrderNo:(NSString *)orderNo |
| | | amount:(NSUInteger)amount |
| | | params:(nullable NSDictionary *)params |
| | | chargeURL:(NSString *)url |
| | | viewController:(UIViewController *)viewController |
| | | completionHandler:(PingppResultCompletion)handler; |
| | | |
| | | /** |
| | | * 设置 Publishable Key |
| | | * @param publishableKey 请登录 https://dashboard.pingxx.com,到「基本信息」查看 |
| | | */ |
| | | + (void)setPublishableKey:(NSString *)publishableKey; |
| | | |
| | | + (NSString *)publishableKey; |
| | | |
| | | /** |
| | | * 设置 Customer |
| | | * @param customer Customer JSON 字符串或 NSDictionary |
| | | * @param error JSON 解析失败时的错误信息 |
| | | */ |
| | | + (void)setCustomer:(id)customer error:(NSError **)error; |
| | | |
| | | + (nullable NSDictionary *)customer; |
| | | |
| | | /** |
| | | * 打开卡片管理中心 |
| | | * 必须先调用过 + (void)setCustomer:error: |
| | | */ |
| | | + (void)openCardManager; |
| | | |
| | | /** |
| | | * 卡片管理回调 |
| | | * @param operation 操作类型:绑卡、解除绑卡 |
| | | * @param data 会包含操作所需的参数,比如 token_id,card_id,customer_id |
| | | */ |
| | | + (void)setOperationBlock:(nullable void (^)(PingppCardOperationOption operation, NSDictionary *data))block; |
| | | |
| | | /** |
| | | * 卡片管理结果处理 |
| | | * @param result 操作结果 |
| | | * @param data 服务端 SDK 处理得到的结果 |
| | | */ |
| | | + (void)continueOperation:(PingppCardOperationResultOption)result withData:(nullable id)data; |
| | | |
| | | @end |
| | | NS_ASSUME_NONNULL_END |
New file |
| | |
| | | // |
| | | // PingppURLResponse.h |
| | | // Pingpp |
| | | // |
| | | // Created by afon on 15/8/29. |
| | | // Copyright (c) 2015年 PingPluspPlus. All rights reserved. |
| | | // |
| | | |
| | | #import <Foundation/Foundation.h> |
| | | |
| | | NS_ASSUME_NONNULL_BEGIN |
| | | |
| | | @interface PingppURLResponse : NSObject |
| | | |
| | | /** |
| | | The last response received by the operation's connection. |
| | | */ |
| | | @property (readonly, nonatomic, strong, nullable) NSURLResponse *response; |
| | | |
| | | /** |
| | | The data received during the request. |
| | | */ |
| | | @property (readonly, nonatomic, strong, nullable) NSData *responseData; |
| | | |
| | | /** |
| | | The string representation of the response data. |
| | | */ |
| | | @property (readonly, nonatomic, copy, nullable) NSString *responseString; |
| | | |
| | | /** |
| | | The string encoding of the response. |
| | | */ |
| | | @property (readonly, nonatomic, assign) NSStringEncoding responseStringEncoding; |
| | | |
| | | @end |
| | | |
| | | NS_ASSUME_NONNULL_END |
New file |
| | |
| | | // |
| | | // Pingpp+One.h |
| | | // pingpp+one |
| | | // |
| | | // Created by Afon on 15/9/2. |
| | | // Copyright (c) 2015年 pingplusplus. All rights reserved. |
| | | // |
| | | |
| | | #import <Foundation/Foundation.h> |
| | | #import "Pingpp.h" |
| | | #import "PingppURLResponse.h" |
| | | |
| | | NS_ASSUME_NONNULL_BEGIN |
| | | |
| | | typedef void (^PingppOneCompletion)(NSString *result, PingppURLResponse * __nullable response, NSError * __nullable error); |
| | | |
| | | typedef NS_OPTIONS(NSUInteger, PingppBtnOption) { |
| | | PingppBtnAlipay = 1 << 0, |
| | | PingppBtnWx = 1 << 1, |
| | | PingppBtnUpacp = 1 << 2, |
| | | PingppBtnUp = PingppBtnUpacp, |
| | | PingppBtnBfb = 1 << 3, |
| | | PingppBtnUpmp = 1 << 4 |
| | | }; |
| | | |
| | | @interface Pingpp (One) |
| | | |
| | | /** |
| | | * 调用「壹收款」 |
| | | * @param orderNo 订单号,请注意保证唯一性 |
| | | * @param amount 订单金额,单位为分。例:150 表示 1.5 元。 |
| | | * @param params 自定义参数,请求 chargeURL 时,会放在 custom_params 字段 |
| | | * @param chargeURL 壹收款会向该地址发送请求,该地址需要返回 charge 的 JSON 字符串 |
| | | * @param appURLScheme Info.plist 中填写的 URL Scheme,支付宝渠道和测试模式需要 |
| | | * @param viewController 当前的 ViewController |
| | | * @param handler 回调 |
| | | */ |
| | | + (void)payWithOrderNo:(NSString *)orderNo |
| | | amount:(NSUInteger)amount |
| | | params:(nullable NSDictionary *)params |
| | | chargeURL:(NSString *)url |
| | | appURLScheme:(nullable NSString *)scheme |
| | | viewController:(UIViewController *)viewController |
| | | completionHandler:(PingppOneCompletion)handler; |
| | | |
| | | /** |
| | | * 设置请求 charge 的 URL(会被上述方法的 chargeURL 覆盖) |
| | | * @param chargeURLString 请求 charge 的 URL |
| | | */ |
| | | + (void)setChargeURLString:(NSString *)chargeURLString; |
| | | |
| | | /** |
| | | * 获取当前设置的 chargeURLString |
| | | * @return 设置的 charge 的 URL |
| | | */ |
| | | + (NSString *)chargeURLString; |
| | | |
| | | /** |
| | | * 设置需要显示的渠道按钮(有序) |
| | | * @param channels 渠道数组,与 API 的 channel 字段对应。例: @[@"wx", @"alipay", @"upacp", @"bfb"] |
| | | */ |
| | | + (void)enableChannels:(NSArray *)channels; |
| | | |
| | | /** |
| | | * 设置需要显示的渠道按钮(请用上面的方法代替) |
| | | * @param option 渠道。例: PingppBtnAlipay|PingppBtnWx|PingppBtnUpacp|PingppBtnBfb |
| | | */ |
| | | + (void)enableBtn:(PingppBtnOption)option; |
| | | |
| | | /** |
| | | * 开启应用内快捷支付 |
| | | * @param enable YES/NO,是否开启。(仅在导入了相应的静态库之后有用。) |
| | | */ |
| | | + (void)enableCnp:(BOOL)enable; |
| | | |
| | | @end |
| | | |
| | | NS_ASSUME_NONNULL_END |
New file |
| | |
| | | <!DOCTYPE html> |
| | | <html lang="en"> |
| | | <head> |
| | | <meta charset="UTF-8"> |
| | | <title>正在创建支付链接...</title> |
| | | <style> |
| | | *, |
| | | *:before, |
| | | *:after { |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | *:before { |
| | | content: ""; |
| | | display: table; |
| | | } |
| | | |
| | | *:after { |
| | | content: ""; |
| | | display: table; |
| | | clear: both; |
| | | } |
| | | |
| | | html, body { |
| | | height: 100%; |
| | | margin: 0; |
| | | overflow: auto; |
| | | } |
| | | .justify { |
| | | position: relative; |
| | | margin: 0 auto; |
| | | top: 50%; |
| | | -webkit-transform: translateY(-50%); |
| | | transform: translateY(-50%); |
| | | } |
| | | .text-center { |
| | | text-align: center; |
| | | } |
| | | </style> |
| | | </head> |
| | | <body> |
| | | <div class="justify"> |
| | | <p class="text-center">正在创建支付链接...</p> |
| | | </div> |
| | | </body> |
| | | </html> |
New file |
| | |
| | | // |
| | | // Pingpp.h |
| | | // Pingpp |
| | | // |
| | | // Created by afon on 14/11/20. |
| | | // |
| | | #ifndef Pingpp_Pingpp_h |
| | | #define Pingpp_Pingpp_h |
| | | |
| | | #import <UIKit/UIKit.h> |
| | | #import <Foundation/Foundation.h> |
| | | |
| | | typedef NS_ENUM(NSUInteger, PingppErrorOption) |
| | | { |
| | | PingppErrInvalidCharge, |
| | | PingppErrInvalidCredential, |
| | | PingppErrInvalidChannel, |
| | | PingppErrWxNotInstalled, |
| | | PingppErrWxAppNotSupported, |
| | | PingppErrCancelled, |
| | | PingppErrUnknownCancel, |
| | | PingppErrViewControllerIsNil, |
| | | PingppErrTestmodeNotifyFailed, |
| | | PingppErrChannelReturnFail, |
| | | PingppErrConnectionError, |
| | | PingppErrUnknownError, |
| | | PingppErrActivation, |
| | | PingppErrRequestTimeOut, |
| | | PingppErrProcessing, |
| | | PingppErrQqNotInstalled, |
| | | }; |
| | | |
| | | typedef NS_ENUM(NSUInteger, PingppRequestContentTypeOption) { |
| | | PingppRequestContentTypeJSON, |
| | | PingppRequestContentTypeForm |
| | | }; |
| | | |
| | | @interface PingppError : NSObject |
| | | |
| | | @property(readonly, assign) PingppErrorOption code; |
| | | |
| | | - (NSString *)getMsg; |
| | | |
| | | @end |
| | | |
| | | |
| | | typedef void (^PingppCompletion)(NSString *result, PingppError *error); |
| | | |
| | | |
| | | @interface Pingpp : NSObject |
| | | |
| | | /** |
| | | * 支付调用接口 |
| | | * |
| | | * @param charge Charge 对象(JSON 格式字符串 或 NSDictionary) |
| | | * @param viewController 银联渠道需要 |
| | | * @param scheme URL Scheme,支付宝渠道回调需要 |
| | | * @param completionBlock 支付结果回调 Block |
| | | */ |
| | | + (void)createPayment:(NSObject *)charge viewController:(UIViewController*)viewController appURLScheme:(NSString *)scheme withCompletion:(PingppCompletion)completionBlock; |
| | | |
| | | /** |
| | | * 支付调用接口(支付宝/微信) |
| | | * |
| | | * @param charge Charge 对象(JSON 格式字符串 或 NSDictionary) |
| | | * @param scheme URL Scheme,支付宝渠道回调需要 |
| | | * @param completionBlock 支付结果回调 Block |
| | | */ |
| | | + (void)createPayment:(NSObject *)charge appURLScheme:(NSString *)scheme withCompletion:(PingppCompletion)completion; |
| | | |
| | | /** |
| | | * 回调结果接口(支付宝/微信/测试模式) |
| | | * |
| | | * @param url 结果url |
| | | * @param completionBlock 支付结果回调 Block,保证跳转支付过程中,当 app 被 kill 掉时,能通过这个接口得到支付结果 |
| | | * |
| | | * @return 当无法处理 URL 或者 URL 格式不正确时,会返回 NO。 |
| | | */ |
| | | + (BOOL)handleOpenURL:(NSURL *)url withCompletion:(PingppCompletion)completion; |
| | | |
| | | /** |
| | | * 回调结果接口(支付宝/微信/测试模式) |
| | | * |
| | | * @param url 结果url |
| | | * @param sourceApplication 源应用 Bundle identifier |
| | | * @param completionBlock 支付结果回调 Block,保证跳转支付过程中,当 app 被 kill 掉时,能通过这个接口得到支付结果 |
| | | * |
| | | * @return 当无法处理 URL 或者 URL 格式不正确时,会返回 NO。 |
| | | */ |
| | | + (BOOL)handleOpenURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication withCompletion:(PingppCompletion)completion; |
| | | |
| | | /** |
| | | * 版本号 |
| | | * |
| | | * @return Pingpp SDK 版本号 |
| | | */ |
| | | + (NSString *)version; |
| | | |
| | | /** |
| | | * 设置 Debug 模式 |
| | | * |
| | | * @param enabled 是否启用 |
| | | */ |
| | | + (void)setDebugMode:(BOOL)enabled; |
| | | |
| | | /** |
| | | * web渠道支付成功后点击 "返回商户" 直接关闭支付页面 |
| | | * @enabled 是否启用 |
| | | */ |
| | | + (void)ignoreResultUrl:(BOOL)enabled; |
| | | |
| | | /** |
| | | * 设置 App ID |
| | | * @param appId Ping++ 的应用 ID,请登录 https://dashboard.pingxx.com 查看 |
| | | */ |
| | | + (void)setAppId:(NSString *)appId; |
| | | |
| | | + (NSString *)appId; |
| | | |
| | | /** |
| | | * 设置请求的 Content-Type |
| | | * @param type 可设置为 JSON 或 Form,默认为 JSON |
| | | */ |
| | | + (void)setRequestContentType:(PingppRequestContentTypeOption)type; |
| | | |
| | | + (PingppRequestContentTypeOption)requestContentType; |
| | | |
| | | /** |
| | | * 允许 https 自签证书,当你的 chargeURL 为 https 且为自签证书时使用该方法设置 |
| | | * @param allowInvalidCertificates BOOL |
| | | */ |
| | | + (void)setAllowInvalidCertificates:(BOOL)allowInvalidCertificates; |
| | | |
| | | + (BOOL)allowInvalidCertificates; |
| | | |
| | | /** |
| | | * 设置网络请求延时(使用壹收款或者应用内快捷支付时有用) |
| | | * |
| | | * @param timeout 延时时间,单位:秒 |
| | | */ |
| | | + (void)setNetworkTimeout:(NSTimeInterval)timeout; |
| | | |
| | | /** |
| | | * 设置百度钱包导航条背景 |
| | | */ |
| | | + (void)setBdWalletNavBgImage:(UIImage *)image; |
| | | |
| | | /** |
| | | * 设置百度钱包返回键Normal图像 |
| | | */ |
| | | + (void)setBdWalletNavBackNormalImage:(UIImage *)image; |
| | | |
| | | /** |
| | | * 设置百度钱包Title颜色 |
| | | */ |
| | | + (void)setBdWalletNavTitleColor:(UIColor *)color; |
| | | |
| | | /** |
| | | * 设置webView navigationItem 颜色 |
| | | */ |
| | | + (void)setWebViewItemColor:(UIColor *)itemColor buttonColor:(UIColor*)bntColor; |
| | | @end |
| | | #endif |