美文网首页程序员
支付宝手机网站支付passback_params传递数组

支付宝手机网站支付passback_params传递数组

作者: 老夫不才 | 来源:发表于2017-11-28 23:51 被阅读0次

    首先,官方的SDK中没有passback_params参数,需要自己修改/wappay/buildermodel/AlipayTradeWapPayContentBuilder.php文件

    在AlipayTradeWapPayContentBuilder.php中添加如下代码

    private $passback_params;

    public function getPassbackParams(){

            return $this->passback_params;

    }

    public function setPassbackParams($passback_params){

            $this->passback_params = $passback_params;

            $this->bizContentarr['passback_params'] = $passback_params;

    }

    然后在/wappay/pay.php中添加setPassbackParams();方法

    SDK中pay.php

    当需要传递的参数较多时,可将数组编码后传递给支付宝,再由支付宝发送给服务端

    由于支付宝的开发文档中规定passback_params的值需要经过Url编码后传递

    这里可以使用http_build_query($arr)将数组转换为Url编码后的字符串

    <?php

            $arr = Array('uid'=>'1', 'type'=>'2');

            echo http_build_query($arr);

    ?>

    数组就会被编码成为

    uid=1&type=2

    通过parse_str($str,$arr);可以将Url编码后的字符串重新恢复为数组

    <?php

            $str = 'uid=1&type=2';

            parse_str($str,$data);

            print_r($data);

    ?>

    输出结果

    在/wappay/pay.php里面添加setPassbackParams();,并将数组编码后传入

    pay.php

    在接收异步通知页面接收passback_params参数并转换为数组

    notify_url.php

    这样就可以解决在支付过程中需要传递数组的问题了

    相关文章

      网友评论

        本文标题:支付宝手机网站支付passback_params传递数组

        本文链接:https://www.haomeiwen.com/subject/mnvsbxtx.html