微信支付V3 php native模式2支付

时间:2022-10-25 11:20:42

这里是用微信sdk默认的账号在测试的,所以要用的时候要记得更改几个参数:

lib中的

 微信支付V3 php native模式2支付

 

 

eclipse php中新建一个工程,然后打开工程并添加微信案例进入

   微信支付V3 php native模式2支付

对代码进行分析,首先,双击index.php然后启动,进来的时候会默认停在第一行所以要记得继续运行

记得额,开着浏览器在打开微信支付会卡住,因为eclipse会自动劫持,并下断点所以调试还是用eclipse

如果要运行就别eclipse,而是用浏览器就行

    微信支付V3 php native模式2支付

 

 

点击扫描支付:

 微信支付V3 php native模式2支付

程序尽到这里并停在第一行

 微信支付V3 php native模式2支付

当运行到这行的时候,出现错误,无法显示页面

 微信支付V3 php native模式2支付

所以直接步入跟踪

到这里出现错误,继续重头开始跟踪

 微信支付V3 php native模式2支付

到这里出现错误,继续步入跟踪

 微信支付V3 php native模式2支付

发现最终到达这里,正是这个curl_init函数导致的,而这个是系统函数,

 微信支付V3 php native模式2支付

百度之后发现,解决办法

1. 找到php.ini

修改extension=php_curl.dll把前面的分号去掉

 微信支付V3 php native模式2支付

2. php_curl.dll

     php5ts.dll

     libeay32.dll

     ssleay32.dll    

 微信支付V3 php native模式2支付

    复制到 windows/system32syswow64下 重启IISApache服务即可。

后来就可以继续运行了,然后出现这问题,即二维码没有参产生

 微信支付V3 php native模式2支付

最终跟踪到这里,发现还是一个库没打开,就是gd2这个库,打开才能使用图片绘制功能

 微信支付V3 php native模式2支付

 

Windows下开启PHPGD库支持

找到php.ini,打开内容,找到:

;extension=php_gd2.dll

把最前面的分号“;”去掉,再保存即可,如果本来就没有分号,那就是已经开启了。重启Apache服务器

##安装完毕后

**请查看,AKCMS后台/index.php?file=welcome&action=phpmodules或者PHP探针,GD库是否安装成功**

那么,[不开启GD库对AKCMS有什么影响呢](http://www.akhtm.com/manual/akcms-gd.htm "AKCMS没有GD库的情况")

 微信支付V3 php native模式2支付

用手机扫描,然后支付,返回支付成功在手机上显示,然后并通知到服务器这边,

发现没有页面返回,后来才看才知道,原来在日志里面,通过日志发现

似乎已经成功了

 微信支付V3 php native模式2支付

 


退款申请,之前的步骤结合支付去看,现在直接调试,

首先点击

 微信支付V3 php native模式2支付

进入到这个页面:

 微信支付V3 php native模式2支付

点击提交

跟踪到这里,返回错误

 微信支付V3 php native模式2支付

提示错误码为58,接下来百度发现

 微信支付V3 php native模式2支付

微信支付V3 php native模式2支付

 

 上面这些是我自己的调试过程,具体的环境搭建比较简单,可以看百度上的网友做的教程,我这里是用eclipse for PHP和xdebug做得开发,由于之前自己在摸索这些的时候,走了很多弯路,命名代码就那么一点,没啥难度,但是就是不能用,从本来想用C# .net到后来用php,反正真是很无语了,希望这些对大家有用,

对了记得将电脑的内网映射到外网上, 我用的花生壳,虽然不稳定,不过还凑合,刚开始要付费的,好像是几块钱,配置方法很简单,百度就有了,


最后要注意,上面那些调试中,密钥的绝对地址要修改成你自己的,还有服务器地址,就是index.php那个文件里面的服务器地址,也要改成自己的服务器地址,不然是不能用的,


总结,要做微信开发,首先:

1--建立PHP开发环境,我这里使用PHP的,所以只讲PHP

2--建立服务器,将内网映射到外网上,这样微信服务器才能访问到你的电脑上的php文件,

3--这是从微信支付案例中来的,所以里面用到的appid和什么aspectID都是用微信sdk中的,反正那个不用去改,改了反倒坏事。

ok了。