tp中5分钟集成支付宝接口(附源码)

支付宝的商户注册方式

您好,为了更好的帮您解决问题,请您联系商户客服咨询即可。点击链接http://help.alipay.com/support/index_sh.htm联系商户的在线客服(工作时间:周一至周日9:00-22:00)咨询或拨打商户服务热线0571-88158090(工作时间:周一至周五9:00-18:00,节假日除外)温馨提示:如果您要联系商户在线客服,请您先关闭现在的对话框,再找到商家在线客服,点击“点此咨询”即可进入商家在线客服咨询。


pangdan118 发表于 2011-12-18 19:30:31

大概思路就是

1.把支付宝官方示例代码中的lib文件夹下的所有文件改名,比如:service.class.php改成Service.php,把里面加载文件的那句去掉,

2,在tp的Vendor目录下新建一个Alipay文件夹(不用新建一个目录页可以),把第一步修改好的文件放进去。

3新建一个OrderAction.class.php,

public function _initialize() {
<?php
class OrderAction extends Action {
        public function _initialize() {
                Vendor('Alipay.Corefunction');
                Vendor('Alipay.Notify');
                Vendor('Alipay.Service');
                Vendor('Alipay.Submit');
                Vendor('Alipay.Alipayconfig');

        }

        function alipayto() {
C('TOKEN_ON',false);
                $aliapy_config = alicofings();
                $out_trade_no = 'gds' . date('Ymdhis', time()) . round(0, 100);

                $subject = $_POST['subject'];

                $body = $_POST['body'];

                $total_fee = $_POST['total_fee'];

                $paymethod = '';

                $defaultbank = '';

                $anti_phishing_key = '';

                $exter_invoke_ip = '';

                $show_url = 'http://www.uvmonopoly.com';

                $extra_common_param = '';

                $royalty_type = "";
                $royalty_parameters = "";

                $parameter = array (
                        "service" => "create_direct_pay_by_user",
                        "payment_type" => "1",

                        "partner" => trim($aliapy_config['partner']
                ), "_input_charset" => trim(strtolower($aliapy_config['input_charset'])), "seller_email" => trim($aliapy_config['seller_email']), "return_url" => trim($aliapy_config['return_url']), "notify_url" => trim($aliapy_config['notify_url']), "out_trade_no" => $out_trade_no, "subject" => $subject, "body" => $body, "total_fee" => $total_fee, "paymethod" => $paymethod, "defaultbank" => $defaultbank, "anti_phishing_key" => $anti_phishing_key, "exter_invoke_ip" => $exter_invoke_ip, "show_url" => $show_url, "extra_common_param" => $extra_common_param, "royalty_type" => $royalty_type, "royalty_parameters" => $royalty_parameters);
                $d = D('Order');
                $d->create();
                $d->user_id = Cookie :: get('user_id');
                $d->total_fee = $total_fee;
                $d->order_id = $out_trade_no;
                $d->creat_time=time();
                $d->trde_status = 0;
                if (false !== $d->add()) {

                        $alipayService = new AlipayService($aliapy_config);
                        $html_text = $alipayService->create_direct_pay_by_user($parameter);
                        $this->assign('alipay', $html_text);
                        $this->assign('total_fee', $total_fee);
                        $this->display();

                } else {
                        $this->error('系统错误暂时不能充值,请联系在线客服!');

                }

        }
        public function returnurl() {
                $aliapy_config = alicofings();
                $alipayNotify = new AlipayNotify($aliapy_config);
                $verify_result = $alipayNotify->verifyReturn();
                if ($verify_result) { //验证成功

                        $out_trade_no = $_GET['out_trade_no']; //获取订单号
                        $trade_no = $_GET['trade_no']; //获取支付宝交易号
                        $total_fee = $_GET['total_fee']; //获取总价格
                        $d = D('Order');
                        $result = $d->where("order_id='.$trade_no.'")->select();
                        $status = $result[0]['trde_statuse'];

                        if ($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') {

                                if ($status == 0) {
                                        $d->create();
                                        $d->trde_status = 1;
                                        $d->alipay_trade_no;
                                        $d->total->fee = $total_fee;

                                }

                        } else {
                                //echo "trade_status=" . $_GET['trade_status'];
                                $this->assign('msg','充值失败!');
                        }

                        echo "验证成功<br />";
                        echo "trade_no=" . $trade_no;

                } else {


                        $this->assign('msg','验证失败');
                }

                $this->display();

        }
        public function notifyurl() {
                $aliapy_config = alicofings();
                $alipayNotify = new AlipayNotify($aliapy_config);
                $verify_result = $alipayNotify->verifyNotify();

                if ($verify_result) { //验证成功

                        $out_trade_no = $_POST['out_trade_no']; //获取订单号
                        $trade_no = $_POST['trade_no']; //获取支付宝交易号
                        $total_fee = $_POST['total_fee']; //获取总价格

                        if ($_POST['trade_status'] == 'TRADE_FINISHED' || $_POST['trade_status'] == 'TRADE_SUCCESS') { //交易成功结束

                                echo "success"; //请不要修改或删除

                                //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
                        } else {
                                echo "success"; //其他状态判断。普通即时到帐中,其他状态不用判断,直接打印success。

                                //调试用,写文本函数记录程序运行情况是否正常
                                //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
                        }

                        //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——

                        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                } else {
                        //验证失败
                        echo "fail";

                        //调试用,写文本函数记录程序运行情况是否正常
                        //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
                }

        }
}
?>

支付接口配置文件写法:

<?php
function alicofings(){
$aliapy_config['partner']      = '2088302763';

//安全检验码,以数字和字母组成的32位字符
$aliapy_config['key']          = 'm8ve6f5x1d90hjl5e95';

//签约支付宝账号或卖家支付宝帐户
$aliapy_config['seller_email'] = 'qiyunnetwork@vip.163.com';

//页面跳转同步通知页面路径,要用 http://格式的完整路径,不允许加?id=123这类自定义参数
//return_url的域名不能写成http://localhost/create_direct_pay_by_user_php_utf8/return_url.php ,否则会导致return_url执行无效
$aliapy_config['return_url']   = 'http://www.x.com/order/returnurl.html';

//服务器异步通知页面路径,要用 http://格式的完整路径,不允许加?id=123这类自定义参数
$aliapy_config['notify_url']   = 'http://www.gudashi.com/order/notifyurl.html';

//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑


//签名方式 不需修改
$aliapy_config['sign_type']    = 'MD5';

//字符编码格式 目前支持 gbk 或 utf-8
$aliapy_config['input_charset']= 'utf-8';

//访问模式,根据自己的服务器是否支持ssl访问,若支持请选择https;若不支持请选择http
$aliapy_config['transport']    = 'http';
return $aliapy_config;
}
?>

就写这么多把,懒得打字,我发源码,相信一看就能明吧,这样做的好处就是可以快速集成,5分钟绝对可以搞定支付接口
要是你5分钟搞不定,那还是回家带孩子去吧!!^^^^^开个小玩笑...

支付宝接口.zip

9.26 KB, 下载次数: 576


你可能感兴趣的:(tp中5分钟集成支付宝接口(附源码))