开发者社区> fourn> 正文

PHP支付接口教程,详解微信支付(二)

简介: PC扫码支付 扫码支付首先是要分清楚两种模式: 【模式一】:商户后台系统根据微信支付规则链接生成二维码,链接中带固定参数productid(可定义为产品标识或订单号)。
+关注继续查看

PC扫码支付

扫码支付首先是要分清楚两种模式:

【模式一】:商户后台系统根据微信支付规则链接生成二维码,链接中带固定参数productid(可定义为产品标识或订单号)。

【模式二】:商户后台系统调用微信支付【统一下单API】生成预付交易,将接口返回的链接生成二维码,用户扫码后输入密码完成支付交易。

上面是官方的说法,简单来说就是模式一多用于线下,而模式二用于线上。我们所说的扫码支付都是指模式二,它算是4种常用的微信支付方式里面最简单的了。说它简单主要体现在两个地方:

  1. 不需要像微信JS支付一样,获取网页授权,获取OPENID
  2. 不需要组装JS,只用把接口返回的code_url转成二维码然后放到页面上

第一阶段:接口申请

只要在微信公众申请了微信支付的,JS支付和扫码支付就都可以集成。如何申请不会讲的太详细,只需要注意下面几点即可:

  1. 成为公众号的临时管理员
  2. 把公众号和微信商户的账号密码都拿到手
  3. 微信商户需要自己去配置一下秘钥,这个过程会有两次短信验证

会发现,如果只是做扫码支付的话,我们并不需要用到APPSECRET。原因是使用微信扫码的这个过程会验证付款者的身份,所以统一下单时是不需要去获取OPENID的,自然也用不到公众号的接口,也就不需要SECRET。
当然这种只有PC站点的情况很少,所以建议还是把四个参数都拿其,具体的获取位置可以看之前的(一)。
PHP支付接口教程,详解微信支付(一)

第二阶段:配置

支付授权目录

img_26774cf5811c184b7136ffa6fd3dec84.jpe
PHP支付接口教程,详解微信支付(二)

关于授权目录的配置方式在上一篇中有详细描述。这里要注意的是上图里面的扫码支付回调URL,和我们所做的扫码支付并没有任何关系,如果支付出现问题,千万不要认为是这里出了错。

第三阶段:调试

  1. 把你的参数放到项目中并确保他们正确
  2. 测试统一下单接口能否正常获取到预支付订单
  3. 测试支付回调数据是否正常,这里有个小技巧,就是可以直接把code_url发送到你的微信打开,同样是可以完成支付的
  4. 找一个稳定的二维码生成库(例如phpqrcode),把code_url转化成二维码

到这里基本支付就可以验收了,但是体验不太好,和支付宝的扫码相比,微信扫码支付要把二维码放到我们自己的页面上,这就需要我们自己设计一个放二维码的地方。
还有微信扫码支付并不存在前台回调页面一说(其他支付方式都有),意思也就是你扫码支付明明成功了,可是如果不处理的话支付页面将不会有任何反应。给大家两个建议:

  1. 放一个支付成功的按钮到页面上让用户自己确认已付款成功,你只需要在下一个页面验证是否真的付款成功。听起来有点蠢,可是这种方式曾经也被很多大网站使用过。
  2. 在支付页写一个AJAX用轮询的方式不断的向后台询问订单支付的情况,如果返回成功则跳像成功页面。这样会让用户觉得PC和手机似乎是同步的,体验比较好。

写在最后

作为比较简单的支付方式,扫码支付集成起来不会有太多困难,更多的是对于支付页面的处理。
这里需要提一下我们最终的目的,写一个通用的支付类,让支付接口开发变得轻松愉快。目前为止,我们在微信支付上已经遇到了两种不同返回情况:

  1. 通过支付类得到一个按钮,按钮触发微信JSSDK
  2. 通过支付类得到一张二维码图片和一个轮寻页面的JS

第二种情况,即便是把轮寻的JS也封装到支付类中,还是需要自己写一个被轮询的页面,这似乎不是一个很好的设计,因为这样一来,支付发起的流程和页面逻辑之间将产生很强的耦合。具体的解决办法,将在分析完所有的常用支付方式之后再讨论。

希望能对大家有帮助!


img_d65f73ad3413b07da6af693cee5650d4.jpe
PHP支付接口教程,详解微信支付(二)

以上内容属于作者原创,特此申明,如需转载,请取得同意

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
[从0开始]PHP+phpstudy留言板项目搭建教程及报错详析
PHP是在服务器端执行的脚本语言,适用于Web开发并可嵌入HTML中。 学习网站:PHP教程 | 菜鸟教程
36 0
PHP实现微信支付签名算法(MD5版本及HMAC-SHA256版本)
PHP实现微信支付签名算法(MD5版本及HMAC-SHA256版本)
183 0
微信支付基于PHP
微信支付基于PHP
65 0
php开发微信APP支付接口
php开发微信APP支付接口
2683 0
复盘微信支付金额不正确问题解决过程——PHP浮点型计算
问题 2017年9月份,商城项目在运行过程中,购买某商品时如果在下单时没有完成付款,而是稍后再从“个人中心-我的订单”发起付款,则无法调起微信支付界面 思路 其他商品正常,说明导致问题的原因大概率是商品本身 只有从会员中心发起的付款存在此问题,说明大...
1235 0
php开发微信支付获取用户地址
使用微信获取地址信息是和微信支付一道申请的,微信支付申请通过,就可以使用该功能。 微信商城中,使用微信支付获取用户的收货地址,可以省略用户输入地址信息的繁复流程,提高用户体验。
975 0
PHP支付接口教程,详解微信支付(三)
微信APP支付 接口申请 微信APP支付和其他支付接口最大的不同在于——申请方式 无论是JS支付、PC支付还是WEB支付,都是用通过微信的公众进行申请的,但APP支付却是通过微信开放进行申请的。
1133 0
PHP支付接口教程,详解微信支付(一)
微信支付 三大支付方式里面,最复杂也是坑最多的非微信支付莫属,我们从微信开始讲。 常见的微信支付种类有下列四种: 微信JS支付,也称公众号内支付,使用场景就是微信里面的H5商城,在微信以外的地方无法使用 微信PC支付,也称扫码支付,使用场景是PC端,注意这里并不是“原生扫码支付” 微信APP支付,使用场景是原生或者混合APP 微信WEB支付,场景是微信外的触屏网站,这个接口一直都有,只是最近才开放出来可以让普通公司申请,这个如果有机会的话也会讲一讲 从接口申请阶段开始,四种方式就各有各的坑,这里不得不感谢一下腾讯,替我们增加了很多工作量。
1606 0
Dcloud中mui 微信支付和支付宝支付接口完美实现付款代码(PHP支付宝demo)
Dcloud中mui 微信支付和支付宝支付接口完美实现付款代码(PHP支付宝demo),官网上下载的一直报‘创建订单错误‘和各种报错,于是自己就试着写了一个demo,亲测,可用。
1719 0
+关注
fourn
这个人很懒,但他留下了什么...
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
PHP 2017.北京 全球开发者大会——高可用的PHP
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多