微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
作者:moTzxx 发布时间:2023-11-18 19:09:27
本文实例讲述了PHP实现微信公众号支付功能。分享给大家供大家参考,具体如下:
直言无讳,我就是一个初涉微信开发的小白,写这篇博客的原因:一是为了给自己做下备忘记录,以便以后能回忆这条程序猿的坎坷路;二是希望能帮助到同是自学开发的小白们;三是对那些不屑一顾于我等尘埃的大牛们的控诉,小白的道路坎坷,你们凭什么总要一副高高在上的样子?我等敬而不畏...
背景介绍:
随着智能手机的普及,移动支付下的微信、支付宝所提供的便利需求不言而喻,好吧,至少我周围连个小摊贩的早餐都可以微信支付,而且人家手机还比我高档得多。现在我需要测试并实现微信支付功能,显然只需能有一个可以成功使用的demo参考,后面的拓展开发也不会难到哪里去,重要的就是关键难点攻克,毕竟两天才折腾出来的我只有被上级训斥的命
操作步骤:
一.参考微信支付开发文档
1.搜索 微信支付开发文档
在此选择“公众号支付”,个人建议如果时间允许可以阅读官方提供的文档所有信息,也算是对人家成果的一种肯定,虽然很多人吐槽接口中曾存在的 bug,另一种情况就是直接下载他们的 SDK,先测试功能,再根据具体情况仔细研究
2.起初网上搜索到的博文有很多介绍很久以前的 SDK
说里面有报错、少“T”字母、“curl_close($ch)”语句不该出现等BUG,基本上如果配置没有问题,根据报错就能百度到很多解决方法,获取官方根据反馈已经作了修改,我下载到的文件夹,若是扔到公司的服务器,完全可以实现支付一分钱的功能演示,所以说代码是没有问题的,只是需要自行配置
二.服务号/商户号 公众号信息配置
1.在“基本配置”中获取 AppID,AppSecret 等信息,注意开启“开发者模式”
2.在“微信支付”中选择“开发配置”
根据提示配置授权目录,因为我暂时仅作为微信支付的测试,所以选择的是“测试授权目录”进行了路径的填写,参考部分网上建议,也亲测发现该目录写到测试页面的上一级目录是最合适的,下图可做参考。
3.添加测试白名单
4.在“接口权限”中,进行网页账号的授权修改
跟上一篇微信端分享功能中介绍的一样,将公司域名添加上即可(去掉http://)
三.代码配置实现
1.登录商户平台下载商户证书,然后放置在cert/目录下
2.根据代码中对下面四个重要数据的描述,获取并添加到相应位置
3.注意测试demo的支付界面为 jsapi.php
建议认真阅读该文件中的代码,以便熟悉内部的信息设置,方便以后开发的顺利进行。
4.接收微信支付成功的回调 进行数据处理
四.功能实现展示
1.使用“草料二维码”
将需要访问的支付界面的路径生成二维码 扫描。其中显示的数据是由于我测试var_dump()打印出的信息,便于参考
2.点击“立即支付”后进行支付界面的跳转输入密码可成功支付
3.个人认为
如果进行支付结果的返回,应该可以据此判断自行跳转自定义的支付成功界面,其实微信本身提供的界面已经习以为常,之后再做琢磨。
附录:
1.源代码参考链接
2.推荐文章
ThinkPHP整合微信支付之JSAPI模式
PHP微信支付接口开发
ThinkPHP微信支付接口开发完整例子
希望本文所述对大家PHP程序设计有所帮助。
来源:https://blog.csdn.net/u011415782/article/details/51902882


猜你喜欢
- 前言pycharm是python的一个商业的集成开发工具,本人感觉做python开发还是很好用的,django是一个很流行的python w
- 在制作网页以及编程的时候,适当的进行注释,不仅使自己的思路清晰,极大地减轻了维护的难度,而且方便项目组其他人了解你的代码,方便对代码的理解以
- 这篇博客将介绍如何通过OpenCV中图像修复的技术——cv2.inpaint() 去除旧照片中的小噪音、笔划等。并提供一个可交互式的程序,利
- 文中给大家介绍MySQL 字符串截取相关函数,具体内容如下所示:在工作中,可能需要将某些字段按某个分割符组成一个字符串作为字段值存取到数据库
- MySQL中的锁锁是为了解决并发环境下资源竞争的手段,其中乐观并发控制,悲观并发控制和多版本并发控制是数据库并发控制主要采用的技术手段(具体
- 查询数据指从数据库中获取所需要的数据。查询数据是数据库操作中最常用,也是最重要的操作。用户可以根据自己对数据的需求,使用不同的查询方式。通过
- 写在前面在用pd.read_csv读取数据集时,我有2个疑问?1是:写相对路径还是绝对路径。2是:相对路径,绝对路径怎么写。这篇文章就是解决
- <% Response.Buffer = True Server.ScriptTimeOut=9999999&
- 关于python中的二维数组,主要有list和numpy.array两种。好吧,其实还有matrices,但它必须是2维的,而numpy a
- 本文实例为大家分享了python实现简易动态时钟的具体代码,供大家参考,具体内容如下from turtle import *from dat
- 浅谈tensorflow语义分割api的使用(deeplab训练cityscapes)安装教程:cityscapes训练:遇到的坑:1. 环
- 前言不同于Linux服务器上的命令行操作,在windows系统上用户的使用习惯还是倾向于使用有界面的工具。如果工具是命令行交互操作的方式,可
- 本篇文章来介绍一道非常常见的面试题,到底有多常见呢?可能很多面试的开场白就是由此开始的。那就是 new 和 make 这两个内置函数的区别。
- What? 什么是面包屑面包屑是作为辅助和补充的导航方式(secondary navigation scheme),它能让用户知道在网站或应
- Python是我喜欢的语言,简洁,优美,容易使用。前两天,我很激昂的向朋友宣传Python的好处。听过之后,朋友问我:好吧,我承认Pytho
- Image模块Image模块是在Python PIL图像处理中常见的模块,对图像进行基础操作的功能基本都包含于此模块内。如ope
- 这篇文章主要介绍了Python基于内置库pytesseract实现图片验证码识别功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具
- 如果这个问题不解决,那么MySQL将无法实际处理中文。 出现这个问题的原因是因为MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时
- 前言在使用 Go 语言开发过程中,我们不免会定义结构体,但是我们定义的结构体都是有字段的,基本不会定义不包含字段的 空结构体。你可能会反过来
- http请求介绍HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTT