function return_url($payfunc) { if ($payfunc == 'alipay') { $this->load->config('pay'); $pay_config = $this->config->item('alipay'); $alipay = new \mytharcher\sdk\alipay\Alipay($pay_config); $result = $alipay->verifyCallback(); $input = $this->input->get(); if ($result && ($input['trade_status'] == 'TRADE_FINISHED' || $input['trade_status'] == 'TRADE_SUCCESS')) { $order_id = $input['out_trade_no']; //订单号 $serial = $input['trade_no']; //支付宝交易流水 $this->load->model('order/Orders_model'); if ($this->Orders_model->get_status($order_id) === NULL) { $this->Orders_model->order_payed($order_id, $serial); log_message('info', date('Y-m-d H:i:s', time()) . ':' . $order_id . '支付成功'); } //todo:跳转到支付成功的页面 redirect(site_url()); } else { //todo:跳转到支付成功的页面 redirect(site_url()); } } }
* 日期:2012-07-23 * 说明: * 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。 * 该代码仅供学习和研究支付宝接口使用,只是提供一个参考。 *************************页面功能说明************************* * 创建该页面文件时,请留心该页面文件中无任何HTML代码及空格。 * 该页面不能在本机电脑测试,请到服务器上做测试。请确保外部可以访问该页面。 * 该页面调试工具请使用写文本函数logResult,该函数已被默认关闭,见alipay_notify_class.php中的函数verifyNotify * 如果没有收到该页面返回的 success 信息,支付宝会在24小时内按一定的时间策略重发通知 */ require __DIR__ . '/vendor/autoload.php'; require_once "config.php"; // require_once("lib/Alipay.class.php"); //计算得出通知验证结果 $alipay = new mytharcher\sdk\alipay\Alipay($alipay_config); $verify_result = $alipay->verifyCallback(TRUE); if ($verify_result) { //验证成功 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表 //商户订单号 $out_trade_no = $_POST['out_trade_no']; //支付宝交易号 $trade_no = $_POST['trade_no']; //交易状态 $trade_status = $_POST['trade_status']; if ($_POST['trade_status'] == 'TRADE_FINISHED') { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序