很多站长朋友们都不太清楚php接口版本选择,今天小编就来给大家整理php接口版本选择,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 如果php版本更新php接口怎么兼容 2、 php5.3哪个版本稳定 3、 如何利用PHP语言开发平台第三方支付接口 4、 php 支付宝接口官方给的md5签名版本和rsa签名版本的区别 5、 php支付宝接口 6、 cpanl如何选择PHP版本以及扩展PHP包 如果php版本更新php接口怎么兼容你可以在设计接口的时候多加一个参数用来区分 当前是哪个版本 后台根据不同的版本号来判断 调用哪个 接口
php5.3哪个版本稳定一、如何选择PHP5.3的VC9版本和VC6版本
VC6版本是使用Visual Studio 6编译器编译的,如果你的PHP是用Apache来架设的,那你就选择VC6版本。
VC9版本是使用Visual Studio 2008编译器编译的,如果你的PHP是用IIS来架设的,那你就选择VC9版本。
二、如何选择PHP5.3的Thread Safe和Non Thread Safe版本
先从字面意思上理解,Thread Safe是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。
再来看PHP的两种执行方式:ISAPI和FastCGI。
ISAPI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择Thread Safe版本;
而FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以FastCGI来执行PHP,建议选择Non Thread Safe版本。
如何利用PHP语言开发平台第三方支付接口第一步:签订合约通过第三方拿到接口(可以邮件形式发送、也可以在第三方系统下载),拿到接口后,要确认下接口类型,是否是自己需要的接口,比如B2C接口、B2B接口等类型。
第二步:支付接口分很多语言版本,比如ASP、JSP、PHP、.NET语言版本,所以要选择与自己网站语言匹配的接口进行安装。商城网站的技术一般比较清楚商城的开发语言。
第三步:拿到的支付接口一般包括接口文档和接口代码示例,选择合适的接口代码示例,进行联调,比如自己网站是PHP开发的,就选择PHP代码示例联调。
第四步:接口联调的时候,需要第三方支付提供联调测试账号,方可以联调。联调除了需要联调账号除外,还需要该账号的支付密钥,联调过程中,有什么问题,可以直接找第三方支付技术支持给予协调处理。
第五步:接口联调通过后,可先换成生产环境账号,进行交易测试,测试没问题后,可以放到商城网站进行交易。
php 支付宝接口官方给的md5签名版本和rsa签名版本的区别虽然支付宝官方还未提供相关SDK,PHP确实可以实现RSA方式的签名,这点其实很重要,由于不熟悉,在遇到困难的时候,经常会不由自主地想到是否PHP不支持RSA签名,干脆用MD5得了,这样就没有了前进的动力。其实说穿了MD5和RSA签名,不同的只是签名方式的区别,其他的都一样,因此我这里主要说一下如何用RSA进行签名和验签。
首先你需要准备下面的东西:
php的openssl扩展里已经封装好了验签的方法openssl_verify。
如果在Windows下的php.ini需要开启Openssl模块: extension=php_openssl.dll
商户私钥:
即RSA私钥,按照手册,按以下方式生成:
openssl genrsa -out rsa_private_key.pem 1024
商户公钥:
即RSA私钥,按照手册,按以下方式生成:
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
生成之后,按照手册的说明,需要在签约平台上传公钥,需要注意的是,上传的时候需要把所有的注释和换行都去掉。
另外手册中还有如下命令:
openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
该命令将RSA私钥转换成PKCS8格式,对于PHP来说,不需要。
支付宝公钥:
根据手册,在签约平台获得。
如果你直接复制下来的话,会得到一个字符串,需要进行下面的转换;
1)把空格变成换行
2)添加注释
比如你复制下来的公钥是:MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDRBMjkaBznjXk06ddsL751KyYt
ztPFg0D3tu7jLqCacgqL+lbshIaItDGEXAMZmKa3DV6Wxy+l48YMo0RyS+dWze4M
UmuxHU/v6tiT0ZTXJN3EwrjCtCyyttdv/ROB3CkheXnTKB76reTkQqg57OWW+m9j
TCoccYMDXEIWYTs3CwIDAQAB,那转换之后为:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDRBMjkaBznjXk06ddsL751KyYt
ztPFg0D3tu7jLqCacgqL+lbshIaItDGEXAMZmKa3DV6Wxy+l48YMo0RyS+dWze4M
UmuxHU/v6tiT0ZTXJN3EwrjCtCyyttdv/ROB3CkheXnTKB76reTkQqg57OWW+m9j
TCoccYMDXEIWYTs3CwIDAQAB
-----END PUBLIC KEY-----
把公钥保存在文件里。
注意这个是2048位的公钥应该是9行或者10行,不能为1行,不然PHP的openssl_pkey_get_public无法读取,pub_key_id的结果为false,如果没有-----BEGIN PUBLIC KEY----- 和 -----END PUBLIC KEY----- 可以自己加上,最后保存到一个rsa_public_key.pem文件中。
好了,现在已经有了所有的东西,先看签名函数:
复制代码
1 <?php
2 /**
3 * 签名字符串
4 * @param $prestr 需要签名的字符串
5 * return 签名结果
6 */
7 function rsaSign($prestr) {
8 $public_key= file_get_contents('rsa_private_key.pem');
9 $pkeyid = openssl_get_privatekey($public_key);
10 openssl_sign($prestr, $sign, $pkeyid);
11 openssl_free_key($pkeyid);
12 $sign = base64_encode($sign);
13 return $sign;
14 }
15 ?>
复制代码
注意点:
1.$prestr的内容和MD5一样(参见手册,但不包含最后的MD5密码)
2.签名用商户私钥
3.最后的签名,需要用base64编码
4.这个函数返回的值,就是这次请求的RSA签名。
验签函数:
复制代码
1 <?php
2 /**
3 * 验证签名
4 * @param $prestr 需要签名的字符串
5 * @param $sign 签名结果
6 * return 签名结果
7 */
8 function rsaVerify($prestr, $sign) {
9 $sign = base64_decode($sign);
10 $public_key= file_get_contents('rsa_public_key.pem');
11 $pkeyid = openssl_get_publickey($public_key);
12 if ($pkeyid) {
13 $verify = openssl_verify($prestr, $sign, $pkeyid);
14 openssl_free_key($pkeyid);
15 }
16 if($verify == 1){
17 return true;
18 }else{
19 return false;
20 }
21 }
22 ?>
复制代码
注意点:
1.$prestr的内容和MD5一样(参见手册)
2.$sign是支付宝接口返回的sign参数用base64_decode解码之后的二进制
3.验签用支付宝公钥
4.这个函数返回一个布尔值,直接告诉你,验签是否通过
支付宝官方提供的PHP版SDK demo中只对MD5加密方式进行了处理,但android 端和ios端 请求支付宝加密方式只能用RSA加密算法,这时服务端PHP就无法验证签名了,所以需要对demo进行一些修改。
1、修改alipay_notify.class.php文件
verifyNotify 函数第46行
$isSign = $this->getSignVeryfy($_POST, $_POST["sign"]);
改成
$isSign = $this->getSignVeryfy($_POST, $_POST["sign"], $_POST["sign_type"]);
verifyReturn 函数第83行
$isSign = $this->getSignVeryfy($_GET, $_GET["sign"]);
改成
$isSign = $this->getSignVeryfy($_GET, $_GET["sign"], $_GET["sign_type"]);
getSignVeryfy 函数 116行
function getSignVeryfy($para_temp, $sign) {
改成
function getSignVeryfy($para_temp, $sign, $sign_type) {
getSignVeryfy 函数 127行
switch (strtoupper(trim($this->alipay_config['sign_type']))) {
case "MD5" :
$isSgin = md5Verify($prestr, $sign, $this->alipay_config['key']);
break;
default :
$isSgin = false;
}
改成
switch (strtoupper(trim($sign_type))) {
case "MD5" :
$isSgin = md5Verify($prestr, $sign, $this->alipay_config['key']);
break;
case "RSA" :
$isSgin = rsaVerify($prestr, $sign);
break;
default :
$isSgin = false;
}
2、新建一个alipay_rsa.function.php文件
复制代码
1 <?php
2 /* *
3 * RSA
4 * 详细:RSA加密
5 * 版本:3.3
6 * 日期:2014-02-20
7 * 说明:
8 * 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
9 * 该代码仅供学习和研究支付宝接口使用,只是提供一个参考。
10 */
11 /**
12 * 签名字符串
13 * @param $prestr 需要签名的字符串
14 * return 签名结果
15 */
16 function rsaSign($prestr) {
17 $public_key= file_get_contents('rsa_private_key.pem');
18 $pkeyid = openssl_get_privatekey($public_key);
19 openssl_sign($prestr, $sign, $pkeyid);
20 openssl_free_key($pkeyid);
21 $sign = base64_encode($sign);
22 return $sign;
23 }
24 /**
25 * 验证签名
26 * @param $prestr 需要签名的字符串
27 * @param $sign 签名结果
28 * return 签名结果
29 */
30 function rsaVerify($prestr, $sign) {
31 $sign = base64_decode($sign);
32 $public_key= file_get_contents('rsa_public_key.pem');
33 $pkeyid = openssl_get_publickey($public_key);
34 if ($pkeyid) {
35 $verify = openssl_verify($prestr, $sign, $pkeyid);
36 openssl_free_key($pkeyid);
37 }
38 if($verify == 1){
39 return true;
40 }else{
41 return false;
42 }
43 }
44 ?>
php支付宝接口登录支付宝,然后有个商户版的,进入申请双功能接口,
然后下载下来的接口包文件有很多语言的源码
我们选择PHP版的UFT-8
里面包括一些文件
images文件里是支付宝相关的一些标志的图片,lib文件很重要,是整个接口的核心类文件;
alipay.config.php是相关参数的配置文件
alipayapi.php 是支付宝接口入口文件
notify_url.php 是服务器异步通知页面文件;
return_url.php 是页面跳转同步通知文件;
按照开发文档开发即可
<?php
//这里有一些教程 希望能帮到你
//
?>
望采纳
cpanl如何选择PHP版本以及扩展PHP包PHP版本的选择
如果服务器在处理PHP包时遇到问题,你可能需要查看一下PHP的设置的方式。如果主机支持用户自主选择网站使用的PHP版本
扩展PHP包
扩展包是使用PHP脚本语言写出来的软件。cPanel使得搜索和添加PHP 扩展包到网站的操作更加容易
随着cpanel版本的升级PHP版本也要更新,所以才有了PHP版本的选择了!
工具/原料
cpanel虚拟主机管理系统
步骤/方法
PHP版本的选择: 登录cPanel,在主页的“软件”管理一栏中,单击“PHP Config”图标,你可以在转到的页面上进行选择。
不同版本的cPanel提供的修改方法可能会略有差别。请仔细阅读每个PHP版本下面的说明,选择适当的版本。
1、选择你希望使用的PHP版本,或者选择“系统默认”,即使用主机选择的版本;
2、单击“更新”,保存修改。
注意:如果在~/public_html/.htaccess中你自定义了句柄,修改这些设置将会覆盖原句柄。所以如果不确定,在修改设置前做好~/public_html/.htaccess的备份。
在该页面上还有一些附加扩展功能以供安装。
注意:这些附加扩展仅能修改你的~/public_html/php.ini文件。如果使用了这些更改,确保其他php初始化文件和你选择的PHP版本是配套的。我们强烈建立你选择“Single php.ini”的PHP版本,以保证网站软件使用适合的php初始化文件。如果选择了PHP 5.3版本,确保子文件夹使用的是"/usr/php/53/usr/bin/php",否则使用的将会是PHP 5.2版本。
扩展PHP包
登录cPanel,在主页的“软件”一栏下,单击“PHP PEAR”查看所有可用的PHP扩展包,可以搜索某个特定的扩展包。如果知道扩展包的名字,则可以直接添加。
查看所有可用的扩展包
1、单击“显示可用的PHP扩展和应用”;
2、单击“安装”,安装你需要的扩展包。
搜索扩展包
使用主题或关键字搜索:
1、在“搜索”框内输入关键字,单击“到”;
2、单击“安装”,安装你需要的扩展包。
单击“显示文档”,查看扩展包的创建者的文档。
安装扩展包
1、如果知道扩展包的名字,在“安装一个PHP扩展和应用包”下输入该名字;
2、单击“现在安装”。
已安装的PHP扩展和应用包列表
该列表可以帮助你管理已安装的扩展包。列表包括模块名称、版本和管理。
如果你认为某个扩展包过期了,单击“更新”,cPanel可以为你更新它。
如果某个扩展包损毁或丢失了,单击“重新安装”。
单击“卸载”,卸载扩展包。
单击“显示文档”,查看扩展包的文档。
系统模块
cPanel中已经事先安装过一些扩展包。单击“显示系统已安装的模块”,可以查看该列表。
记住:系统安装模块不能被删除。单击“显示文档”,查看系统安装扩展包文档。
下面附上一些常用的PHP指令
asp_tags:指服务器是否支持PHP代码中用<%and%>替代标准的<?php and ?>标签。如果这一项选项被关闭,则包含ASP标签的PHP脚本将不能正常运行。
file_uploads:指服务器是否支持PHP脚本介绍通过HTTP(也就是Web)上传的文件。
Include_path:定义网站寻找PHP文件的路径。确保将要的运行的所有PHP脚本都保存在指令指到的地方。
max_execution_time:一个PHP脚本最大运行时间,以秒为单位。该限制可以防止书写不当的脚本拖慢服务器。
max_input_time:一个PHP脚本处理接传入信息的最大时间,以秒为单位。该限制可以防止脚本过载而拖慢服务器。
memory_limit:一个PHP脚本可以包含的最大字节。该限制可以防止书写不当的PHP脚本占用服务器内存。当此处设置为-1,则没有内存限制。
register_globals:警告:此功能过时,需设置为关闭状态,否则网站将不安全。
safe_mode:该指令保证了用户运行PHP脚本时得到执行脚本中的任务的权限。例如,如果脚本命令修改一个文件,用户就需要更新该文件的权限。不过这条指令已经失效了,所以主机可能会关闭它。用户可以使用其他安全措施代替它。
session.save_psth:当访问者访问网站时,需要使用自己独一无二的用户ID。用户ID进行的会话,或者在网站上停留的时间等信息会被记录在主机中。该指令显示了这些信息被记录在何处。(PHP允许你为给定的访问者和会话设立特定的Web内容。)如果“值”那一列存在一个数字,则它指的是信息被存储在多少个目录中。如果你的网站流量很大,将会话的数据分配到多个文件夹内有助于服务器存储和检索这些信息。“值”那一列中文字是指包含会话信息子目录的目录的名字。
upload_max_filesize:上传文件最大字节数。
关于php接口版本选择的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php接口版本选择 php接口技术的详细内容...