PHP PC端接入支付宝和微信感悟

时间:2020-12-22 00:08:33

想着中秋节的时候把异步线程学习完,同事说有个PHP的支付要帮忙做一下,虽然中秋节计划是把C#的异步学完,不过还是喜欢挑战,好久没有像大学一样这么认真的熬夜解决问题了。由于在大学学过asp,它和php有点类似,就这样稀里糊涂的开始做PHP PC端的支付功能。也不敢说这是一篇对支付的总结,只是主要是记录下遇到的坑。

1.环境配置phpstudy安装(具体使用也不难挺简单的)

之前也没深入研究过PHP,也就是大概了解了下,也知道它是用mysql、apache,但不知道用什么软件,还是问的同事,在网上下载的phpstudy,这里在安装的时候就遇到一个坑,启动apache启动不了,自己当时也百度了好大一会,最后在它的使用手册中找到了解决方法。

phpStudy启动失败,原因一是防火墙拦截,二是80端口已经被别的程序占用,如IIS,迅雷等;三是没有安装VC9运行库,php和apache都是VC9编译。解决以上三个问题,99%能一次性安装成功

为了减少出错安装路径不得有汉字,如有防火墙开启,会提示是否信任httpd、mysqld运行,请选择全部允许。

由于牵扯到注册服务、自解压等,个别弱智傻X杀毒卫士会误报病毒,不放心的可以安装后自行扫描。

32位的VC9运行库下载:http://www.microsoft.com/zh-CN/download/details.aspx?id=5582
64位的VC9运行库下载:http://www.microsoft.com/zh-CN/download/details.aspx?id=15336

不是管理员administrator的用户,请右键以管理员身份运行。牵扯到服务进程的管理必须以管理员身份运行。

端口问题无法启动时,请使用菜单『环境端口检测』进行端口检测,尝试启动。最重要的一点,你的机子一定要安装VC9运行库,phpStudy安装路径不得有汉字。

2013版菜单名为『强制启动端口』

2.开发环境

刚开始了解的时候用的是NotePad++,查看的时候还可以,可能是自己php用的不熟悉,用NotePad++基本只是看下大概。项目的目录结构也看不出来。于是乎自己又下载了PHP Eclipse,有了它能把整个的项目结构了解清楚。

PHP PC端接入支付宝和微信感悟

3.花生壳的使用

在接入支付宝和微信的时候都要配置回调的url,而这个url要能外界访问,不能是127.0.0.1,不然支付宝微信怎么回调通知支付结果,但我又没有域名和服务器,当时真是一直纠结这个问题,还是同事说可以用花生壳,之前也听说过花生壳,但具体没用过,这次算是体验了一把。有了它即使局域网也可以部署服务器来进行测试。

4.支付接入

对于支付接入网上有大把的例子,由于是第一次做,没经验,对支付宝和微信接入流程也不熟悉,所以在这块浪费了好多的时间。对于接入的前期准备有必要详细的了解。

1.支付宝接入

在PC端网站接入使用的是即时到账,https://b.alipay.com/signing/productSet.htm?navKey=all,这个一般是公司来做,签约成功之后才可以使用MD5的方式来支付,作为开发者来说可以在沙盒环境来模拟支付。模拟支付我没找到MD5加密的方式支付。其中最重要的是notify_url和return_url。这两个设置成功支付宝会在支付成功之后自动跳转到回调页面。

在支付宝接入demo测试配置项采用RSA加密方式会报下面的错误:

Fatal error: Call to undefined function openssl_get_privatekey() inC:\Users\Administrator\Desktop\create_direct_pay_by_user-PHP-UTF-8\lib\alipay_rsa.function.php on line26

 解决方法:

通过phpstudy中打开php.ini文件   ctrl+F 查找

extension=php_openssl.dll 去掉前面的分号 重启服务

2.微信支付

微信支付使用的是V3的模式二支付,感觉微信支付比支付宝支付比较坑的就是跳转的问题,微信扫描成功支付后不能自动回调,看网上说要通过js轮询根据订单号查询订单状态来跳转。感觉好坑好坑。

3.代码

代码网上有好多demo,http://www.thinkphp.cn/code/240.html这个的就很不错。