PC扫码支付

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

【模式一】:商户后台系统根据微信支付规则链接生成二维码,链接中带固定参数productid(可定义为产品标识或订单号)。【模式二】:商户后台系统调用微信支付【统一下单API】生成预付交易,将接口返回的链接生成二维码,用户扫码后输入密码完成支付交易。

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

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

第一阶段:接口申请

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

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

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

第二阶段:配置

支付授权目录

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

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

第三阶段:调试

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

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

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

写在最后

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

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

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

希望能对大家有帮助!

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

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

PHP支付接口教程,详解微信支付(二)相关推荐

  1. android微信条码支付接口,Android中调用微信支付接口

    在我的项目中还没有接入这个功能的时候就听说微信支付的接口很坑爹,用完之后发现别人说的一点也没有错,蛋疼归蛋疼,该用还是要用.在这里把遇到的问题记录一下以免以后需要再次接入的话碰到问题浪费时间. 微信支 ...

  2. 微信支付 php详解,微信支付之公众号支付详解

    本文主要和大家分享微信支付之公众号支付详解,随着微信支付的流行,大多产品都开发了自己的公众号.小程序等,产品的营销需要支付的支撑,最近做了个微信公号号支付,采坑无数,今天给大家分享一下,希望能帮助到大 ...

  3. 详解微信支付中的异步通知

    1.什么是异步通知? 先说说同步通知,在平时我们付款的时候,特别是在银行转账的时候点击付款后一般都会给我们反馈显示付款成功,这个通知就是同步通知.同步通知仅仅代表调用支付接口成功,也就是用户付款的操作 ...

  4. 个人申请微信支付接口教程(免签约支付)

    以下针对企业和个体工商户才可以申请的,如果个人想申请的话 您转到网址http://www.alywlzf.com 公众号申请好并且认证完成之后,开始申请微信支付,注意申请支付要有营业执照和对公账户,个 ...

  5. 汇付聚合支付自助接入解决方案快捷支付接口代码详解

    上篇文章 <汇付聚合支付自助接入的一点经验分享> 发出后,受到众多朋友的阅读与评论,在此感谢大家的厚爱.看有些朋友评论说:很有用,能不能再讲具体一点,今天我就应大伙需求,来具体讲一讲里面的 ...

  6. 财付通支付接口使用说明详解

    财付通是腾讯公司创办的中国领先在线支付平台,为使各位站长能更方便地使用该支付功能,积分充值增加了财付通支付接口及方便的测试功能,您只需在后台绑定财付通商户号及密钥并进行支付测试,测试成功,论坛的财付通 ...

  7. java微信支付接口源码_java微信支付源码(WxPayAPI_JAVA_v3)

    [实例简介] [实例截图] [核心代码] package com.github.wxpay.sdk; import java.util.HashMap; import java.util.Map; i ...

  8. 上海银联chinapay支付接口实现详解

    <?php header('Content-type: text/html; charset=gbk'); include_once("netpayclient_config.php& ...

  9. 微信支付:支付流程分析、微信扫码支付(HttpClient)、微信支付二维码生成、检测支付状态、订单状态操作准备工作、支付信息回调、MQ处理支付回调状态、定时处理订单状态

    微信支付 微信支付开发的整体思路 生成支付二维码 查询支付状态(微信的服务器) 实现订单状态的修改.删除订单 支付状态回查->微信服务器将支付状态返回给支付微服务 MQ处理支付回调状态 Rabb ...

最新文章

  1. python编程基础知识体系_最新版 17 幅思维导图:Python 编程之核心知识体系
  2. html的区域大小,JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性...
  3. C语言之sprintf使用总结
  4. Acwing -- 单调队列优化的DP问题
  5. ISP图像调试工程师——3D和2D降噪(熟悉图像预处理和后处理技术)
  6. 计算机检索系统中 每一种文献特征,自考《档案文献检索》串讲资料(1)
  7. 学习HanNLP2015年12月4日 16:24:53
  8. 9008刷机工具_黔隆科技刷机教程OPPOR9S忘记密码免刷机保资料解屏幕锁教程
  9. 基于Matlab科技论文绘图:plot、imagesc
  10. 计算机专业英语高等教育出版社2013版
  11. 实验六 视图的创建与管理
  12. 图注意力网络GRAPH ATTENTION NETWORKS(gat)浅读
  13. [BZOJ3772]精神污染 主席树上树+欧拉序
  14. LiveData去除粘性
  15. 数字图像处理Project1——指纹图片的增强
  16. 广义表的表头和表尾是什么?
  17. 不花钱,模拟登录古诗中文网
  18. 抖音招商团长怎么做?怎么入驻?
  19. kafka性能测试、性能分析与性能调优
  20. 《PCL点云库学习VS2010(X64)》Part 34 旋转平移矩阵用法

热门文章

  1. Ubuntu20.04 编译运行apue.3e 避坑指南
  2. 华为计算机如何计算sina,一道华为的“简单四则运算”题
  3. Dozer 使用总结
  4. Weblogic下创建JMS消息服务
  5. 【题解】CF#611 H-New Year and Forgotten Tree
  6. 解题:POI 2004 String
  7. java操作Excel之POI(3)
  8. step4 . day6 线程与线程的创建
  9. python3 requests 库学习
  10. 利用python中的xlrd和xlwt操作excel