支付宝接口问题
我用CI做了一套程序 需要用到支付宝接口用了AUTO模式 index.php隐藏的URL,但是支付宝接口跳转回来的时候发现get到的数据和之前发送过去的数据验证不一致,但是POST异步却是正常的。,然后写了个单独的php回调的页面 get就又可以 不知道是否是CI框架的问题 之前也没做过CI支付宝方面的 一直没遇到。请高人帮忙~~支付宝文档中提供的paraFilter函数
while (list ($key, $val) = each ($para)) {
if($key == "sign" || $key == "sign_type" || $val == "")continue;
else $para_filter[$key] = $para[$key];
}
换成下面这样
foreach ($para as $key => $val) {
if ($key == "sign" || $key == "sign_type" || $val == "") {
continue;
} else {
$para_filter[$key] = $para[$key];
}
}
这样就可以了,因为支付宝的回调在这里用each时候会取少了第一个参数,指针被移动了一位,或者你用reset($para)也可以重置指针的位置
楼主,这个问题你解决了么?我现在也遇到了这个问题,看完所有评论还是无法解决哦!求指点!:'(:'(:'( 传说CI是不支持GET的。但是我不知道他们说的不支持指的是什么?像 ?c=mod&m=class&id=123456这样的可以直接用$_GET获取,当然你可以自己试一下print_r($_GET)就知道了 2.1是直接支持$_GET的。。所以我也不知道有没有遇到过没人用CI新版本接入过支付宝接口吗 贴代码~ 代码太多了 。
就是回调的时候支付宝有同步和异步 异步没问题 同步在做验证的时候 是把GET参数排序MD5之后 和支付宝发过来的MD5加密的验证的 这步我这边加密的和支付宝加密的不一致 把你那个“单独的php回调的页面”部分代码贴出来 <?phpclass Pay extends MY_Controller
{
function __construct()
{
parent::__construct();
require_once(APPPATH.'third_party/alipay/alipay_notify.class.php');
}
function return_url($type = "topup")
{
$alipay_config = $this->config->item('alipay');
$alipayNotify = new AlipayNotify($alipay_config);
$verify_result = $alipayNotify->verifyReturn(); //这步验证失败 alipay的接口没有问题 因为异步POST是没有问题的
if($verify_result)
{
//逻辑处理
}
}
}
我用的url配置都是默认的 AUTO 隐藏了index.php
$type = "topup"这个参数没有的 粘帖的时候忘记删掉了 求老大帮忙解决 支付宝接口据说又要升级了,快捷支付和信用卡支付闹的。