## 一、導入開發資源
1. 下載PaySdk 和demo包
       在壹收銀開放平臺下載PaySdk.zip資源并解壓,demo項目中包含demo案、微信和支付寶依賴的庫及封閉類;
       PaySdk分為swift版(swift 3.0+)和objc版本,請根據項目需要選擇對應的版本。
<br/>
2. iOS兼容支持
       目前支持iOS Sdk支持的iOS版本為ios 7.0+
<br/>
3. 手動導入
PaySdk依賴聚合平臺的庫和framework

       圖中紅色方框為項目需要額外導入的庫和framework,以及封裝文件;
依賴系統的Frameworks:

~~~
libc++.tbd
libz.tbd
CoreTelephony.framework
SystemConfiguration.framework
CoreMotion.framework
Security.framework
CoreLocation.framework
libsqlite3.tbd
~~~
<br/>
4. 添加 Other Linker Flag(微信支付需設置)
項目:target -> Build Settings -> Other Linker Flags 設置 “-ObjC”
<br/>
5. 添加 URL Schemes,用于微信和支付寶支付完成后回跳
項目:target -> info -> URL Types, 點擊”+”添加
1)設置微信支付:
identifier:wxpay URL Schemes: 實際微信支付的appid
2)設置支付寶:
identifier:sqpay URL Schemes: mch+mchno(mch+商戶聚合平臺分配的編號)

<br/>
6. 添加必要的權限,如https,http請求
針對 iOS 9 及以上系統的限制 http 協議的訪問,如果 App 需要訪問 http://, 則需要在 Info.plist 添加如下代碼:
~~~
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
~~~
## 二、初始化支付sdk
       AppDelegate didFinishLaunchingWithOptions中,初始化sdkAppDelegate didFinishLaunchingWithOptions中,初始化sdk
~~~
// 聚合sdk:初始化支付配置;根據應用實際配置,設置:mchNo, clientKey, wxpayAppId, alipayAppId
[SQPayApi initWithKey:mchNo
clientKey:clientKey
wxpayAppId:wxpayAppId
alipayAppId:alipayAppId];
~~~
【注:[獲取mchNo和client key](http://www.hmoore.net/book/cattong/youyisdk/preview/%E6%B3%A8%E5%86%8C%E5%BC%80%E5%8F%91%E8%80%85%E8%B4%A6%E5%8F%B7.md)】
<br/><br/>
##
## 三、發起支付請求
~~~
SQPayRequest *payRequest = [[SQPayRequest alloc] init];
payRequest.mchOrderId = mchOrderId;
payRequest.body = body;
payRequest.fee = fee;
payRequest.payChannel = PAY_CHANNEL_ALIPAY;
payRequest.notifyUrl = notifyUrl;
payRequest.attach = attach;
//調起支付頁面,回調接口代表下單成功開始調起支付,不代表用戶已經支付成功;
[SQPayApi pay:payRequest withCompletion:^(
BOOL isSuccess,
NSString *errorCode,
NSString *errorMessage) {
NSLog(@”%@:%@”, errorCode, errorMessage);
}];
~~~
<br/>
##
## 四、UIApplicationDelegate接收交易結果
       渠道為支付寶但未安裝支付寶錢包時,交易結果會在調起插件時的 Completion 中返回。渠道為微信、支付寶(安裝了支付寶錢包)、銀聯或者測試模式時,請實現 UIApplicationDelegate 的 - application:openURL:xxxx: 方法
~~~
//針對9.0以前版本,此方法9.0以后不建議使用?-?(BOOL)application:(UIApplication?*)application?????????????openURL:(NSURL?*)url???sourceApplication:(NSString?*)sourceApplication??????????annotation:(id)annotation?{??????????BOOL?canHandleURL?=?[SQPayApi?handleOpenURL:url];?????return?canHandleURL;?}
//針對9.0及以后版本
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary *)options {
BOOL canHandleURL = [SQPayApi handleOpenURL:url];
return canHandleURL;
}

~~~
<br/><br/>
##
## 五、支付頁面的ViewControler處理交易結果
       UIApplicationDelegate 接收交易數據后,通過NSNotificationCenter 通知支付頁面的ViewController來處理支付成功的業務邏輯,因此需要在ViewController中添加通知處理;
### viewDidLoad方法中添加:
~~~
//監聽支付返回結果,回調綁定至方法:appPaySuccess, 在appPaySucces實現成功后的業務邏輯處理
[[NSNotificationCenter defaultCenter]
addObserver: self
selector:@selector(appPaySuccess:)
name: APP_PAY_SUCCESS_NOTIFICATION
object:nil];
~~~
### 添加處理交易結果方法appPaySuccess:
~~~
-?(void)?appPaySuccess:(NSNotification?*)?notification?{?????NSDictionary?*userInfo?=?notification.userInfo;?????NSLog(@"Received?pay?notification:?%@",?userInfo);
}
~~~
<br/><br/>