微信支付三大支付方式里面,最复杂也是坑最多
2021-01-31
微信支付
在三种支付方式中,最复杂,最棘手的非微信支付就是微信支付。让我们从微信开始。
微信支付有四种常见类型:
微信JS付款,也称为官方帐户内的付款,使用场景是微信中的H5商城。 WeChat PC付款不能在WeChat之外使用,也称为扫描代码付款。使用场景为PC端。请注意,这不是“本机扫描代码支付”微信APP支付,使用场景是本机或混合APP微信WEB支付,该场景是微信外部的触摸屏网站,此界面一直可用,仅最近开放允许普通公司申请,如果有的话,我会谈谈
自从接口应用阶段以来,这四种方法都有其自身的陷阱。我要感谢腾讯为我们增加了很多工作。
微信JS付款的第一阶段:界面应用程序
因为这是面向开发人员的教程,所以具体的应用条件以及如何应用将不会太详细。请注意以下几点:
请设置您的微信帐号为官方帐号的临时管理员。获取官方帐户和商户平台的帐户和密码。您需要在微信平台上自行检查APPSECRET。此过程需要官方帐户管理员授权商家平台。要配置KEY,在此过程中,两条验证短信将发送到领导者的手机上
简而言之php微信支付接口开发教程,这四个数据需要在第一阶段结束时准确获得:
APPID登录到公共平台以查看APPSECRET-登录公共平台以申请重置,然后查看MCHID-商户平台的IDKEY-商户平台本身设置的KEY
检查APPID
查看APPSECRET
查看MCHID
设置密钥
第二阶段:配置
此处的配置是指公共平台的配置。该配置需要详细说明。如今,各种现成的项目和集成的付款代码比比皆是,但是您无法使用它。现在不要花时间对其进行审查。该代码与您的配置有关。让我们原则上了解它:
企业域名,JS接口安全域名,网页授权域名
PHP支付界面教程,微信支付,支付宝支付,银联支付(一)
的详细说明
这三个参数在同一页面上配置,并且配置方法相同。只需直接填写域名。如果您遇到的问题是REDIRECT_URI错误,则可能是这里的问题。
付款授权目录
PHP支付界面教程,微信支付,支付宝支付,银联支付(一)
的详细说明
请务必填写实际开始付款的页面的网址php微信支付接口开发教程,并以斜杠结尾。然后有三个问题:
1. 我完全没搞懂实际发起支付的是哪个URL
2. 我并不清楚什么叫斜杠结尾
3. 我配置对了为什么没用
在获取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支付的原理或公钥和私钥的原理,因为我不想留下太多漏洞。
控制文章的节奏似乎有点不足,但是我将尝试避免使用大规模代码,分享更多经验和干货,并从初学者的角度撰写更多文章。如有任何疑问,请留言讨论,希望对大家有帮助!
以上内容均为作者原创,特此声明,如果需要转载,请征得您的同意