集成支付寶SDK遇到的坑


一、首先我先把集成過程說一下。
小編想說的話:支付寶是我做支付中覺得坑最多的一個,各種編譯不過,各種出問題。

廢話不多說,進入主題:
1.首先當前是下載官方SDK啦,當前你也可以通過cocopods進行導入

1.1 官方下載地址文檔

https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.aL2Pps&treeId=59&articleId=103676&docType=1

將下圖兩個文件導入您的項目中 (支付寶SDK)


Paste_Image.png

1.2 cocopods導入

pod 'AliPay', '~> 2.1.2'

2.若通過cocopods導入直接跳過此步 -- 導入系統庫


系統依賴庫.png
  1. 在項目中新建一個文件夾存放SDK 把官方demo 的所需的文件統統拷貝過來,如下圖 其中AlipaySDK.bundle AlipaySDK.FRAMEWORK 根據你是否cocopods集成選擇導入。

Paste_Image.png

導入完畢之后還需要設置下路徑以免出現問題
User Header Search Paths
把上面的路徑拖到里面即可。
或者使用 $(SRCROOT)/項目名稱/SDK名稱 也是可行的。

4.使用支付寶 需要配置 URL type 在info中直接配置即可

5.對了,還有一個就是需要支持iOS9 哦
1.https


Paste_Image.png

2.白名單


Paste_Image.png

走到這里基本上的配置就算完成了,那么我們該如何使用呢? 很簡單支付寶有提供一個方法 我們只需要把所需要的參數給傳遞過去即可。下面為基本調用過程


Paste_Image.png

參數說明:
payOrder: 很明顯是關於訂單的信息
1.重點1
在demo 中 我們會看到如下一句代碼

NSString *orderSpec = [order description];

意思是說 將商品信息拼接成字符串 這個拼接的過程他這個方法里已經封裝直接調用即可。

2.重點 2
// 獲取私鑰並將商戶信息簽名,外部商戶可以根據情況存放私鑰和簽名,只需要遵循RSA簽名規范,並將簽名字符串base64編碼和UrlEncode

id<DataSigner> signer = CreateRSADataSigner(@"您的私匙");
NSString *signedString = [signer signString:@"重點1 的商品字符串"];

3.最后我們將所有內容拼接下 傳遞給支付寶SDK

orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",
@"重點1 的商品字符串", signedString, @"RSA"];

appScheme:應用注冊scheme,在AlixPayDemo-Info.plist定義URL types

綜合上述 已經完成了大部分的工作,現在咱們運行看看效果。。。

運行中。。。。。

等待中。。。。。

卧槽,這不科學,報錯了,這個時候我的內心是奔潰的。。。。

咋辦??????

不要着急我們一個一個錯誤來看。

-
-
-
-
-

錯誤 1:


Paste_Image.png

解決方案 我們只要添加頭文件 (我是在pch 文件中加入)

import <Foundation/Foundation.h>

import <UIKit/UIKit.h>

錯誤 2


Paste_Image.png

如果是按照上述我描述的步驟 是不會出現這個問題的,但是還是要說一下,萬一遇到了呢?

解決方案:
在官方demo 中 有兩個文件
libcrypto.a
libssl.a
將兩個文件放在你的項目中即可。

錯誤 3


Paste_Image.png

解決方案:
你少加了系統庫哦
加上CoreMotion.framework 即可

錯誤 4


Paste_Image.png

尼瑪,明明有 你特么的說沒有。這個問題其實就是他找不到你的這個文件,按照我之前的流程也是不會出現這個問題的。

解決方案: 將他需要的文件都放在一個文件夾中,並且
Header Search Path添加路徑.
直接將項目中的相應文件拖入即可.也可以$(SRCROOT)/文件路徑.

錯誤 5

可能會報類似錯誤 大概就是這個第三方不支持 bitcode Xcode 7 默認為YES


Paste_Image.png

解決方案: bitcode 設置為NO

錯誤 6

這個錯誤不知道為什么會發生? 請大神指導。。。


Paste_Image.png

我只知道如何解決。
哈哈哈。。。。
找到 Always Search User Paths 設置為YES 即可。 是不是很神奇。
說到這里我需要介紹下

`#include“file.h”: 先搜索當前工作目錄,如果沒有,再去搜索庫,庫沒有再搜索資源庫;

當#include<file.h>:編譯器先從標准庫路徑開始搜索,如果沒再搜索資源庫目錄,最好搜索當前工作目錄。

錯誤 7

在設置 應用注冊scheme 時 切勿使用與支付寶系統重復命名,否則無法調用sdk。


Paste_Image.png

陸續更細中......



文/慢熱先生丶Cc(簡書作者)
原文鏈接:http://www.jianshu.com/p/16c2215ea37a
著作權歸作者所有,轉載請聯系作者獲得授權,並標注“簡書作者”。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM