├── README.md ├── UML ├── WechatIMG10.jpeg ├── WechatIMG11.jpeg ├── WechatIMG12.jpeg ├── WechatIMG14.jpeg ├── WechatIMG15.jpeg ├── WechatIMG16.jpeg ├── WechatIMG18.jpeg ├── WechatIMG19.jpeg ├── iTools Screen Shot 2016-09-09 23.33.32.png ├── iTools Screen Shot 2016-09-09 23.33.59.png └── iTools Screen Shot 2017-09-09 23.36.43.png ├── paySDKDemo.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ ├── jili.xcuserdatad │ │ └── UserInterfaceState.xcuserstate │ │ ├── niancheng.xcuserdatad │ │ └── UserInterfaceState.xcuserstate │ │ ├── qingshasu.xcuserdatad │ │ └── UserInterfaceState.xcuserstate │ │ └── tommy.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ ├── jili.xcuserdatad │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ └── xcschemes │ │ ├── paySDKDemo.xcscheme │ │ └── xcschememanagement.plist │ ├── niancheng.xcuserdatad │ └── xcschemes │ │ ├── AliSDKDemo.xcscheme │ │ └── xcschememanagement.plist │ └── qingshasu.xcuserdatad │ └── xcschemes │ ├── paySDKDemo.xcscheme │ └── xcschememanagement.plist └── paySDKDemo ├── APAppDelegate.h ├── APAppDelegate.m ├── APViewController.h ├── APViewController.m ├── Base.lproj └── Main.storyboard ├── Images.xcassets ├── AppIcon.appiconset │ └── Contents.json └── LaunchImage.launchimage │ ├── Contents.json │ ├── Default-375w-667h@2x.png │ ├── Default-414w-736h@3x.png │ ├── Default-568h@2x.png │ ├── Default-768w-1024h.png │ ├── Default-768w-1024h@2x.png │ └── Default@2x.png ├── en.lproj ├── InfoPlist.strings └── Main.storyboard ├── main.m ├── pay ├── include │ └── ppay │ │ ├── data.h │ │ └── ppay.h └── libppay.a ├── paySDKDemo-Info.plist └── paySDKDemo-Prefix.pch /README.md: -------------------------------------------------------------------------------- 1 | # paySDKDemo 2 | 针对棋牌游戏、虚拟货币等第三方支付无法通过苹果审核而出的SDK demo 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 工程项目注意事项: 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 后台注意事项: 21 | 22 | 以网狐荣耀版为例,在App Store审核的时候关闭第三方支付,打开IAP内购,审核通过后再打开第三方支付开关。 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 需要开通服务的请点以下链接: 31 | 微店地址:https://weidian.com/item.html?itemID=2164394489&ifr=itemdetail&wfr=c 32 | 邮箱:312098734@qq.com 33 | -------------------------------------------------------------------------------- /UML/WechatIMG10.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/UML/WechatIMG10.jpeg -------------------------------------------------------------------------------- /UML/WechatIMG11.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/UML/WechatIMG11.jpeg -------------------------------------------------------------------------------- /UML/WechatIMG12.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/UML/WechatIMG12.jpeg -------------------------------------------------------------------------------- /UML/WechatIMG14.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/UML/WechatIMG14.jpeg -------------------------------------------------------------------------------- /UML/WechatIMG15.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/UML/WechatIMG15.jpeg -------------------------------------------------------------------------------- /UML/WechatIMG16.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/UML/WechatIMG16.jpeg -------------------------------------------------------------------------------- /UML/WechatIMG18.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/UML/WechatIMG18.jpeg -------------------------------------------------------------------------------- /UML/WechatIMG19.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/UML/WechatIMG19.jpeg -------------------------------------------------------------------------------- /UML/iTools Screen Shot 2016-09-09 23.33.32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/UML/iTools Screen Shot 2016-09-09 23.33.32.png -------------------------------------------------------------------------------- /UML/iTools Screen Shot 2016-09-09 23.33.59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/UML/iTools Screen Shot 2016-09-09 23.33.59.png -------------------------------------------------------------------------------- /UML/iTools Screen Shot 2017-09-09 23.36.43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/UML/iTools Screen Shot 2017-09-09 23.36.43.png -------------------------------------------------------------------------------- /paySDKDemo.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 20902A591F615165007EBAD2 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20902A581F615165007EBAD2 /* CoreLocation.framework */; }; 11 | 20902A5B1F61516C007EBAD2 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20902A5A1F61516C007EBAD2 /* Security.framework */; }; 12 | 20902A5D1F61517C007EBAD2 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20902A5C1F61517C007EBAD2 /* MobileCoreServices.framework */; }; 13 | 20902A5F1F615191007EBAD2 /* libz.1.2.5.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 20902A5E1F615191007EBAD2 /* libz.1.2.5.tbd */; }; 14 | 20902A611F61519A007EBAD2 /* libicucore.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 20902A601F61519A007EBAD2 /* libicucore.tbd */; }; 15 | 20902A631F6151A2007EBAD2 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 20902A621F6151A2007EBAD2 /* libsqlite3.tbd */; }; 16 | 8D24E2041F61A88A003BDB08 /* libppay.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8D24E2031F61A88A003BDB08 /* libppay.a */; }; 17 | B6C74374184897ED00358DD3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6C74373184897ED00358DD3 /* Foundation.framework */; }; 18 | B6C74376184897ED00358DD3 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6C74375184897ED00358DD3 /* CoreGraphics.framework */; }; 19 | B6C74378184897ED00358DD3 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6C74377184897ED00358DD3 /* UIKit.framework */; settings = {ATTRIBUTES = (Required, ); }; }; 20 | B6C7437E184897ED00358DD3 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = B6C7437C184897ED00358DD3 /* InfoPlist.strings */; }; 21 | B6C74380184897ED00358DD3 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = B6C7437F184897ED00358DD3 /* main.m */; }; 22 | B6C74384184897ED00358DD3 /* APAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B6C74383184897ED00358DD3 /* APAppDelegate.m */; }; 23 | B6C74387184897ED00358DD3 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B6C74385184897ED00358DD3 /* Main.storyboard */; }; 24 | B6C7438A184897ED00358DD3 /* APViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B6C74389184897ED00358DD3 /* APViewController.m */; }; 25 | B6C7438C184897ED00358DD3 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B6C7438B184897ED00358DD3 /* Images.xcassets */; }; 26 | B6C7449A1848AD0A00358DD3 /* CoreTelephony.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6C744991848AD0A00358DD3 /* CoreTelephony.framework */; }; 27 | B6C7449C1848AD1800358DD3 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6C7449B1848AD1800358DD3 /* CoreText.framework */; }; 28 | B6C744A21848AD2F00358DD3 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6C744A11848AD2F00358DD3 /* QuartzCore.framework */; }; 29 | B6C744A81848AE7200358DD3 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6C744A71848AE7200358DD3 /* SystemConfiguration.framework */; }; 30 | F61927ED1BFC493B0079BECE /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = F61927EC1BFC493B0079BECE /* libc++.tbd */; }; 31 | F61927EF1BFC494A0079BECE /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = F61927EE1BFC494A0079BECE /* libz.tbd */; }; 32 | F6E425391BEB00BE009120C0 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F6E425381BEB00BE009120C0 /* CFNetwork.framework */; }; 33 | F6E4253B1BEB00D3009120C0 /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F6E4253A1BEB00D2009120C0 /* CoreMotion.framework */; }; 34 | /* End PBXBuildFile section */ 35 | 36 | /* Begin PBXFileReference section */ 37 | 20902A581F615165007EBAD2 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; 38 | 20902A5A1F61516C007EBAD2 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; 39 | 20902A5C1F61517C007EBAD2 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; }; 40 | 20902A5E1F615191007EBAD2 /* libz.1.2.5.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.1.2.5.tbd; path = usr/lib/libz.1.2.5.tbd; sourceTree = SDKROOT; }; 41 | 20902A601F61519A007EBAD2 /* libicucore.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libicucore.tbd; path = usr/lib/libicucore.tbd; sourceTree = SDKROOT; }; 42 | 20902A621F6151A2007EBAD2 /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.tbd; path = usr/lib/libsqlite3.tbd; sourceTree = SDKROOT; }; 43 | 8D24E2021F61A88A003BDB08 /* ppay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ppay.h; sourceTree = ""; }; 44 | 8D24E2031F61A88A003BDB08 /* libppay.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libppay.a; sourceTree = ""; }; 45 | B6A400421849EA7C00CFBBA9 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/Main.storyboard; sourceTree = ""; }; 46 | B6C74370184897ED00358DD3 /* paySDKDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = paySDKDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 47 | B6C74373184897ED00358DD3 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 48 | B6C74375184897ED00358DD3 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 49 | B6C74377184897ED00358DD3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 50 | B6C7437B184897ED00358DD3 /* paySDKDemo-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "paySDKDemo-Info.plist"; sourceTree = ""; }; 51 | B6C7437D184897ED00358DD3 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 52 | B6C7437F184897ED00358DD3 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 53 | B6C74381184897ED00358DD3 /* paySDKDemo-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "paySDKDemo-Prefix.pch"; sourceTree = ""; }; 54 | B6C74382184897ED00358DD3 /* APAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = APAppDelegate.h; sourceTree = ""; }; 55 | B6C74383184897ED00358DD3 /* APAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = APAppDelegate.m; sourceTree = ""; }; 56 | B6C74386184897ED00358DD3 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 57 | B6C74388184897ED00358DD3 /* APViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = APViewController.h; sourceTree = ""; }; 58 | B6C74389184897ED00358DD3 /* APViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = APViewController.m; sourceTree = ""; }; 59 | B6C7438B184897ED00358DD3 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 60 | B6C744991848AD0A00358DD3 /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = System/Library/Frameworks/CoreTelephony.framework; sourceTree = SDKROOT; }; 61 | B6C7449B1848AD1800358DD3 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; }; 62 | B6C7449F1848AD2700358DD3 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; 63 | B6C744A11848AD2F00358DD3 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; 64 | B6C744A71848AE7200358DD3 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; 65 | F61927EC1BFC493B0079BECE /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; 66 | F61927EE1BFC494A0079BECE /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; 67 | F6E425361BEB0005009120C0 /* libc++.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libc++.dylib"; path = "usr/lib/libc++.dylib"; sourceTree = SDKROOT; }; 68 | F6E425381BEB00BE009120C0 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; }; 69 | F6E4253A1BEB00D2009120C0 /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; }; 70 | /* End PBXFileReference section */ 71 | 72 | /* Begin PBXFrameworksBuildPhase section */ 73 | B6C7436D184897ED00358DD3 /* Frameworks */ = { 74 | isa = PBXFrameworksBuildPhase; 75 | buildActionMask = 2147483647; 76 | files = ( 77 | F61927ED1BFC493B0079BECE /* libc++.tbd in Frameworks */, 78 | 20902A631F6151A2007EBAD2 /* libsqlite3.tbd in Frameworks */, 79 | 20902A611F61519A007EBAD2 /* libicucore.tbd in Frameworks */, 80 | 20902A5F1F615191007EBAD2 /* libz.1.2.5.tbd in Frameworks */, 81 | 20902A5D1F61517C007EBAD2 /* MobileCoreServices.framework in Frameworks */, 82 | B6C74376184897ED00358DD3 /* CoreGraphics.framework in Frameworks */, 83 | 20902A5B1F61516C007EBAD2 /* Security.framework in Frameworks */, 84 | 20902A591F615165007EBAD2 /* CoreLocation.framework in Frameworks */, 85 | F61927EF1BFC494A0079BECE /* libz.tbd in Frameworks */, 86 | F6E4253B1BEB00D3009120C0 /* CoreMotion.framework in Frameworks */, 87 | F6E425391BEB00BE009120C0 /* CFNetwork.framework in Frameworks */, 88 | 8D24E2041F61A88A003BDB08 /* libppay.a in Frameworks */, 89 | B6C744A81848AE7200358DD3 /* SystemConfiguration.framework in Frameworks */, 90 | B6C7449A1848AD0A00358DD3 /* CoreTelephony.framework in Frameworks */, 91 | B6C744A21848AD2F00358DD3 /* QuartzCore.framework in Frameworks */, 92 | B6C7449C1848AD1800358DD3 /* CoreText.framework in Frameworks */, 93 | B6C74378184897ED00358DD3 /* UIKit.framework in Frameworks */, 94 | B6C74374184897ED00358DD3 /* Foundation.framework in Frameworks */, 95 | ); 96 | runOnlyForDeploymentPostprocessing = 0; 97 | }; 98 | /* End PBXFrameworksBuildPhase section */ 99 | 100 | /* Begin PBXGroup section */ 101 | 8D24E1FF1F61A88A003BDB08 /* pay */ = { 102 | isa = PBXGroup; 103 | children = ( 104 | 8D24E2001F61A88A003BDB08 /* include */, 105 | 8D24E2031F61A88A003BDB08 /* libppay.a */, 106 | ); 107 | path = pay; 108 | sourceTree = ""; 109 | }; 110 | 8D24E2001F61A88A003BDB08 /* include */ = { 111 | isa = PBXGroup; 112 | children = ( 113 | 8D24E2011F61A88A003BDB08 /* ppay */, 114 | ); 115 | path = include; 116 | sourceTree = ""; 117 | }; 118 | 8D24E2011F61A88A003BDB08 /* ppay */ = { 119 | isa = PBXGroup; 120 | children = ( 121 | 8D24E2021F61A88A003BDB08 /* ppay.h */, 122 | ); 123 | path = ppay; 124 | sourceTree = ""; 125 | }; 126 | B6C74367184897ED00358DD3 = { 127 | isa = PBXGroup; 128 | children = ( 129 | B6C74379184897ED00358DD3 /* paySDKDemo */, 130 | B6C74372184897ED00358DD3 /* Frameworks */, 131 | B6C74371184897ED00358DD3 /* Products */, 132 | ); 133 | sourceTree = ""; 134 | }; 135 | B6C74371184897ED00358DD3 /* Products */ = { 136 | isa = PBXGroup; 137 | children = ( 138 | B6C74370184897ED00358DD3 /* paySDKDemo.app */, 139 | ); 140 | name = Products; 141 | sourceTree = ""; 142 | }; 143 | B6C74372184897ED00358DD3 /* Frameworks */ = { 144 | isa = PBXGroup; 145 | children = ( 146 | 20902A621F6151A2007EBAD2 /* libsqlite3.tbd */, 147 | 20902A601F61519A007EBAD2 /* libicucore.tbd */, 148 | 20902A5E1F615191007EBAD2 /* libz.1.2.5.tbd */, 149 | 20902A5C1F61517C007EBAD2 /* MobileCoreServices.framework */, 150 | 20902A5A1F61516C007EBAD2 /* Security.framework */, 151 | 20902A581F615165007EBAD2 /* CoreLocation.framework */, 152 | F61927EE1BFC494A0079BECE /* libz.tbd */, 153 | F61927EC1BFC493B0079BECE /* libc++.tbd */, 154 | F6E4253A1BEB00D2009120C0 /* CoreMotion.framework */, 155 | F6E425381BEB00BE009120C0 /* CFNetwork.framework */, 156 | F6E425361BEB0005009120C0 /* libc++.dylib */, 157 | B6C744A71848AE7200358DD3 /* SystemConfiguration.framework */, 158 | B6C744A11848AD2F00358DD3 /* QuartzCore.framework */, 159 | B6C7449F1848AD2700358DD3 /* libz.dylib */, 160 | B6C7449B1848AD1800358DD3 /* CoreText.framework */, 161 | B6C744991848AD0A00358DD3 /* CoreTelephony.framework */, 162 | B6C74373184897ED00358DD3 /* Foundation.framework */, 163 | B6C74375184897ED00358DD3 /* CoreGraphics.framework */, 164 | B6C74377184897ED00358DD3 /* UIKit.framework */, 165 | ); 166 | name = Frameworks; 167 | sourceTree = ""; 168 | }; 169 | B6C74379184897ED00358DD3 /* paySDKDemo */ = { 170 | isa = PBXGroup; 171 | children = ( 172 | 8D24E1FF1F61A88A003BDB08 /* pay */, 173 | B6C74382184897ED00358DD3 /* APAppDelegate.h */, 174 | B6C74383184897ED00358DD3 /* APAppDelegate.m */, 175 | B6C74385184897ED00358DD3 /* Main.storyboard */, 176 | B6C74388184897ED00358DD3 /* APViewController.h */, 177 | B6C74389184897ED00358DD3 /* APViewController.m */, 178 | B6C7438B184897ED00358DD3 /* Images.xcassets */, 179 | B6C7437A184897ED00358DD3 /* Supporting Files */, 180 | ); 181 | path = paySDKDemo; 182 | sourceTree = ""; 183 | }; 184 | B6C7437A184897ED00358DD3 /* Supporting Files */ = { 185 | isa = PBXGroup; 186 | children = ( 187 | B6C7437B184897ED00358DD3 /* paySDKDemo-Info.plist */, 188 | B6C7437C184897ED00358DD3 /* InfoPlist.strings */, 189 | B6C7437F184897ED00358DD3 /* main.m */, 190 | B6C74381184897ED00358DD3 /* paySDKDemo-Prefix.pch */, 191 | ); 192 | name = "Supporting Files"; 193 | sourceTree = ""; 194 | }; 195 | /* End PBXGroup section */ 196 | 197 | /* Begin PBXNativeTarget section */ 198 | B6C7436F184897ED00358DD3 /* paySDKDemo */ = { 199 | isa = PBXNativeTarget; 200 | buildConfigurationList = B6C743A2184897ED00358DD3 /* Build configuration list for PBXNativeTarget "paySDKDemo" */; 201 | buildPhases = ( 202 | B6C7436C184897ED00358DD3 /* Sources */, 203 | B6C7436D184897ED00358DD3 /* Frameworks */, 204 | B6C7436E184897ED00358DD3 /* Resources */, 205 | ); 206 | buildRules = ( 207 | ); 208 | dependencies = ( 209 | ); 210 | name = paySDKDemo; 211 | productName = AliSDKDemo; 212 | productReference = B6C74370184897ED00358DD3 /* paySDKDemo.app */; 213 | productType = "com.apple.product-type.application"; 214 | }; 215 | /* End PBXNativeTarget section */ 216 | 217 | /* Begin PBXProject section */ 218 | B6C74368184897ED00358DD3 /* Project object */ = { 219 | isa = PBXProject; 220 | attributes = { 221 | CLASSPREFIX = AP; 222 | LastUpgradeCheck = 0600; 223 | ORGANIZATIONNAME = Alipay.com; 224 | TargetAttributes = { 225 | B6C7436F184897ED00358DD3 = { 226 | DevelopmentTeam = HBQKUC6DA7; 227 | ProvisioningStyle = Automatic; 228 | }; 229 | }; 230 | }; 231 | buildConfigurationList = B6C7436B184897ED00358DD3 /* Build configuration list for PBXProject "paySDKDemo" */; 232 | compatibilityVersion = "Xcode 3.2"; 233 | developmentRegion = English; 234 | hasScannedForEncodings = 0; 235 | knownRegions = ( 236 | en, 237 | Base, 238 | ); 239 | mainGroup = B6C74367184897ED00358DD3; 240 | productRefGroup = B6C74371184897ED00358DD3 /* Products */; 241 | projectDirPath = ""; 242 | projectRoot = ""; 243 | targets = ( 244 | B6C7436F184897ED00358DD3 /* paySDKDemo */, 245 | ); 246 | }; 247 | /* End PBXProject section */ 248 | 249 | /* Begin PBXResourcesBuildPhase section */ 250 | B6C7436E184897ED00358DD3 /* Resources */ = { 251 | isa = PBXResourcesBuildPhase; 252 | buildActionMask = 2147483647; 253 | files = ( 254 | B6C7438C184897ED00358DD3 /* Images.xcassets in Resources */, 255 | B6C7437E184897ED00358DD3 /* InfoPlist.strings in Resources */, 256 | B6C74387184897ED00358DD3 /* Main.storyboard in Resources */, 257 | ); 258 | runOnlyForDeploymentPostprocessing = 0; 259 | }; 260 | /* End PBXResourcesBuildPhase section */ 261 | 262 | /* Begin PBXSourcesBuildPhase section */ 263 | B6C7436C184897ED00358DD3 /* Sources */ = { 264 | isa = PBXSourcesBuildPhase; 265 | buildActionMask = 2147483647; 266 | files = ( 267 | B6C74380184897ED00358DD3 /* main.m in Sources */, 268 | B6C7438A184897ED00358DD3 /* APViewController.m in Sources */, 269 | B6C74384184897ED00358DD3 /* APAppDelegate.m in Sources */, 270 | ); 271 | runOnlyForDeploymentPostprocessing = 0; 272 | }; 273 | /* End PBXSourcesBuildPhase section */ 274 | 275 | /* Begin PBXVariantGroup section */ 276 | B6C7437C184897ED00358DD3 /* InfoPlist.strings */ = { 277 | isa = PBXVariantGroup; 278 | children = ( 279 | B6C7437D184897ED00358DD3 /* en */, 280 | ); 281 | name = InfoPlist.strings; 282 | sourceTree = ""; 283 | }; 284 | B6C74385184897ED00358DD3 /* Main.storyboard */ = { 285 | isa = PBXVariantGroup; 286 | children = ( 287 | B6C74386184897ED00358DD3 /* Base */, 288 | B6A400421849EA7C00CFBBA9 /* en */, 289 | ); 290 | name = Main.storyboard; 291 | sourceTree = ""; 292 | }; 293 | /* End PBXVariantGroup section */ 294 | 295 | /* Begin XCBuildConfiguration section */ 296 | B6C743A0184897ED00358DD3 /* Debug */ = { 297 | isa = XCBuildConfiguration; 298 | buildSettings = { 299 | ALWAYS_SEARCH_USER_PATHS = NO; 300 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 301 | CLANG_CXX_LIBRARY = "libc++"; 302 | CLANG_ENABLE_MODULES = YES; 303 | CLANG_ENABLE_OBJC_ARC = YES; 304 | CLANG_WARN_BOOL_CONVERSION = YES; 305 | CLANG_WARN_CONSTANT_CONVERSION = YES; 306 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 307 | CLANG_WARN_EMPTY_BODY = YES; 308 | CLANG_WARN_ENUM_CONVERSION = YES; 309 | CLANG_WARN_INT_CONVERSION = YES; 310 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 311 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 312 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 313 | COPY_PHASE_STRIP = NO; 314 | GCC_C_LANGUAGE_STANDARD = gnu99; 315 | GCC_DYNAMIC_NO_PIC = NO; 316 | GCC_OPTIMIZATION_LEVEL = 0; 317 | GCC_PREPROCESSOR_DEFINITIONS = ( 318 | "DEBUG=1", 319 | "$(inherited)", 320 | ); 321 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 322 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 323 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 324 | GCC_WARN_UNDECLARED_SELECTOR = YES; 325 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 326 | GCC_WARN_UNUSED_FUNCTION = YES; 327 | GCC_WARN_UNUSED_VARIABLE = YES; 328 | IPHONEOS_DEPLOYMENT_TARGET = 5.0; 329 | ONLY_ACTIVE_ARCH = YES; 330 | SDKROOT = iphoneos; 331 | }; 332 | name = Debug; 333 | }; 334 | B6C743A1184897ED00358DD3 /* Release */ = { 335 | isa = XCBuildConfiguration; 336 | buildSettings = { 337 | ALWAYS_SEARCH_USER_PATHS = NO; 338 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 339 | CLANG_CXX_LIBRARY = "libc++"; 340 | CLANG_ENABLE_MODULES = YES; 341 | CLANG_ENABLE_OBJC_ARC = YES; 342 | CLANG_WARN_BOOL_CONVERSION = YES; 343 | CLANG_WARN_CONSTANT_CONVERSION = YES; 344 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 345 | CLANG_WARN_EMPTY_BODY = YES; 346 | CLANG_WARN_ENUM_CONVERSION = YES; 347 | CLANG_WARN_INT_CONVERSION = YES; 348 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 349 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 350 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 351 | COPY_PHASE_STRIP = YES; 352 | ENABLE_NS_ASSERTIONS = NO; 353 | GCC_C_LANGUAGE_STANDARD = gnu99; 354 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 355 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 356 | GCC_WARN_UNDECLARED_SELECTOR = YES; 357 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 358 | GCC_WARN_UNUSED_FUNCTION = YES; 359 | GCC_WARN_UNUSED_VARIABLE = YES; 360 | IPHONEOS_DEPLOYMENT_TARGET = 5.0; 361 | SDKROOT = iphoneos; 362 | VALIDATE_PRODUCT = YES; 363 | }; 364 | name = Release; 365 | }; 366 | B6C743A3184897ED00358DD3 /* Debug */ = { 367 | isa = XCBuildConfiguration; 368 | buildSettings = { 369 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 370 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 371 | CODE_SIGN_IDENTITY = "iPhone Developer"; 372 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 373 | DEPLOYMENT_POSTPROCESSING = NO; 374 | DEVELOPMENT_TEAM = HBQKUC6DA7; 375 | ENABLE_BITCODE = NO; 376 | FRAMEWORK_SEARCH_PATHS = "$(inherited)"; 377 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 378 | GCC_PREFIX_HEADER = "paySDKDemo/paySDKDemo-Prefix.pch"; 379 | HEADER_SEARCH_PATHS = ""; 380 | INFOPLIST_FILE = "paySDKDemo/paySDKDemo-Info.plist"; 381 | IPHONEOS_DEPLOYMENT_TARGET = 6.0; 382 | LIBRARY_SEARCH_PATHS = ( 383 | "$(inherited)", 384 | "$(PROJECT_DIR)/paySDKDemo/pay", 385 | ); 386 | ONLY_ACTIVE_ARCH = NO; 387 | OTHER_LDFLAGS = "-ObjC"; 388 | PRODUCT_BUNDLE_IDENTIFIER = com.pay.paySDKDemo; 389 | PRODUCT_NAME = "$(TARGET_NAME)"; 390 | PROVISIONING_PROFILE = ""; 391 | PROVISIONING_PROFILE_SPECIFIER = ""; 392 | VALID_ARCHS = "arm64 armv7"; 393 | WRAPPER_EXTENSION = app; 394 | }; 395 | name = Debug; 396 | }; 397 | B6C743A4184897ED00358DD3 /* Release */ = { 398 | isa = XCBuildConfiguration; 399 | buildSettings = { 400 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 401 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 402 | CODE_SIGN_IDENTITY = "iPhone Developer"; 403 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 404 | DEPLOYMENT_POSTPROCESSING = NO; 405 | DEVELOPMENT_TEAM = HBQKUC6DA7; 406 | ENABLE_BITCODE = NO; 407 | FRAMEWORK_SEARCH_PATHS = "$(inherited)"; 408 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 409 | GCC_PREFIX_HEADER = "paySDKDemo/paySDKDemo-Prefix.pch"; 410 | HEADER_SEARCH_PATHS = ""; 411 | INFOPLIST_FILE = "paySDKDemo/paySDKDemo-Info.plist"; 412 | IPHONEOS_DEPLOYMENT_TARGET = 6.0; 413 | LIBRARY_SEARCH_PATHS = ( 414 | "$(inherited)", 415 | "$(PROJECT_DIR)/paySDKDemo/pay", 416 | ); 417 | ONLY_ACTIVE_ARCH = YES; 418 | OTHER_LDFLAGS = "-ObjC"; 419 | PRODUCT_BUNDLE_IDENTIFIER = com.pay.paySDKDemo; 420 | PRODUCT_NAME = "$(TARGET_NAME)"; 421 | PROVISIONING_PROFILE = ""; 422 | PROVISIONING_PROFILE_SPECIFIER = ""; 423 | VALID_ARCHS = "arm64 armv7"; 424 | WRAPPER_EXTENSION = app; 425 | }; 426 | name = Release; 427 | }; 428 | /* End XCBuildConfiguration section */ 429 | 430 | /* Begin XCConfigurationList section */ 431 | B6C7436B184897ED00358DD3 /* Build configuration list for PBXProject "paySDKDemo" */ = { 432 | isa = XCConfigurationList; 433 | buildConfigurations = ( 434 | B6C743A0184897ED00358DD3 /* Debug */, 435 | B6C743A1184897ED00358DD3 /* Release */, 436 | ); 437 | defaultConfigurationIsVisible = 0; 438 | defaultConfigurationName = Release; 439 | }; 440 | B6C743A2184897ED00358DD3 /* Build configuration list for PBXNativeTarget "paySDKDemo" */ = { 441 | isa = XCConfigurationList; 442 | buildConfigurations = ( 443 | B6C743A3184897ED00358DD3 /* Debug */, 444 | B6C743A4184897ED00358DD3 /* Release */, 445 | ); 446 | defaultConfigurationIsVisible = 0; 447 | defaultConfigurationName = Release; 448 | }; 449 | /* End XCConfigurationList section */ 450 | }; 451 | rootObject = B6C74368184897ED00358DD3 /* Project object */; 452 | } 453 | -------------------------------------------------------------------------------- /paySDKDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /paySDKDemo.xcodeproj/project.xcworkspace/xcuserdata/jili.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/paySDKDemo.xcodeproj/project.xcworkspace/xcuserdata/jili.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /paySDKDemo.xcodeproj/project.xcworkspace/xcuserdata/niancheng.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/paySDKDemo.xcodeproj/project.xcworkspace/xcuserdata/niancheng.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /paySDKDemo.xcodeproj/project.xcworkspace/xcuserdata/qingshasu.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/paySDKDemo.xcodeproj/project.xcworkspace/xcuserdata/qingshasu.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /paySDKDemo.xcodeproj/project.xcworkspace/xcuserdata/tommy.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/paySDKDemo.xcodeproj/project.xcworkspace/xcuserdata/tommy.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /paySDKDemo.xcodeproj/xcuserdata/jili.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /paySDKDemo.xcodeproj/xcuserdata/jili.xcuserdatad/xcschemes/paySDKDemo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /paySDKDemo.xcodeproj/xcuserdata/jili.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | paySDKDemo.xcscheme 8 | 9 | orderHint 10 | 1 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | B6C7436F184897ED00358DD3 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /paySDKDemo.xcodeproj/xcuserdata/niancheng.xcuserdatad/xcschemes/AliSDKDemo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /paySDKDemo.xcodeproj/xcuserdata/niancheng.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | AliSDKDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | B6C7436F184897ED00358DD3 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /paySDKDemo.xcodeproj/xcuserdata/qingshasu.xcuserdatad/xcschemes/paySDKDemo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /paySDKDemo.xcodeproj/xcuserdata/qingshasu.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | paySDKDemo.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | B6C7436F184897ED00358DD3 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /paySDKDemo/APAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // APAppDelegate.h 3 | // AliSDKDemo 4 | // 5 | // Created by 方彬 on 11/29/13. 6 | // Copyright (c) 2013 Alipay.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface APAppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /paySDKDemo/APAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // APAppDelegate.m 3 | // AliSDKDemo 4 | // 5 | // Created by 方彬 on 11/29/13. 6 | // Copyright (c) 2013 Alipay.com. All rights reserved. 7 | // 8 | 9 | #import "APAppDelegate.h" 10 | #import "ppay.h" 11 | 12 | @implementation APAppDelegate{ 13 | 14 | } 15 | 16 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 17 | { 18 | // Override point for customization after application launch. 19 | return YES; 20 | } 21 | 22 | - (void)applicationWillResignActive:(UIApplication *)application 23 | { 24 | // 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. 25 | // 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. 26 | } 27 | 28 | - (void)applicationDidEnterBackground:(UIApplication *)application 29 | { 30 | // 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. 31 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 32 | } 33 | 34 | - (void)applicationWillEnterForeground:(UIApplication *)application 35 | { 36 | // 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. 37 | } 38 | 39 | - (void)applicationDidBecomeActive:(UIApplication *)application 40 | { 41 | // 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. 42 | } 43 | 44 | - (void)applicationWillTerminate:(UIApplication *)application 45 | { 46 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 47 | } 48 | 49 | - (BOOL)application:(UIApplication *)application 50 | openURL:(NSURL *)url 51 | sourceApplication:(NSString *)sourceApplication 52 | annotation:(id)annotation { 53 | [[PPay getInstance] handleOpenURL:url]; 54 | 55 | return YES; 56 | } 57 | 58 | // NOTE: 9.0以后使用新API接口 59 | - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options 60 | { 61 | [[PPay getInstance] handleOpenURL:url]; 62 | return YES; 63 | } 64 | 65 | @end 66 | -------------------------------------------------------------------------------- /paySDKDemo/APViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // APViewController.h 3 | // AliSDKDemo 4 | // 5 | // Created by 亦澄 on 16-8-12. 6 | // Copyright (c) 2016年 Alipay. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ppay.h" 11 | @interface APViewController : UIViewController 12 | 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /paySDKDemo/APViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // APViewController.m 3 | // AliSDKDemo 4 | // 5 | // Created by 亦澄 on 16-8-12. 6 | // Copyright (c) 2016年 Alipay. All rights reserved. 7 | // 8 | 9 | #import "APViewController.h" 10 | 11 | 12 | 13 | #define ALI_DEMO_BUTTON_WIDTH (([UIScreen mainScreen].bounds.size.width) - 40.0f) 14 | #define ALI_DEMO_BUTTON_HEIGHT (60.0f) 15 | #define ALI_DEMO_BUTTON_GAP (30.0f) 16 | 17 | 18 | #define ALI_DEMO_INFO_HEIGHT (200.0f) 19 | 20 | 21 | 22 | @implementation APViewController 23 | { 24 | PPay *_ppay ; 25 | } 26 | 27 | - (void)viewDidLoad 28 | { 29 | [super viewDidLoad]; 30 | _ppay = [PPay getInstance]; 31 | [self generateButtons]; 32 | } 33 | 34 | 35 | #pragma mark - 36 | #pragma mark ==============产生随机订单号============== 37 | 38 | - (void)generateButtons 39 | { 40 | // NOTE: 支付按钮,模拟支付流程 41 | CGFloat originalPosX = 20.0f; 42 | CGFloat originalPosY = 100.0f; 43 | UIButton* payButton = [[UIButton alloc]initWithFrame:CGRectMake(originalPosX, originalPosY, ALI_DEMO_BUTTON_WIDTH, ALI_DEMO_BUTTON_HEIGHT)]; 44 | payButton.backgroundColor = [UIColor colorWithRed:81.0f/255.0f green:141.0f/255.0f blue:229.0f/255.0f alpha:1.0f]; 45 | payButton.layer.masksToBounds = YES; 46 | payButton.layer.cornerRadius = 4.0f; 47 | [payButton setTitle:@"微信支付Demo" forState:UIControlStateNormal]; 48 | [payButton addTarget:self action:@selector(getwx) forControlEvents:UIControlEventTouchUpInside]; 49 | [self.view addSubview:payButton]; 50 | 51 | // NOTE: 授权按钮,模拟授权流程 52 | originalPosY += (ALI_DEMO_BUTTON_HEIGHT + ALI_DEMO_BUTTON_GAP); 53 | UIButton* authButton = [[UIButton alloc]initWithFrame:CGRectMake(originalPosX, originalPosY, ALI_DEMO_BUTTON_WIDTH, ALI_DEMO_BUTTON_HEIGHT)]; 54 | authButton.backgroundColor = [UIColor colorWithRed:81.0f/255.0f green:141.0f/255.0f blue:229.0f/255.0f alpha:1.0f]; 55 | authButton.layer.masksToBounds = YES; 56 | authButton.layer.cornerRadius = 4.0f; 57 | [authButton setTitle:@"支付宝支付Demo" forState:UIControlStateNormal]; 58 | [authButton addTarget:self action:@selector(getzfb) forControlEvents:UIControlEventTouchUpInside]; 59 | [self.view addSubview:authButton]; 60 | 61 | 62 | 63 | } 64 | 65 | -(void)getwx{ 66 | //1.确定请求路径 67 | NSURL *url = [NSURL URLWithString:@"http://game123.2ww.com/WS/MobileInterface.ashx?action=CreatPayOrderID&gameid=102199&amount=30&paytype=wx&appid=5"]; 68 | //2.获得会话对象 69 | NSURLSession *session = [NSURLSession sharedSession]; 70 | 71 | NSURLSessionDataTask *dataTask = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { 72 | //5.解析数据 73 | NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]; 74 | NSLog(@"%@",dict); 75 | NSDictionary *da = [dict objectForKey:@"data"]; 76 | NSString *OrderID = [da objectForKey:@"OrderID"]; 77 | NSString *PayPackage = [da objectForKey:@"PayPackage"]; 78 | NSData *nsdata = [PayPackage dataUsingEncoding:NSUTF8StringEncoding]; 79 | id jsonObject = [NSJSONSerialization JSONObjectWithData:nsdata 80 | options:NSJSONReadingAllowFragments 81 | error:nil]; 82 | NSDictionary *info = (NSDictionary*)jsonObject; 83 | BOOL bRes = FALSE; 84 | NSString *appid = [info objectForKey:@"appid"]; 85 | bRes = (appid != nil); 86 | NSString *partnerId = [info objectForKey:@"partnerid"]; 87 | bRes = (partnerId != nil); 88 | NSString *prepayId = [info objectForKey:@"prepayid"]; 89 | bRes = (prepayId != nil); 90 | NSString *packageValue = [info objectForKey:@"package"]; 91 | bRes = (packageValue != nil); 92 | NSString *nonceStr = [info objectForKey:@"noncestr"]; 93 | bRes = (nonceStr != nil); 94 | NSString *timeStamp = [info objectForKey:@"timestamp"]; 95 | bRes = (timeStamp != nil); 96 | NSString *sign = [info objectForKey:@"sign"]; 97 | bRes = (sign != nil); 98 | if (FALSE == bRes) 99 | { 100 | NSLog(@"%@",@"订单数据解析失败"); 101 | return; 102 | } 103 | WXOrder *wecatconfig = [WXOrder new]; 104 | wecatconfig.openID = appid; 105 | wecatconfig.partnerId = partnerId; 106 | wecatconfig.prepayId = prepayId; 107 | wecatconfig.nonceStr = nonceStr; 108 | wecatconfig.timeStamp = timeStamp; 109 | wecatconfig.package = packageValue; 110 | wecatconfig.sign = sign; 111 | [_ppay wxPay:PPAY_WECHAT delegate:self payparam:wecatconfig]; 112 | }]; 113 | //4.执行任务 114 | [dataTask resume]; 115 | } 116 | 117 | -(void)getzfb{ 118 | //1.确定请求路径 119 | NSURL *url = [NSURL URLWithString:@"http://game123.2ww.com/WS/MobileInterface.ashx?action=CreatPayOrderID&gameid=102199&amount=30&paytype=zfb&appid=5"]; 120 | //2.获得会话对象 121 | NSURLSession *session = [NSURLSession sharedSession]; 122 | 123 | NSURLSessionDataTask *dataTask = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { 124 | //5.解析数据 125 | NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]; 126 | 127 | NSLog(@"%@",dict); 128 | NSDictionary *da = [dict objectForKey:@"data"]; 129 | NSString *OrderID = [da objectForKey:@"OrderID"]; 130 | ZFBOrder *alpay = [ZFBOrder new]; 131 | alpay.AlipayPartnerID = @"2017080708079550"; 132 | // alpay.AlipaySeller = _alipay.AlipaySeller; 133 | alpay.AlipayPrivate=@"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCHncMtWXq17nnT4k6Q8pdr5TMTZqMZ3VuL3ifVQ6nSNTu++ADAogmvkHfST1XmpHeHaUWMKJHAhD5hZJwS7G8tIeSA2vbgDA3UEzWzcJjS1KrVd5RmdcJbJqSZTpeuJyGbXtx2lLdV5ajt77y0uDntdgvm1KaswP7AaxTGEp8A630dqMKp0XcrUgiy6sAVB/wOQz3lruuRSZlCCDJLXOAMgfjB+sEFw/YzSfH9SBMSfBmhSuWTg/BpxGvXBfFx4ABnUQsg7GeYeMI//poPE2Cs7HC+CfRkdHSGKWb1dj3dS2PnYBZJi2bp52JlGLAq7kFYmSOsmaPZZsyWrMQvBXxDAgMBAAECggEARGUQNiLWfEKVNoL/1KJEM6oYJESzJSw6K0QTGr9ROi6Wvy0cVApkkCJwC6TvUa7IiYZSCOm8+Da5ryyqefC78SsSrtm/gCcUIky93I2AxXNz5My2DyZ8qrPGd3rnjHE3xcAFt9gwziVRGQ67QPlYXaYXQockuCNtV2WpyGtDvZZKCf2dBj6QEwhUBCIcy74rj28M2Kqw6UhetyPSp4DaA3RI1emn6qoTTo6nx+QpvmyTlZo1R7fzrBZtpOE9L35X/Qp20Oj95FKPaBrw1upq7T4jcMeAEVEvMUHU34pZFExlnVznKQyYIcGCg8Vlw2n12COm17DMYmhd558EHxwA4QKBgQDD4qcvcu8pcNqP/Nx3GeR5EGSMGApnCUxzMGxSAeiC7iB9x49ESJNBFqHC8v+75Z86wjRv8cZQKZXNaaIWKhSZQgf1ZyoRopYK2JL774Mu+C5kGst0KhL1ofe3kgw/5KTwd1I8YZfHmQaKMZSZqHPZyezgRt2M8Vy2cgv8Lq78vwKBgQCxPC+m82DoMJCix8qtITkUh7+OVOlQuvl2QK5bsP+dH8HUnyEOOcBadIlG8CpmVgzYaRC8kIFnFu3ydFasZliO/hscBQutoL630SxIwULpfaYoSBLnRCFcLFePGFIpmoxJqTn2+4iqQ+JkOkVGzbQNIxf2ebh2zNzh0MEI8/mtfQKBgHDoILOBzQaW7PPXrP/dZcq+PyZc6QoQ2wb+H0F5phppxUKalyKlrnLy55Rl2i/kn84PiIgJ1OP5xEXdIDckVDEuVUYHC8GUdGWWBcq/eF7HYH4Ez8aKRdldXVprDTJ6yPNt43G4UvMSaimXgG69IOGkuStgzWzi5iynOe9GvUgjAoGBAIKlsSLKSWcfVZ8I09hnoyIFJymOYibGjVmkOGMSyHpUjJdlbgKEg8yqFv+Zzkd9qx5j5Jh7lUge2Oxe4f1XvHQ70FQJTCCDW9M4eAJxpBdmLfOHnZeo20aM0UaEURyl9j/eZQIxTP7l556mbabRv6XndqST+Wxpe3FiZslov2YpAoGAQl7xE6DyBBQ/WLFAx90FwcV+twOMqTEGb1eX6afczN2XHhotXXMZgrePbvlP9/2V2M4ATQyg7IWjGcndasOHKNxBhRWKskRSn6nAIcF6BZtyq2Vpwjq8SjkO9KsDrI3hYl6z7YfdMkpF3zU1p0bPXYeAr7vZeaahkZr6lb/VfcQ="; 134 | alpay.AlipayNotifyUrl = @"http://game123.2ww.com/Pay/ZFB/notify_url.aspx"; 135 | alpay.sOrderId = OrderID; 136 | alpay.sProductName = @"31钻石"; 137 | alpay.fPrice = 3.0; 138 | [_ppay zfbPay:PPAY_ALIPAY delegate:self payparam:alpay]; 139 | }]; 140 | //4.执行任务 141 | [dataTask resume]; 142 | } 143 | 144 | #pragma mark - 回调 145 | -(void) onPPaySuccess:(PlatformType)plat backMsg:(NSString *)msg{ 146 | NSLog(@"支付成功回调--%@",msg); 147 | } 148 | -(void) onPPayFail:(PlatformType)plat backMsg:(NSString *)msg{ 149 | NSLog(@"支付失败回调--%@",msg); 150 | } 151 | 152 | @end 153 | -------------------------------------------------------------------------------- /paySDKDemo/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /paySDKDemo/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | } 43 | ], 44 | "info" : { 45 | "version" : 1, 46 | "author" : "xcode" 47 | } 48 | } -------------------------------------------------------------------------------- /paySDKDemo/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "extent" : "full-screen", 5 | "idiom" : "iphone", 6 | "subtype" : "736h", 7 | "filename" : "Default-414w-736h@3x.png", 8 | "minimum-system-version" : "8.0", 9 | "orientation" : "portrait", 10 | "scale" : "3x" 11 | }, 12 | { 13 | "extent" : "full-screen", 14 | "idiom" : "iphone", 15 | "subtype" : "667h", 16 | "filename" : "Default-375w-667h@2x.png", 17 | "minimum-system-version" : "8.0", 18 | "orientation" : "portrait", 19 | "scale" : "2x" 20 | }, 21 | { 22 | "orientation" : "portrait", 23 | "idiom" : "iphone", 24 | "extent" : "full-screen", 25 | "minimum-system-version" : "7.0", 26 | "filename" : "Default@2x.png", 27 | "scale" : "2x" 28 | }, 29 | { 30 | "extent" : "full-screen", 31 | "idiom" : "iphone", 32 | "subtype" : "retina4", 33 | "filename" : "Default-568h@2x.png", 34 | "minimum-system-version" : "7.0", 35 | "orientation" : "portrait", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "orientation" : "portrait", 40 | "idiom" : "ipad", 41 | "extent" : "full-screen", 42 | "minimum-system-version" : "7.0", 43 | "filename" : "Default-768w-1024h.png", 44 | "scale" : "1x" 45 | }, 46 | { 47 | "orientation" : "portrait", 48 | "idiom" : "ipad", 49 | "extent" : "full-screen", 50 | "minimum-system-version" : "7.0", 51 | "filename" : "Default-768w-1024h@2x.png", 52 | "scale" : "2x" 53 | } 54 | ], 55 | "info" : { 56 | "version" : 1, 57 | "author" : "xcode" 58 | } 59 | } -------------------------------------------------------------------------------- /paySDKDemo/Images.xcassets/LaunchImage.launchimage/Default-375w-667h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/paySDKDemo/Images.xcassets/LaunchImage.launchimage/Default-375w-667h@2x.png -------------------------------------------------------------------------------- /paySDKDemo/Images.xcassets/LaunchImage.launchimage/Default-414w-736h@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/paySDKDemo/Images.xcassets/LaunchImage.launchimage/Default-414w-736h@3x.png -------------------------------------------------------------------------------- /paySDKDemo/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/paySDKDemo/Images.xcassets/LaunchImage.launchimage/Default-568h@2x.png -------------------------------------------------------------------------------- /paySDKDemo/Images.xcassets/LaunchImage.launchimage/Default-768w-1024h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/paySDKDemo/Images.xcassets/LaunchImage.launchimage/Default-768w-1024h.png -------------------------------------------------------------------------------- /paySDKDemo/Images.xcassets/LaunchImage.launchimage/Default-768w-1024h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/paySDKDemo/Images.xcassets/LaunchImage.launchimage/Default-768w-1024h@2x.png -------------------------------------------------------------------------------- /paySDKDemo/Images.xcassets/LaunchImage.launchimage/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/paySDKDemo/Images.xcassets/LaunchImage.launchimage/Default@2x.png -------------------------------------------------------------------------------- /paySDKDemo/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /paySDKDemo/en.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /paySDKDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // AliSDKDemo 4 | // 5 | // Created by 方彬 on 11/29/13. 6 | // Copyright (c) 2013 Alipay.com. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "APAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([APAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /paySDKDemo/pay/include/ppay/data.h: -------------------------------------------------------------------------------- 1 | // 2 | // data.h 3 | // paySDKDemo 4 | // 5 | // Created by qingshasu on 17/9/8. 6 | // Copyright © 2017年 Alipay.com. All rights reserved. 7 | // 8 | 9 | #ifndef data_h 10 | #define data_h 11 | @interface WXOrder : NSObject 12 | 13 | /** 由用户微信号和AppID组成的唯一标识,发送请求时第三方程序必须填写,用于校验微信用户是否换号登录*/ 14 | @property (nonatomic, copy) NSString* openID; 15 | /** 商家向财付通申请的商家id */ 16 | @property (nonatomic, copy) NSString *partnerId; 17 | /** 预支付订单 */ 18 | @property (nonatomic, copy) NSString *prepayId; 19 | /** 随机串,防重发 */ 20 | @property (nonatomic, copy) NSString *nonceStr; 21 | /** 时间戳,防重发 */ 22 | @property (nonatomic, copy) NSString *timeStamp; 23 | /** 商家根据财付通文档填写的数据和签名 */ 24 | @property (nonatomic, copy) NSString *package; 25 | /** 商家根据微信开放平台文档对数据做的签名 */ 26 | @property (nonatomic, copy) NSString *sign; 27 | @end 28 | 29 | 30 | //ZFB配置 31 | @interface ZFBOrder : NSObject 32 | //合作者身份id 33 | @property (nonatomic, copy) NSString* AlipayPartnerID; 34 | //收款ZFB账号 35 | @property (nonatomic, copy) NSString* AlipaySeller; 36 | //商户私钥 37 | @property (nonatomic, copy) NSString* AlipayPrivate; 38 | //验证地址 39 | @property (nonatomic, copy) NSString* AlipayNotifyUrl; 40 | //订单ID(由商家自行制定) 41 | @property (nonatomic, copy) NSString *sOrderId; 42 | //订单名称(由商家自行制定) 43 | @property (nonatomic, copy) NSString *sProductName; 44 | //订单价格(由商家自行制定) 45 | @property (nonatomic, assign) float fPrice; 46 | @end 47 | 48 | 49 | #endif /* data_h */ 50 | -------------------------------------------------------------------------------- /paySDKDemo/pay/include/ppay/ppay.h: -------------------------------------------------------------------------------- 1 | // 2 | // PPay.h 3 | // GloryProject 4 | // 5 | // Created by zhong on 16/9/8. 6 | // 7 | // 8 | 9 | #ifndef ppay_h 10 | #define ppay_h 11 | 12 | #import 13 | 14 | 15 | 16 | 17 | ///////////////////////////////////////////////////////////////////////////// 18 | typedef NS_ENUM(NSUInteger,PlatformType) 19 | { 20 | PPAY_WECHAT = 0,// WX 21 | PPAY_ALIPAY = 1,// ZFB 22 | 23 | }; 24 | 25 | 26 | //WX配置 27 | @interface WXOrder : NSObject 28 | 29 | /** 由用户微信号和AppID组成的唯一标识,发送请求时第三方程序必须填写,用于校验微信用户是否换号登录*/ 30 | @property (nonatomic, copy) NSString* openID; 31 | /** 商家向财付通申请的商家id */ 32 | @property (nonatomic, copy) NSString *partnerId; 33 | /** 预支付订单 */ 34 | @property (nonatomic, copy) NSString *prepayId; 35 | /** 随机串,防重发 */ 36 | @property (nonatomic, copy) NSString *nonceStr; 37 | /** 时间戳,防重发 */ 38 | @property (nonatomic, copy) NSString *timeStamp; 39 | /** 商家根据财付通文档填写的数据和签名 */ 40 | @property (nonatomic, copy) NSString *package; 41 | /** 商家根据微信开放平台文档对数据做的签名 */ 42 | @property (nonatomic, copy) NSString *sign; 43 | @end 44 | 45 | 46 | //ZFB配置 47 | @interface ZFBOrder : NSObject 48 | //合作者身份id 49 | @property (nonatomic, copy) NSString* AlipayPartnerID; 50 | //收款ZFB账号 51 | @property (nonatomic, copy) NSString* AlipaySeller; 52 | //商户私钥 53 | @property (nonatomic, copy) NSString* AlipayPrivate; 54 | //验证地址 55 | @property (nonatomic, copy) NSString* AlipayNotifyUrl; 56 | //订单ID(由商家自行制定) 57 | @property (nonatomic, copy) NSString *sOrderId; 58 | //订单名称(由商家自行制定) 59 | @property (nonatomic, copy) NSString *sProductName; 60 | //订单价格(由商家自行制定) 61 | @property (nonatomic, assign) float fPrice; 62 | @end 63 | 64 | 65 | //ZF回调 66 | @protocol PPayDelegate 67 | 68 | - (void) onPPaySuccess:(PlatformType)plat backMsg:(NSString *)msg; 69 | - (void) onPPayFail:(PlatformType)plat backMsg:(NSString *)msg; 70 | - (void) onPPayNotify:(PlatformType)plat backMsg:(NSString *)msg; 71 | 72 | @end 73 | 74 | @interface PPay: NSObject 75 | 76 | 77 | /** 78 | * 创建ZF单例服务 79 | * 80 | * @return 返回单例对象 81 | */ 82 | 83 | + (PPay*) getInstance; 84 | 85 | 86 | 87 | /** 88 | 89 | Deprecated API 90 | 91 | 处理app的URL方法 92 | 93 | @param url 传入的url 94 | 95 | */ 96 | 97 | - (BOOL) handleOpenURL:(NSURL *)url; 98 | 99 | 100 | /** 101 | 102 | WXZF API 103 | 104 | 105 | @param delegate 传入的delegate 106 | @param payparam 传入的结构体 107 | 108 | */ 109 | - (void) wxPay:(PlatformType)plat delegate:(id)delegate payparam:(WXOrder*) payparam; 110 | 111 | /** 112 | 113 | ZFB ZF API 114 | 115 | 116 | @param delegate 传入的delegate 117 | @param payparam 传入的结构体 118 | 119 | */ 120 | - (void) zfbPay:(PlatformType)plat delegate:(id)delegate payparam:(ZFBOrder*) payparam; 121 | 122 | @end 123 | #endif /* PPay.h */ 124 | -------------------------------------------------------------------------------- /paySDKDemo/pay/libppay.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serinder/paySDKDemo/2a86f858b6a26921928255cd404ce5f051a8cc06/paySDKDemo/pay/libppay.a -------------------------------------------------------------------------------- /paySDKDemo/paySDKDemo-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleURLTypes 24 | 25 | 26 | CFBundleTypeRole 27 | Editor 28 | CFBundleURLName 29 | zfb 30 | CFBundleURLSchemes 31 | 32 | com.pay.paySDKDemo 33 | 34 | 35 | 36 | CFBundleTypeRole 37 | Editor 38 | CFBundleURLName 39 | wx 40 | CFBundleURLSchemes 41 | 42 | wx9fd40efd01687278 43 | 44 | 45 | 46 | CFBundleVersion 47 | 1.0 48 | LSApplicationQueriesSchemes 49 | 50 | JLZLAliPay 51 | wechat 52 | weixin 53 | alipay 54 | alipayshare 55 | alipayqr 56 | weixin 57 | 58 | LSRequiresIPhoneOS 59 | 60 | NSAppTransportSecurity 61 | 62 | NSAllowsArbitraryLoads 63 | 64 | 65 | UIMainStoryboardFile 66 | Main 67 | UIRequiredDeviceCapabilities 68 | 69 | armv7 70 | 71 | UISupportedInterfaceOrientations 72 | 73 | UIInterfaceOrientationPortrait 74 | UIInterfaceOrientationLandscapeLeft 75 | UIInterfaceOrientationLandscapeRight 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /paySDKDemo/paySDKDemo-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | 8 | 9 | #ifdef __OBJC__ 10 | #import 11 | #import 12 | #endif 13 | --------------------------------------------------------------------------------