10分钟搞定支付宝支付 的 各种填坑

填坑
支付宝填坑是每个接入支付宝必经之路,下面是我接入支付宝遇到的问题汇总,希望大家在接入的路上少一点弯路

问题1. Util/base64.h:63:21: Cannot find interface declaration for ‘NSObject’, superclass of ‘Base64’

解决办法:
这是base64.h中没有加入#import <Foundation/Foundation.h> 系统库文件导致,这个错误报错方法直接想喷它一脸。报错方式太恶心。

问题2.截图告知你什么问题

530EA189-0A5A-4AEB-82BF-E30B99F5418B.png

解决办法:
这个问题可以同上的,心情好,截图再次说明下,在 openssl_wrapper.h中#import <Foundation/Foundation.h> 库即可

问题3.Util/openssl_wrapper.m:11:9: ‘rsa.h’ file not found

解决办法:
(1),万年老坑,只要你接入支付宝百分百要遇到的问题,所以习以为常吧
(2),在Build setting中搜索search,找到Header Search Paths,添加$(PROJECT_DIR)/openssl和$(PROJECT_DIR) 如下图:
(3),重要 问题说三遍,这是网络找到的到答案后继续有同样的坑,自己的解决方案,
Header Search Paths   $(PROJECT_DIR)/ali中输入这个
Framework Search Paths  和 Library Search Paths 继续是$(inherited)  和  $(PROJECT_DIR)/ali
‘rsa.h’ file not found  的解决方案
(4),由于后期多项目的接入,让我知道一个算是万能方法吧,就是始终保持Header Search Paths 和 Library Search Paths 都能找到你导入的openssl的正确路径即可,已尝试多遍,是能解决以上问题(求黑)

EB1487E2-FFA9-494B-923D-C5F7CD1AF1FC.png

5C736AB8-F0FB-423C-973D-3ED9301E27C0.png

问题4.这类错很多,大概有这些:这些可能是库文件没有导入,导致的

“_CNCopyCurrentNetworkInfo”, referenced from:
Undefined symbols for architecture x86_64:
"CNCopyCurrentNetworkInfo", referenced from:
-[APayReachability wifiInterface] in AlipaySDK
+[internal_DeviceInfo getSSIDInfo] in AlipaySDK
+[internal_DeviceInfo getNetworkInfo] in AlipaySDK
"_CNCopySupportedInterfaces", referenced from:
-[APayReachability wifiInterface] in AlipaySDK
+[internal_DeviceInfo getSSIDInfo] in AlipaySDK
+[internal_DeviceInfo getNetworkInfo] in AlipaySDK
"_CTRadioAccessTechnologyCDMA1x", referenced from:
-[AliSecXReachability networkStatusForFlags:] in AlipaySDK
"_CTRadioAccessTechnologyEdge", referenced from:
-[AliSecXReachability networkStatusForFlags:] in AlipaySDK
"_CTRadioAccessTechnologyGPRS", referenced from:
-[AliSecXReachability networkStatusForFlags:] in AlipaySDK
"_CTRadioAccessTechnologyLTE", referenced from:
-[AliSecXReachability networkStatusForFlags:] in AlipaySDK
"_OBJC_CLASS
$_CMMotionManager", referenced from:
objc-class-ref in AlipaySDK
"OBJC_CLASS$_CTTelephonyNetworkInfo", referenced from:
objc-class-ref in AlipaySDK
"SCNetworkReachabilityCreateWithAddress", referenced from:
+[APayReachability reachabilityWithAddress:] in AlipaySDK
+[AliSecXReachability reachabilityWithAddress:] in AlipaySDK
"_SCNetworkReachabilityCreateWithName", referenced from:
+[APayReachability reachabilityWithHostname:] in AlipaySDK
+[AliSecXReachability reachabilityWithHostName:] in AlipaySDK
"_SCNetworkReachabilityGetFlags", referenced from:
-[APayReachability isReachable] in AlipaySDK
-[APayReachability isReachableViaWWAN] in AlipaySDK
-[APayReachability isReachableViaWiFi] in AlipaySDK
-[APayReachability connectionRequired] in AlipaySDK
-[APayReachability isConnectionOnDemand] in AlipaySDK
-[APayReachability isInterventionRequired] in AlipaySDK
-[APayReachability reachabilityFlags] in AlipaySDK
...
"_SCNetworkReachabilityScheduleWithRunLoop", referenced from:
-[AliSecXReachability startNotifier] in AlipaySDK
"_SCNetworkReachabilitySetCallback", referenced from:
-[APayReachability startNotifier] in AlipaySDK
-[APayReachability stopNotifier] in AlipaySDK
-[AliSecXReachability startNotifier] in AlipaySDK
"_SCNetworkReachabilitySetDispatchQueue", referenced from:
-[APayReachability startNotifier] in AlipaySDK
-[APayReachability stopNotifier] in AlipaySDK
"_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from:
-[AliSecXReachability stopNotifier] in AlipaySDK
"std::1::basic_string<char, std::1::char_traits<char>, std::1::allocator<char> >::init(char const, unsigned long)", referenced from:
CAliSecXURL::encodeURIComponent(CAliSecXBuffer&) in AlipaySDK
"std::1::basic_string<char, std::1::char_traits<char>, std::1::allocator<char> >::reserve(unsigned long)", referenced from:
CAliSecXURL::encodeURIComponent(CAliSecXBuffer&) in AlipaySDK
"std::
1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()", referenced from:
CAliSecXURL::encodeURIComponent(CAliSecXBuffer&) in AlipaySDK
"std::nothrow", referenced from:
CAliSecXBuffer::CAliSecXBuffer(unsigned long) in AlipaySDK
CAliSecXBuffer::_copy(unsigned char const
, unsigned long) in AlipaySDK
CAliSecXBuffer::resize(unsigned long) in AlipaySDK
"std::terminate()", referenced from:
clang_call_terminate in AlipaySDK
"operator delete", referenced from:
CAliSecXBuffer::~CAliSecXBuffer() in AlipaySDK
CAliSecXBuffer::release() in AlipaySDK
CAliSecXBuffer::~CAliSecXBuffer() in AlipaySDK
CAliSecXBuffer::operator=(CAliSecXBuffer const&) in AlipaySDK
CAliSecXBuffer::resize(unsigned long) in AlipaySDK
alisec_crypto_Hex2Bin(CAliSecXBuffer const&) in AlipaySDK
alisec_crypto_Bin2Hex(CAliSecXBuffer const&) in AlipaySDK
...
"operator new", referenced from:
CAliSecXBuffer::CAliSecXBuffer(unsigned long) in AlipaySDK
CAliSecXBuffer::_copy(unsigned char const*, unsigned long) in AlipaySDK
CAliSecXBuffer::resize(unsigned long) in AlipaySDK
"
cxa_begin_catch", referenced from:
clang_call_terminate in AlipaySDK
"
gxx_personality_v0", referenced from:
+[ASSStorageAccesser saveStorageModel:] in AlipaySDK
+[ASSStorageAccesser loadStorageModelFromKeychain] in AlipaySDK
+[ASSStorageAccesser loadPreviousApdid] in AlipaySDK
+[ASSStorageAccesser getRandomizedID] in AlipaySDK
+[ASSStorageAccesser getNewRadomizedID] in AlipaySDK
+[ASSStorageAccesser loadLastLoginTime] in AlipaySDK
+[ASSStorageAccesser saveCurrentLoginTime:] in AlipaySDK
...
"_deflate", referenced from:
+[ASSCommonUtils gzipData:] in AlipaySDK
+[DTGZipUtil compressGZip:] in AlipaySDK
"_deflateEnd", referenced from:
+[ASSCommonUtils gzipData:] in AlipaySDK
+[DTGZipUtil compressGZip:] in AlipaySDK
"_deflateInit2
", referenced from:
+[ASSCommonUtils gzipData:] in AlipaySDK
+[DTGZipUtil compressGZip:] in AlipaySDK
"_kCNNetworkInfoKeyBSSID", referenced from:
+[UIDevice(APEX) networkDic] in AlipaySDK
"_kCNNetworkInfoKeySSID", referenced from:
+[UIDevice(APEX) networkDic] in AlipaySDK
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

解决办法:
这种问题通过在General->Link Framework and Libraiies中添加以下framework解决:

- libz.tbd
- libc++.tbd
- Security.framework
- CoreMotion.Framework
- CFNetwork.framework
- CoreTelephony.framework
- SystemConfiguration.framework

截图如下,由于公司同时接入支付宝和微信支付,所以导入的库就多了点咯:

9CCA6D99-B122-4C6E-8A1D-522BC3292A4E.png

问题5.Redefinition of ‘RSA‘ as different kind of symbol 多为sdk集成时产生的坑,因为我们公司在集成支付宝之前,有用过RSA加密,导致重名问题

解决办法:
(1),这个问题不是每个公司都可能遇到的,但遇到也心烦
(2),由于支付宝中的openssl中的rsa.h文件与RSA加密有重名冲突。改掉公司自己之前导入RSA的命名,如果你牛逼也可以去改rsa.h中的

问题6;系统库导入问题
+++++++++++++
symbol(s) not found for architecture arm64

17321E6C-1A33-41D4-9B6E-9E499CCA23C6.png

解决办法
就是导入系统库了

85880AC4-E323-4451-B622-9E7ABB1CE658.png

问题7:终于到微信了,接入微信,你就开心了

时间: 2024-10-13 17:33:01

10分钟搞定支付宝支付 的 各种填坑的相关文章

10分钟搞定支付宝和微信支付的各种填坑

