登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 816|回复: 0

PHP付出接口教程,详解微信付出(一)

[复制链接]

9

主题

9

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
0
发表于 2018-11-10 02:52:03 | 显示全部楼层 |阅读模式 来自 江苏徐州
微信付出


三大付出方式内里,最复杂也是坑最多的非微信付出莫属,我们从微信开始讲。别的两个分别是付出宝和银联付出。
常见的微信付出种类有下列四种:

  • 微信JS付出,也称公众号内付出,利用场景就是微信内里的H5商城,在微信以外的地方无法利用
  • 微信PC付出,也称扫码付出,利用场景是PC端,留意这里并不是“原生扫码付出”
  • 微信APP付出,利用场景是原生大概混淆APP
  • 微信WEB付出,场景是微信外的触屏网站,这个接口不停都有,只是近来才开放出来可以让平凡公司申请,这个假如有时机的话也会讲一讲
从接口申请阶段开始,四种方式就各有各的坑,这里不得不感谢一下腾讯,替我们增长了许多工作量。
微信JS付出

第一阶段:接口申请

由于是面向开辟职员的教程,以是详细的申请条件、怎样申请等内容并不会讲的太具体,只必要留意下面几点即可:

  • 请向导把你的微信号设置为公众号的暂时管理员
  • 把公众号和商户平台的账号暗码拿得手
  • 微信平台必要本身去重检察APPSECRET,这个过程必要公众号管理员授权
  • 商户平台必要本身去设置KEY,这个过程会有两条验证短信发到向导手机上
总之第一阶段末了必要把这四个数据正确的拿得手:


  • APPID——登录公众平台检察
  • APPSECRET——登录公众平台申请重置之后检察
  • MCHID——商户平台的ID
  • KEY——商户平台本身设置的KEY
bJNag75rZar662G7.jpg
检察APPID
bxxDKoVDojc9jSOJ.jpg
检察APPSECRET
Y74H5uOOt9BT0j4J.jpg
检察MCHID
R2Xwmh1Mb7xwx882.jpg
设置KEY
第二阶段:设置


这里指的设置是设置公众平台,设置有须要具体的说一下,如今各种现成的项目和集成付出代码触目皆是,但是你就是用不起来,这个时间万万不要花时间去检察代码,是你的设置出了题目。让我们从原理上来明白一下:
业务域名、 JS接口安全域名、网页授权域名
Y8cauaM87Ye0ymQv.jpg
这三个参数在同一个页面举行设置,设置方法也雷同,直接填写域名即可。假如你碰到的题目是REDIRECT_URI错误,那多半就是这里出现了题目。
付出授权目次
K4i98w3E7SCCck8K.jpg
这里肯定要填写现实发起付出的页面的URL,而且以斜杠末端。那么就有三个题目:

  • 我完全没搞懂现实发起付出的是哪个URL
  • 我并不清晰什么叫斜杠末端
  • 我设置对了为什么没用

  • 在获取OPENID的过程中会有一次重定向,一样平常是重定向回本页面,但也有部门项目不会这么做,好比ecshop,就被重定向到了别的页面,以是现实发起页面也就酿成了别的页面。
  • 斜杠末端就是把你的URL从右边开始数,遇到第一个斜杠,把你数过的部门删掉,剩下的就是精确的设置内容。固然另有广大ThinkPHP3.2用户,你们的参数用斜杠来传,就意味着你们在付出页面只能带一个参数,否则怎么设置都不会对的。
  • 有大概你压根没设置对,请参考前两条。假如你确定设置对了,请去喝一杯咖啡,这个设置有时间不会立刻见效。
第三阶段:调试


倒一杯咖啡,打开你心爱的代码编辑器,按照这6个步调来,不要浮躁,你将会再次感谢腾讯……

  • 把你在第一阶段预备的参数放到项目中(运气好的话此时你已经完成了开辟)
  • 测试CODE有没有获取到
  • 测试OPENID有没有获取到
  • 测试预付出订单是否正常
  • 测试JS是否正常
  • 测试回调数据是否正常

把踩过的坑大概套路与各人分享一下:
在官方DEMO中,JsApiPay类下面GetOpenid方法中第4行,
$_SERVER['PHP_SELF']

$_SERVER['QUERY_STRING']
之间少了一个问号。导致的题目就是有一些用GET传参的同砚,OPENID死活获取不到。
订单名称内里不能含有&,临时只发现这个符号会使得付出发起失败
署名错误,一样平常是再去查抄参数,特殊是一些看不到的字符大概混在参数中,最好不要猜疑署名方法有题目。流程中有4个左右的地方会署名,大概验证署名,肯定要确保所利用的KEY都是精确的。
在调试JS的时间用
alert(res.err_code+res.err_desc+res.err_msg)
把错误弹出来
测试回调的时间用
$GLOBALS['HTTP_RAW_POST_DATA']
来吸收微信的关照,做好是吸收到就存到数据库里,先确保吸收到了,再去调署名和业务逻辑。

写在末了

操纵类的内容和理论类的内容是分开的,比方本文就是操纵类的,以后将会有探究JS付出原理大概公私钥原理的文章,但不是如今,由于不想开留太多坑。

在文章节奏的把控上略显得有些不敷,不外我会只管不出现大篇幅代码,多分享履历干货,多以初学者的角度行文。假如有题目接待留言讨论,盼望能对各人有资助!
DAdA5o0zORn6gCS7.jpg
以上内容属于作者原创,特此声明,如需转载,请取得同意




上一篇:献给全部的PHPer!PHP经典教程系列——《Modern PHP》
下一篇:PHP教程从入门到醒目,PHP讲堂条记(一)网站构建
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-5-6 02:22 , Processed in 0.059324 second(s), 47 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表