您现在的位置是:首页 > PHP > 微信扫码支付的流程 网站首页 PHP

微信扫码支付的流程

Tom2016-10-30 1311人围观
PHP  
简介 暂无

微信扫码支付其实很简单,步骤如下

1:开通微信公众号,

2:绑定微信商户号,

3:开通微信支付,

4:在开发页面去请求地址,返回code,并利用利用第三方软件,生成二维码,这是一种二维码方式

微信提供了两种扫码的方式,今天只说模式2,因为模式一我也没用过哈,模式1需要在微信公众号去绑定扫码的会掉地址,略显麻烦,今天略过,以后在尝试,下面是开发步骤-(使用thinkphp框架开发做演示)

1.下载微信支付的sdk,(扫码支付官方文档地址)

打开就是这个效果


首先从入口开始入手,打开index.php,大概浏览一下,你也可以这个考到环境下配置好,直接访问下,就可以看到支付的效果

首先在php下配置好一个新建文件夹weixing,然后重定向地址到weixing.com,把下载下来的sdk放进去


接下来就可以访问了,输入weixing.com,


点击扫码支付,就会出来两个二维码,模式1,和模式2,模式2 的二维码只能存在2个小时,而且支付过的订单不再生成二维码,如果想循环支付最好订单号设置成随机的,


发现没有这里的跳转地址其实跑到其他域名去了,并不是我们定义的weixing.com,这里的扫码支付是别个给的测试地址,所以还是要看代码

打开里面的index.php,找到扫码支付的链接地址,解读文件夹位置,在example下的native.php


接着打开native.php,模式2的支付代码在这里


下面是实现二维码的网页,通过微信返回的url2,在利用第三方的二维码链接生成图片,就可以扫码了哟


好了,这个是具体的步骤,那么要问了,我怎么设置付给那个公众号的呢

还是看这个文件,最上面有加载的文件,我们去打开看下


第一行是设置时区为亚洲上海,这个没什么好看的,第三行是加载wxpay.api.php这个文件,打开它就好了

找到第一个方法unifiedOrder,统一下单的方法


里面是一些检测参数的判断,这个不要看他多,多就多呗,接着往下看


这里有几个set开头的方法就是设置相关参数的方法,不如公众号ID,和商户号,就是这两个就够了,其他的想ip地址都是自动获取的,不看也罢,也烦

那么这里的APPID,明显是一个常量,在哪里设置的呢,再去看这个类的上面的加载文件

依次打开看,第一个是检测api是否异常的,不管,第三个是修复签名的,也不看,直接看第二个,配置支付参数WXpay.Config.php


直接在这里配置好你的参数就可以了,Appid,appsecret在公众号中可以看到,mehid和key在商户平台可以看到,商户号没有key可以设置(这里不讲解商户号的问题)

接下来还有下面的证书,一样是在商户平台去下载放到你的对应目录下


到这里就配置完成了,

好了,现在就去把入口的index.php的扫码地址设置为自己的就可以测试了


当然现在这样直接访问肯定要出错,1:地址是本地的,获取不到openid,必须要在微信中使用才可以,所以就是说你必须要有一个域名和服务主机才可以测试呢,如果你没有商户号和公众号也是白搭啊,我们这里使用一个测试,放到我自己的服务器上测试,下次分享结果

把东西传到服务器之后,就可以正常使用了,这是我夹在服务器上的扫码地址(测试地址,请不要支付,支付了我也拿不到,这是微信官方的支付支付,但是钱并不会退回来,所以要慎重)我上次测试了下,然而并没有还给我


然后接下来就是一些价格的设置和订单支付后的回调的问题了

首先说一下价格的设置,在native.php  中设置价格,当然以后使用thinkphp开发后可以使用在控制器中处理,再把数据渲染到页面,来看看设置价格吧


第一个setbody第二个setarrach是设置订单的提示信息,比如付款的原因标题;

第三个setout_trade_no是设置订单号,这里使用的随机的订单号,因为扫码可以是多次,如果只想扫一次付款后就作废,请使用商户订单号,成功就不再生成二维码

第四个settotal_fee是支付的价格,单位是分,使用的使用请乘以100,不要搞错了,

还有一个setnotify_url是设置的回调地址,微信会在付款后去请求这个地址一般情况下这个页面必须要不验证就能访问才可以被微信访问到,在你的毁掉函数里面做订单的处理,比如,支付成功后更改该订单的状态或者其他的操作,

1直接在wxpay.notify.php的notifyProcess方法中处理用户自己的支付成功的处理,处理完成返回true,微信回调停止,失败返回flase,微信继续执行回调,(微信这里搞得好复杂),直到成功,但是最多回调30次好像,多了就没了

2,在notify.php使用重写这个notifuprocess方法更好点,这样可以多吃调用,推荐使用第二种

基本到这里就结束了,下面是微信回调的流程可以略过

打赏本站,你说多少就多少

文章评论