支付宝填坑是每个接入支付宝必经之路,下面是我接入支付宝遇到的问题汇总,希望大家在接入的路上少一点弯路. 问题1. Util/base64.h:63:21: Cannot find interface declaration for ‘NSObject’, superclass of ‘Base64’ 解决办法: 这是base64.h中没有加入#import 系统库文件导致,这个错误报错方法直接想喷它一脸.报错方式太恶心. 问题2.截图告知你什么问题 解决办法: 这个问题可以同上的,心情好,截图再

10分钟搞定支付宝和微信支付 的 各种填坑

填坑   支付宝填坑是每个接入支付宝必经之路,下面是我接入支付宝遇到的问题汇总,希望大家在接入的路上少一点弯路 问题1. Util/base64.h:63:21: Cannot find interface declaration for ‘NSObject’, superclass of ‘Base64’ 解决办法: 这是base64.h中没有加入#import  系统库文件导致,这个错误报错方法直接想喷它一脸.报错方式太恶心. 问题2.截图告知你什么问题 解决办法: 这个问题可以同上的,心情

Python基于VS2013 开发环境搭建 Hello World 10分钟搞定

1.先下载Python 安装 Next ->安装完成 2.以前安装过VS2013 打开VS2013 文件->新建项目 (此时如果没有Python Application,请点击里面的安装插件) 完成后选择 工具->选项  等待一会 前后没要10分钟 ,就可以把VS2013作为Python的IDE了. 开始刚下载Python下来,一看才25M,我说这么小怎么玩啊,没想到要借助VS2013开发工具,java eclipse也可以的.

10分钟搞定nginx实现负载均衡

10.1 负载均衡的概念 对用户请求的数据进行调度的作用 对用户访问的请求网站可以进行压力的分担 10.2 常见的代理方式 10.2.1 正向代理 10.2.2 反向代理 10.3 负载均衡的部署环节 10.3.1 服务器的准备 lb01服务器:172.16.1.5 web01服务器:172.16.1.7 web02服务器:172.16.1.8 10.3.2 服务器环境的准备 10.3.2.1 web服务器的配置(172.16.1.7,172.16.1.8) [[email protected]

Python:10分钟搞定不写代码的爬虫

代码自己敲 使用 Chrome 浏览器插件 Web Scraper 可以轻松实现网页数据的爬取,不写代码,鼠标操作,点哪爬哪,还不用考虑爬虫中的登陆.验证码.异步加载等复杂问题. Web Scraper插件 Web Scraper 官网中的简介: Web Scraper Extension (Free!)Using our extension you can create a plan (sitemap) how a web site should be traversed and what s

10分钟搞定react-router

1.路由的安装: $ npm install -S react-router 2.引入路由文件 import {Router, Route, browserHistory} from 'react-router'; 3.配置路由器 平级路由(做跳转用) const router = ( <Router history={browserHistory}> <Route path="/" component={App}/> <Route path="

10分钟搞定Lync 2010和Quintum AF集成

接线拓扑 接线方法: l  电信直线直接接在Quintum AF的FXO口上 l  AF采用RJ45接入网络 使用效果: l  PSTN用户拨打直线的号码,会听到二次拨号音,然后再输入Lync用户的分机号码就可以直接振铃Lync用户 l  Lync用户直接拨打外部号码就可以直接振铃 l  如果采用2根或更多外线,那么可以设置共振手机等功能 备注: AF 采用P108-09-10版本 网关端配置 采用串口线配置IP地址: 配置完毕之后重新启动网关(经过配置之后网关的IP地址为192.168.1.4

10分钟搞定老板爱看的动态报表,这些小技巧你get了吗?

某一天,老板想看公司的销售报告.你接到这个任务后,开始处理并汇总数据.你在想如何将销售统计情况汇报给老板. 或许是一张Excel表.可是它看起来不仅枯燥,而且密密麻麻的数字很难抓到重点.到底哪个产品才是最畅销的?销量冠军排行榜是怎样的?销量比去年同期增长多少?难道要老板自己拿Excel表去做分析? 于是你放弃了这个想法,决定做几张图表,通过图表来回答上面的问题,形象直观.于是你做了下面这张图,有KPI看板,销量排行榜,增长率. 这时,你不禁产生了疑问:老板真的只想知道这几个指标吗?如果老板还想看

***单文件搞定微信支付和支付宝支付

这段时间做微信支付和支付宝支付集成,发现了一个不错的开源代码 简单快捷,单文件即可搞定微信支付和支付宝支付. 单文件搞定微信支付系列: https://github.com/dedemao/weixinPay weixinPay 一个PHP文件搞定微信支付系列 网上的很多PHP微信支付接入教程都颇为复杂,且需要配置和引入较多的文件,本人通过整理后给出一个单文件版的,希望可以给各位想接入微信支付的带来些许帮助和借鉴意义. 一个PHP文件搞定支付宝系列请移步:https://github.com/d