想着中秋节的时候把异步线程学习完,同事说有个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端接入支付宝和微信感悟的更多相关文章

  1. 智齿客服网页端接入文档V2.3

    产品介绍 智齿客服网页端接入提供以下两种部署方式. 一.网页组件(推荐) 通过智齿客服网站咨询组件,企业的用户可快捷联系到企业客服获取帮助.智齿客服网页组件提供强大的用户行为采集能力和系统对接能力,支 ...

  2. React-Native调用支付宝,微信

    https://www.pingxx.com/docs/downloads Ping++ 是为移动端应用以及 PC 网页量身打造的下一代支付系统,通过一个 SDK 便可以同时支持移动端以及 PC 端网 ...

  3. 支付宝支付 微信支付SDK接口不统一? 盘他!

      开发过支付宝.微信支付的同学都知道,微信的支付 API 设计感觉是 Java 开发工程师写的,远不如支付宝 SDK 的接口设计用起来顺手.在这里,统一封装微信支付和支付宝支付的API,使两种支付方 ...

  4. ecshop增加pc扫描二维码微信支付功能代码

    ecshop开发网站,如果没有手机版,又想通过微信支付,可以加入pc二维码扫描微信支付功能 工具/原料 ecshop商城系统,phpqrcode,WxPayPubHelper 公众号已申请微信支付 方 ...

  5. IOS 支付宝、微信回调传值给H5网页

    这里用是的苹果原生和JS的交互 .有不明白JavaScriptCore框架的可以去网上搜索下这方面的资料很多废话不多说直接上代码 @protocol JSContextDelegate <JSE ...

  6. spring_boot_pay支付宝,微信,银联支付详细代码案例

    spring-boot-pay 支付服务:支付宝,微信,银联详细代码案例(除银联支付可以测试以外,支付宝和微信支付测试均需要企业认证,个人无法完成测试),项目启动前请仔细阅读 注意事项  . 友情提示 ...

  7. iOS支付宝,微信,银联支付集成封装调用(下)

    一.越来越多的app增加第三方的功能,可能app有不同的页面但调用相同的支付方式,例如界面如下: 这两个页面都会使用第三方支付支付:(微信,支付宝,银联)如果在每一个页面都直接调用第三方支付的接口全部 ...

  8. JAVA支付宝和微信(APP支付,提现,退款)

    公共参数图表:       接口 需要参数 通知方式 支付宝APP支付 应用公钥,应用私钥 异步 支付宝APP提现 应用公钥,应用私钥,支付宝公钥 同步 支付宝APP退款 应用公钥,应用私钥,支付宝公 ...

  9. Android接入支付宝和微信支付

    然后把下载下来的aar包,放到项目目录下面的libs目录下,通过下面的gradle依赖进来 // 支付宝 SDK AAR 包所需的配置compile(name: 'alipaySdk-15.6.0-2 ...

随机推荐

  1. 关于移动端的font和图片的问题

    一.font-family 使用无衬线字体 body { font-family: "Helvetica Neue", Helvetica, STHeiTi, sans-serif ...

  2. 软件测试作业1--描述Error

    记忆犹新的错误: 上个学期选修了可视化这门课程,最后大作业用d3实现,在使用d3读取csv数据的时候出现了以下Error: 我先是在代码中读取了某csv格式的数据,并且将其存入变量root中,然后对r ...

  3. SQL基础(1)-创建及修改表

    1. 建表语句 CREATE TABLE fdh_client_info ( id varchar2(50) primary key, name varchar2(30) not null, sex ...

  4. Hibernate案例-------基于xml配置,使用Hibernate实现对员工表的增、删、改、查功能

    1.1 问题 使用Hibernate实现对员工表的增.删.改.查. 1.2 方案 Hibernate使用步骤: 导入Hibernate包,以及数据库驱动包. 引入Hibernate主配置文件hiber ...

  5. Windows x86/ x64 Ring3层注入Dll总结

    欢迎转载,转载请注明出处:http://www.cnblogs.com/uAreKongqi/p/6012353.html 0x00.前言 提到Dll的注入,立马能够想到的方法就有很多,比如利用远程线 ...

  6. 终于完成了Josephus的C语言实现啦~~

    /*以下程序用来解决Josephus问题,现在只是完成了M>N的情况,2015-08-20 22:22:20*//*发现一个问题:数组的赋值问题:char People[N]={1};并不代表所 ...

  7. Ubuntu进阶学习,指令迅速查询,Bug迅速查询(Ctrl+F)

    There is some notes while I am learning Ubuntu Operate System! (Ask Ubuntu) 1-- Hard link : ln comma ...

  8. hiveql basic

    set hive.cli.print.current.db=true; set hive.mapred.mode=strict; set hive.mapred.mode=nonstrict; SHO ...

  9. uva 1152 4 values whose sum is zero ——yhx

    The SUM problem can be formulated as follows: given four lists A;B;C;D of integer values, computehow ...

  10. python中怎么查看当前工作目录和更改工作目录

    查询当前目录:os.getcwd() 更改当前目录:os.chdir()