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()); } } }
* 版本:3.3 * 日期: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') { //判断该笔订单是否在商户网站中已经做过处理
$subject = $_POST['WIDsubject']; //必填 //付款金额 $total_fee = $_POST['WIDtotal_fee']; //必填 //订单描述 $body = $_POST['WIDbody']; //商品展示地址 $show_url = $_POST['WIDshow_url']; //需以http://开头的完整路径,例如:http://www.xxx.com/myorder.html //防钓鱼时间戳 $anti_phishing_key = ""; //若要使用请调用类文件submit中的query_timestamp函数 //客户端的IP地址 $exter_invoke_ip = ""; //非局域网的外网IP地址,如:221.0.0.1 /************************************************************/ $detector = new Detection\MobileDetect(); $is_mobile = $detector->isMobile(); //建立请求 $alipay = new mytharcher\sdk\alipay\Alipay($alipay_config, $is_mobile); if ($is_mobile) { $params = $alipay->prepareMobileTradeData(array('out_trade_no' => $out_trade_no, 'subject' => $subject, 'body' => $body, 'total_fee' => $total_fee, 'merchant_url' => 'http://' . $_SERVER['HTTP_HOST'], 'req_id' => date('Ymdhis-'))); echo $alipay->buildRequestFormHTML($params, 'get'); } else { echo $alipay->buildRequestFormHTML(array("service" => "create_direct_pay_by_user", "partner" => trim($alipay_config['partner']), "payment_type" => $alipay_config['payment_type'], "notify_url" => $alipay_config['notify_url'], "return_url" => $alipay_config['return_url'], "seller_id" => $alipay_config['partner'], "out_trade_no" => $out_trade_no, "subject" => $subject, "total_fee" => $total_fee, "body" => $body, "show_url" => $show_url, "anti_phishing_key" => $anti_phishing_key, "exter_invoke_ip" => $exter_invoke_ip, "_input_charset" => trim(strtolower($alipay_config['input_charset']))), "post"); } ?> </body> </html>