用户
 找回密码
 入住 CI 中国社区
搜索
查看: 15876|回复: 25
收起左侧

支付宝接口问题

  [复制链接]
发表于 2012-2-28 15:31:20 | 显示全部楼层 |阅读模式
我用CI做了一套程序 需要用到支付宝接口  用了AUTO模式 index.php隐藏的URL,但是支付宝接口跳转回来的时候发现get到的数据和之前发送过去的数据验证不一致,但是POST异步却是正常的。,然后写了个单独的php回调的页面 get就又可以 不知道是否是CI框架的问题 之前也没做过CI支付宝方面的 一直没遇到。请高人帮忙~~
发表于 2016-1-22 23:24:36 | 显示全部楼层
支付宝文档中提供的paraFilter函数
PHP复制代码
while (list ($key, $val) = each ($para)) {
                if($key == "sign" || $key == "sign_type" || $val == "")continue;
                else        $para_filter[$key] = $para[$key];
        }
复制代码

换成下面这样
PHP复制代码
       
foreach ($para as $key => $val) {
                if ($key == "sign" || $key == "sign_type" || $val == "") {
                        continue;
                } else {
                        $para_filter[$key] = $para[$key];
                }
        }
复制代码

这样就可以了,因为支付宝的回调在这里用each时候会取少了第一个参数,指针被移动了一位,或者你用reset($para)也可以重置指针的位置

点评

给力  发表于 2016-4-6 17:35

评分

参与人数 1威望 +5 收起 理由
cablechen + 5 很给力!

查看全部评分

发表于 2015-1-6 17:19:07 | 显示全部楼层
楼主,这个问题你解决了么?我现在也遇到了这个问题,看完所有评论还是无法解决哦!求指点!
发表于 2012-2-28 18:00:18 | 显示全部楼层
传说CI是不支持GET的。但是我不知道他们说的不支持指的是什么?像 ?c=mod&m=class&id=123456这样的可以直接用$_GET获取,当然你可以自己试一下print_r($_GET)就知道了
 楼主| 发表于 2012-2-28 20:49:14 | 显示全部楼层
2.1是直接支持$_GET的。。所以我也不知道有没有遇到过  没人用CI新版本接入过支付宝接口吗
发表于 2012-2-29 14:16:13 | 显示全部楼层
贴代码~
 楼主| 发表于 2012-3-1 13:06:50 | 显示全部楼层
代码太多了 。
就是回调的时候支付宝有同步和异步 异步没问题 同步在做验证的时候 是把GET参数排序MD5之后 和支付宝发过来的MD5加密的验证的 这步我这边加密的和支付宝加密的不一致
发表于 2012-3-1 18:57:13 | 显示全部楼层
把你那个“单独的php回调的页面”部分代码贴出来
 楼主| 发表于 2012-3-2 10:29:42 | 显示全部楼层
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
 楼主| 发表于 2012-3-2 10:30:52 | 显示全部楼层
$type = "topup"这个参数没有的 粘帖的时候忘记删掉了
 楼主| 发表于 2012-3-7 00:45:46 | 显示全部楼层
求老大帮忙解决
发表于 2012-3-7 01:12:39 | 显示全部楼层
支付宝接口据说又要升级了,快捷支付和信用卡支付闹的。

本版积分规则