菜单

php对接微信支付问题

2017-07-17 - lnmp

官方文档比较简略,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;

}

至于文件怎么引入就不解释, 自己慢慢弄一遍吧。

有时间自己也试着写一套签名验证。

 

转载请注明: 转载自—艾瑞可erik

本文链接地址: http://erik.xyz/1273.html

发表评论