支付宝C++接口编译 (Windows 10 + Visual Studio 2015Update 3+ Qt 5.7.0)

支付宝C++接口编译 

本文目标是:在使用Windows 10 + Visual Studio 2015Update 3+ Qt 5.7.0基础上,编译OpenSSLlibCurl,编译了AliPay C++ SDK,可以实现支付。本文分四章叙述。

所有软件都是当前最新版,安全性能最高。

 

第一章 下载支付宝服务端SDK

 

下载地址:

https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.wtCuGV&treeId=193&articleId=103419&docType=1

或者:

https://github.com/ArthasModern/AlipayOpenapiCpp

 

将源文件解压到E:\Qt\AlipayOpenapiCpp,您可以自由选择目标目录。

支付宝C++接口编译 (Windows 10 + Visual Studio 2015Update 3+ Qt 5.7.0)_第1张图片

这个SDK是在VS2008+Qt 5基础上开发的,在Windows 10 + Visual Studio 2015 Update 3+ Qt 5.7.0上编译会通不过。会出现如下错误:

 

error LNK2019: 无法解析的外部符号 __iob_func

 

SDK使用了三个库,分别是cJSONOpenSSLlibCurlcJSON不用担心,直接使用。问题是另两个库需要重新编译。

因此,需要下载OpenSSLlibCurl的源代码,重新编译生成最新静态库文件。

 

第二章 下载libCurl官方源码

 

下载地址:

https://curl.haxx.se/download.html

选择最新包,curl-7.50.3.tar.gz

 

在此处可以找到VS2015安装指南:

https://github.com/DynamsoftRD/libcurl-sample

 

本库比较好编译,网上介绍都已经过时,不足为训。因此需要仔细阅读官方说明文档。步骤如下:

1、 下载解压。例如E:\Qt\curl-openssl\curl-7.50.3,您可以自由选择解压目标地址。

2、 进入E:\Qt\curl-openssl\curl-7.50.3\projects\Windows\VC14

3、 双击打开curl-all.sln,使用VS2015打开即可。

4、 在下图中,选择点击Lib Debug,编译;再选择Lib Release,编译。所谓“编译”即点击“本地windows调试器”即可。

支付宝C++接口编译 (Windows 10 + Visual Studio 2015Update 3+ Qt 5.7.0)_第2张图片

5、 回退两级目录,在E:\Qt\curl-openssl\curl-7.50.3\build\Win32\VC14中可以找到对应于lib debuglib release的目录,编译好的静态库文件就在这两个目录里面。

6、 分别把E:\Qt\curl-openssl\curl-7.50.3\build\Win32\VC14\LIB Debug\libcurld.lib    E:\Qt\curl-openssl\curl-7.50.3\build\Win32\VC14\LIBRelease\libcurl.lib 复制出来,放到E:\Qt\AlipayOpenapiCpp\libs里面。

7、 打开E:\Qt\AlipayOpenapiCpp\libs\include,把E:\Qt\AlipayOpenapiCpp\libs\include\下的curl目录删掉,然后把E:\Qt\curl-openssl\curl-7.50.3\includecurl目录(放的都是头文件)复制过来。

 

第三章 下载OpenSSL官方源码

 

需要做准备工作:

1、下载地址:https://www.openssl.org/source/

选择最新包,openssl-1.1.0.tar.gz

2、从http://www.activestate.com/activeperl/downloads 下载并安装最新的ActivePerl

3、可选。从http://www.nasm.us/ 下载并安装Nasm汇编器。

网上介绍都已经过时,不足为训。例如都提到

有两个文件INSTALL.W32, INSTALL.W64,在解压文件里是找不到的。需要仔细阅读官方说明文档。说明文档也有地方讲得不清楚,甚至有文字错误。

步骤如下:

1、 下载解压。例如E:\Qt\openssl-1.1.0,您可以自由选择解压目标地址。

2、 需要使用VS2015的命令窗口来编译,因此找到并打开


支付宝C++接口编译 (Windows 10 + Visual Studio 2015Update 3+ Qt 5.7.0)_第3张图片

3、 

 
  试Perl,输入perl-v,如果窗口输出如下,表示前面的Perl安装成功了。

 

支付宝C++接口编译 (Windows 10 + Visual Studio 2015Update 3+ Qt 5.7.0)_第4张图片

4、 在下图中,依次执行命令:

进入E:\Qt\openssl-1.1.0\openssl-1.1.0,设置环境。


 

5、 如果按网上的提示操作,如编译Win32

perl Configure VC-WIN32 --prefix=c:\some\openssl\dir

就掉进坑了。因为我们windows10没有权限在C盘创建目录。后续步骤更麻烦,足够浪费几天时间。最简便的方法如下:

进入E:\Qt\openssl-1.1.0\openssl-1.1.0

输入:nmake,开始编译了!

支付宝C++接口编译 (Windows 10 + Visual Studio 2015Update 3+ Qt 5.7.0)_第5张图片

编译好的静态库文件就在这个目录里面。分别是libcrypto.liblibssl.lib

6、 分别把E:\Qt\openssl-1.1.0\openssl-1.1.0里面的两个文件libcurld.lib    libssl.lib 复制出来,放到E:\Qt\AlipayOpenapiCpp\libs里面。

7、 打开E:\Qt\AlipayOpenapiCpp\libs\include,把E:\Qt\AlipayOpenapiCpp\libs\include\下的openssl目录删掉,然后把E:\Qt\openssl-1.1.0\openssl-1.1.0\includeopenssl目录(放的都是头文件)复制过来。

 

第四章 配置环境

 

两个库编译好了,已经是最新的了。下面就是配置支付宝官网提供的SDK环境的时候了。

1、 进入E:\Qt\AlipayOpenapiCpp,打开Openapi.sln,用VS2015打开,您的VS2015必须要有Qt 5.7.0的插件。如果没有,请去微软官网上下载使用。或者在VS2015 > 工具 > 扩展与更新,搜索Qt 5.7.0插件,并安装。

2、 在解决方案资源管理器,选中工程名OpenApi,右击,选择属性。

3、 属性页配置环境如下:

1)配置属性 > VC++目录 包含目录,添加如下三项:

E:\Qt\AlipayOpenapiCpp\libs\include

E:\Qt\AlipayOpenapiCpp\libs\include\openssl

E:\Qt\AlipayOpenapiCpp\libs\include\curl

2)配置属性 > VC++目录 库目录,添加如下三项:

E:\Qt\AlipayOpenapiCpp\libs\include

3)配置属性 > C/C++ > 预处理器,添加如下一项

CURL_STATICLIB

4)配置属性 > C/C++ >代码生成 >运行库,改为

多线程 (/MT)

5)配置属性 链接器 输入 附加依赖项,添加

libssl.lib

libcrypto.lib

ws2_32.lib

wldap32.lib

libcurld.lib

libcurl.lib

GDI32.LIB

ADVAPI32.LIB
 
CRYPT32.LIB

4、源代码不需要任何改动,可以直接使用,不妨一试。成功了!

你可能感兴趣的:(Qt5.7.0)