前提條件:
注意
流程簡述
步驟以及代碼
接下來說說主要的步驟吧(比比叨這麼久終於說正事了,請不要打我麼麼噠~)
H92X9S)[email protected]
2.在AppDelegate 的導入頭文件 #import "WXApi.h" 掛上代理 WXApiDelegate
3.在targets的info中添加 urltypes添加一個在 identifier自己起一個名稱(最好軟件英文名字) 在 URL schemes 中寫下APPID
4.觸發支付
觸發支付,就要對自己的訂單號價格等進行加密 在這裡就可以分成兩種加密 ,一種是在APP端進行加密,第二種是在服務端進行加密。一般使用的在服務端加密比較安全。一個個進行說明。
4.1 服務端進行加密
服務端加密我們不需要知道具體加密怎麼進行的。(在底下我會給你說清楚的啦~)我們只是需要將所需參數傳過去 我是用的AFN
4.2 APP端進行加密
這種方法可以自己先進行測試 ,或者為了縮短工期自己進行所有工作。(看起來好像好厲害的樣子啊 )
支付界面引入頭文件
#import "ZQPay.h"
在觸發支付的方法中調用
[ZQPay payWXWithOrderName:@"訂單名字(不是訂單詳情)" price:@"訂單價格(單位為分)" tradeNo:@"訂單號" attach:@"訂單詳情"]
調用支付成功!結束 (我說了“結束”一定會打我的吧,原理步驟都不說 這太敷衍了 哈哈哈 ,你們來打我啊)
繼續正題!
傳入參數我具體做了一些什麼呢現在我就說說 步驟了啊(我不會就這樣輕易的狗帶)。
4.2.1 獲取預支付Id ,將所需要參數封裝成字典
4.2.2添加sign加密串 形成XMl格式字符串 paras 為封裝的字典(第一次加密)
4.2.4 將獲取的預支付id重新加密獲取新的sign 封裝成字典
時間戳為新的時間戳 隨機數是通過時間戳MD5加密獲取的
//支付回調
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [WXApi handleOpenURL:url delegate:self];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [WXApi handleOpenURL:url delegate:self];
}
支付成功以後通過通知告知用戶支付情況
5.1 支付界面接收成功通知告知用戶(我這裡是跳轉到新的界面)
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appPaySuccess) name:APP_PAY_SUCCESS object:nil];
5.2通知方法
-(void)appPaySuccess{ZQPaySuccessVC *paySuccessVC=[[ZQPaySuccessVC alloc]init];[self.navigationController pushViewController:paySuccessVC animated:YES];}
5.3移除通知(不移除會崩潰呦)
-(void)dealloc{[[NSNotificationCenter defaultCenter] removeObserver:self name:APP_PAY_SUCCESS object:nil];}
6.支付完成!
歡迎小夥伴們給我補充,提意見 麼麼噠~~~
閱讀更多 果大爺的幸福生活 的文章