PHP PC端接入支付宝和微信感悟
想着中秋节的时候把异步线程学习完,同事说有个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,有了它能把整个的项目结构了解清楚。
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这个的就很不错。
PHP PC端接入支付宝和微信感悟的更多相关文章
- 智齿客服网页端接入文档V2.3
产品介绍 智齿客服网页端接入提供以下两种部署方式. 一.网页组件(推荐) 通过智齿客服网站咨询组件,企业的用户可快捷联系到企业客服获取帮助.智齿客服网页组件提供强大的用户行为采集能力和系统对接能力,支 ...
- React-Native调用支付宝,微信
https://www.pingxx.com/docs/downloads Ping++ 是为移动端应用以及 PC 网页量身打造的下一代支付系统,通过一个 SDK 便可以同时支持移动端以及 PC 端网 ...
- 支付宝支付 微信支付SDK接口不统一? 盘他!
开发过支付宝.微信支付的同学都知道,微信的支付 API 设计感觉是 Java 开发工程师写的,远不如支付宝 SDK 的接口设计用起来顺手.在这里,统一封装微信支付和支付宝支付的API,使两种支付方 ...
- ecshop增加pc扫描二维码微信支付功能代码
ecshop开发网站,如果没有手机版,又想通过微信支付,可以加入pc二维码扫描微信支付功能 工具/原料 ecshop商城系统,phpqrcode,WxPayPubHelper 公众号已申请微信支付 方 ...
- IOS 支付宝、微信回调传值给H5网页
这里用是的苹果原生和JS的交互 .有不明白JavaScriptCore框架的可以去网上搜索下这方面的资料很多废话不多说直接上代码 @protocol JSContextDelegate <JSE ...
- spring_boot_pay支付宝,微信,银联支付详细代码案例
spring-boot-pay 支付服务:支付宝,微信,银联详细代码案例(除银联支付可以测试以外,支付宝和微信支付测试均需要企业认证,个人无法完成测试),项目启动前请仔细阅读 注意事项 . 友情提示 ...
- iOS支付宝,微信,银联支付集成封装调用(下)
一.越来越多的app增加第三方的功能,可能app有不同的页面但调用相同的支付方式,例如界面如下: 这两个页面都会使用第三方支付支付:(微信,支付宝,银联)如果在每一个页面都直接调用第三方支付的接口全部 ...
- JAVA支付宝和微信(APP支付,提现,退款)
公共参数图表: 接口 需要参数 通知方式 支付宝APP支付 应用公钥,应用私钥 异步 支付宝APP提现 应用公钥,应用私钥,支付宝公钥 同步 支付宝APP退款 应用公钥,应用私钥,支付宝公 ...
- Android接入支付宝和微信支付
然后把下载下来的aar包,放到项目目录下面的libs目录下,通过下面的gradle依赖进来 // 支付宝 SDK AAR 包所需的配置compile(name: 'alipaySdk-15.6.0-2 ...
随机推荐
- 命令行方式使用abator.jar生成ibatis相关代码和sql语句xml文件
最近接手一个老项目,使用的是数据库是sql server 2008,框架是springmvc + spring + ibatis,老项目是使用abator插件生成的相关代码,现在需要增加新功能,要添加 ...
- 【mysql】添加对emoji的支持
1.简介 涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集,避免 emoji 表情符号带来的问题 MySQL Server > 5.5.3 2.配置+升级 当前配置 m ...
- cd dirname $0
这个命令的功能是返回脚本正在执行的目录. 可以根据这个目录来定位运行的程序的相对位置. 这样,对shell脚本里面的相对目录的路径代码就比较安全了.在任何一台服务器上面都可以安全执行.
- JQ插件
什么是插件 插件(plugin)是JQuery的扩展(Extension),以JQuery的核心代码为基础,是一种遵循一定规范的应用程序接口编写出来的程序. 插件的引入 引入jquery.js文件 引 ...
- 如何通过js实现图片预览功能
一.效果预览 效果图: 二.实现代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...
- Andorid 内存溢出与内存泄露,几种常见导致内存泄露的写法
内存泄露,大部分是因为程序的逻辑不严谨,但是又可以跑通顺,然后导致的,内存溢出不会报错,如果不看日志信息是并不知道有泄露的.但是如果一直泄露,然后最终导致的内存溢出,仍然会使程序挂掉.内存溢出大部分是 ...
- [转]IOS上路_01-Win7+VMWare9+MacOSX10.8+XCode4.6.3
本文转自:http://my.oschina.net/vigiles/blog/141689 目录[-] 1. 资源准备: 1)实体机: 2)VMWare9: 3)VM for MacOS 补丁: 4 ...
- Android优化——UI优化(一)优化布局层次
优化布局层次 1.避免布局镶嵌过深(如下) <LinearLayout xmlns:android="http://schemas.android.com/apk/res/androi ...
- git 添加文件
git 添加文件三步骤 git add filename git commit -m 'remarks' git push origin master
- Gradle命令行操作
任务排除 gradle task1 -x task2 task2就是被排除的任务,同时task2依赖的任务也会被排除掉 守护进行执行 默认情况下,每次构建,都要启动一次JVM, gradle -dae ...