官方文档比较简略,demo教程基本没参数注释,看代码找吧。
支付 扫码支付 native.php
模式二
$input->SetBody(“test”); //描述
$input->SetAttach(“test”); //订单id 附件自定义数据,会会原样返回
$input->SetGoods_tag(“test”); //代金券或立减优惠功能的参数
$input->SetNotify_url(‘url’); //指定回调地址
$input->SetProduct_id(‘test’); //商户订单号 如果用模式一就要去微信公众平台配置回调地址 ,模式二就不用配置
回调 官方给出参考 notify.php 那就根据notify.php来自己定义回调地址 notify.php 中定位到WxPay.Api.php下 notify()方法 //获取通知的数据//获取通知的数据
$xml = $GLOBALS[‘HTTP_RAW_POST_DATA’];
但是 $GLOBALS[‘HTTP_RAW_POST_DATA’];
无论怎么都获取不到数据 模拟环境也是如此 查查资料其实 $GLOBALS[‘HTTP_RAW_POST_DATA’] 就如同 file_get_contents(‘php://input’) 官方这个大概是14年左右的东西,而我服务器是php7果断换掉 结果数据获取正常 回调能获取数据以后,为了保证安全需要验证签名。总不能自己在搞一套验证吧,等着用呢。
从官方demo中找到蛛丝马迹,里面有已经写好的签名验证,直接调用 规则还是从WxPay.Api.php下的notify()方法 //如果返回成功则验证签名//如果返回成功则验证签名 try { $result = WxPayResults::Init($xml); } catch (WxPayException $e){ $msg = $e->errorMessage(); return false; } 至于文件怎么引入就不解释, 自己慢慢弄一遍吧。 有时间自己也试着写一套签名验证。
本文链接: https://erik.xyz/2017/07/17/php-dui-jie-wei-xin-zhi-fu-wen-ti/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!