【整理】微信支付接口常见问题

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: 【整理】微信支付接口常见问题

WePayLogo

首先放出本人开源的wordpress woocommerce的微信支付插件:

【原创】WooCommerce 微信支付插件

微信支付接口开发常见问题

我们按照微信官方提供的demo进行支付接口学习,但是不可避免会遇到一些问题,但是微信官方并没有社区相关的支持,也没有特别详细的文档,只能凭借自己的开发+搜索能力解决遇到的小问题了。

下面是本人整理的一些常见问题:

支付页显示乱码

解决这个问题很简单,直接在native.php头部加入如下代码即可:

header("Content-type:text/html;charset=utf-8");

如下图所示:

Snipaste_2018-12-08_12-23-30

微信支付模式二 二维码无法出现

二维码无法出现,大概率问题是因为服务器未开启SSL认证,也有可能是支付宝“签名错误”(签名错误在下个问题中讲解)。

我们为了在不带SSL验证的服务器进行支付,要修改/lib/WxPay.Api.php 函数 postXmlCurl 中的两行代码,将:

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验

修改为:

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);

如下图所示:

Snipaste_2018-12-08_12-29-17

支付返回“签名错误”的排查方法

1、确认公众号的appSecret和商户号的API密钥没有搞混

认真检查:WxPay.Config 配置文件中配置的商户号,AppID,商户支付密钥以及证书路径,这些都不可以配错。

另外:公众帐号secert(仅JSAPI支付的时候需要配置, 登录公众平台,进入开发者中心可设置),这个如果不是JSAPI调用,可以不做设置。

这些配置账号都可以在开户时腾讯发送的邮件中找到,当然也可以在公众号,或者微信支付商户中心看到,证书在微信支付商户中进行下载。

2、重置商户API密钥

可以在微信支付商户中重置商户API密钥

3、确认公众号授权的域名和目录是正确的

微信支付商户中确保授权的域名路径正确。

 

异步通知回调无法收到1

这个问题,大家可以参考贴子:

微信支付成功后notify_url没有回调,请问是什么原因?

微信支付成功后未收到异步通知的解决

本人总结如下:

微信异步通知回调如果收不到,首先要检查如下几个地方:

1:在微信支付商户平台,设置微信扫码回调链接,将https改为http;

2:端口一定要是80端口;

3:回调地址自己试下确保可以访问;

4:最关键的一步:微信回调链接,不可以带任何参数,也就是不允许存在 ?, & 等携带参数的符号,比如:

错误的回调地址:

http://www.a.com/index.php?/wechat/notify

正确的回调地址应该是:

http://www.a.com/index.php

一定要切记,回调地址不可以带任何参数,为了防止这个链接出错,可以采用Restful形式的链接地址方式。

 

异步通知回调无法收到2

升级PHP也可能导致异步无法收到回调。请先检查各自的PHP版本号,如果是php 5.x,不存在该问题,如果是php 7.x,那就一定要注意:

php7不再支持HTTP_RAW_POST_DATA,微信支付$GLOBALS['HTTP_RAW_POST_DATA']获取不到数据。

解决的方法也很简单,
只要使用php://input来代替就行。

比如

$data = $GLOBALS['HTTP_RAW_POST_DATA'];

改为

$data = file_get_contents('php://input');

特别提醒,
如果你的微信支付,小程序支付,app支付中,
以前使用HTTP_RAW_POST_DATA来获取微信支付异步处理结果的,
升级到php7后,
一定要记得按照上面的方法改过来,否则有些功能使用不了。

 

更多参考:

书山有路勤为径,学海无涯苦作舟,编程也一样如此,学会使用搜索引擎,提高解决问题的能力!

php7不再支持HTTP_RAW_POST_DATA,微信支付$GLOBALS[‘HTTP_RAW_POST_DATA’]获取不到数据,

php微信扫码支付模式二(图解 一看就懂)

关于前端调用微信二维码支付,二维码无法显示的问题

微信扫码支付模式二【无法回调】解决方案

微信扫码支付模式二【无法回调】解决方案(转)

PHP微信支付开发之扫描支付(模式二)后如何回调

微信支付接口返回“签名错误”的排查方法

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: 【整理】微信支付接口常见问题

文章的脚注信息由WordPress的wp-posturl插件自动生成



|2|left
打赏

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: