예제 #1
0
파일: alipay.php 프로젝트: ahmatjan/yida
 function return_f()
 {
     $sn = $this->trans_lib->safe("sn");
     $pass = $this->trans_lib->safe("pass");
     $paycode = "alipay";
     $rs = $this->payment_m->get_one_code($paycode);
     $order_rs = $this->checkout_m->get_one_sn($sn);
     $data = array();
     $id = $order_rs["id"];
     $f_rs = $this->payment_m->get_fields($rs["id"]);
     include_once LIBS . "payment/alipay_notify.php";
     //加载alipay_notify操作类
     $alipay = new alipay_notify($f_rs["partner"], $f_rs["code"], $f_rs["sign_type"], $f_rs["charset"], $f_rs["transport"]);
     $tmp_array = array();
     $tmp_array[] = $this->config->c;
     $tmp_array[] = $this->config->f;
     $tmp_array[] = "sn";
     $tmp_array[] = "pass";
     $verify_result = $alipay->return_verify($tmp_array);
     if (!$verify_result) {
         error($this->lang["alipay_payment_false"], $this->url("checkout,info", "sn=" . $sn . "&pass="******"id"]);
         $data["pay_status"] = 1;
         $data["pay_price"] = $this->trans_lib->safe("total_fee");
         $data["pay_currency"] = $f_rs["currency"];
         $data["pay_type"] = $rs["id"];
         $data["pay_date"] = $this->system_time;
         $data["pay_code"] = $this->trans_lib->safe("trade_no");
         $this->payment_m->update_order($id, $data);
         error($this->lang["alipay_payment_success"], $this->url("checkout,info", "sn=" . $sn . "&pass=" . $pass));
     }
 }
예제 #2
0
 public function callback()
 {
     require_once APP_ROOT_PATH . 'system/api_login/alipay/alipay_notify.php';
     es_session::start();
     //构造通知函数信息
     $alipay = new alipay_notify($this->api['config']['app_key'], $this->api['config']['app_secret'], "MD5", "utf-8", "http");
     //计算得出通知验证结果
     $verify_result = $alipay->return_verify();
     if ($verify_result) {
         //验证成功
         /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
         //请在这里加上商户的业务逻辑程序代码
         //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
         //获取支付宝的通知返回参数
         $user_id = $_GET['user_id'];
         //获取支付宝用户唯一ID号
         //判断获取到的user_id的值是否在商户会员数据库中存在(即:是否曾经做过支付宝会员免注册登陆)
         //	若不存在,则程序自动为会员快速注册一个会员,把信息插入商户网站会员数据表中,
         //	且把该会员的在商户网站上的登录状态,更改成“已登录”状态。并记录在商家网站会员数据表中记录登陆信息,如登陆时间、次数、IP等。
         //	若存在,判断该会员在商户网站上的登录状态是否是“已登录”状态
         //		若不是,则把该会员的在商户网站上的登录状态,更改成“已登录”状态。并记录在商家网站会员数据表中记录登陆信息,如登陆时间、次数、IP等。
         //		若是,则不做任何数据库业务逻辑处理。判定该次反馈信息为重复刷新返回链接导致。
         //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——
         /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
         $msg['id'] = $user_id;
         $msg['name'] = "ali_" . $user_id;
         $msg['field'] = 'alipay_id';
         es_session::set("api_user_info", $msg);
         $user_data = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where alipay_id = " . $msg['id'] . " and alipay_id <> 0");
         if ($user_data) {
             $user_current_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where id = " . intval($user_data['group_id']));
             $user_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where score <=" . intval($user_data['score']) . " order by score desc");
             if ($user_current_group['score'] < $user_group['score']) {
                 $user_data['group_id'] = intval($user_group['id']);
             }
             es_session::set("user_info", $user_data);
             $GLOBALS['db']->query("update " . DB_PREFIX . "user set login_ip = '" . get_client_ip() . "',login_time= " . TIME_UTC . ",group_id=" . intval($user_data['group_id']) . " where id =" . $user_data['id']);
             //$GLOBALS['db']->query("update ".DB_PREFIX."deal_cart set user_id = ".intval($_SESSION['user_info']['id'])." where session_id = '".es_session::id()."'");
             es_session::delete("api_user_info");
             app_recirect_preview();
         } else {
             app_redirect(url("shop", "user#api_login"));
         }
     } else {
         //验证失败
         //如要调试,请看alipay_notify.php页面的return_verify函数,比对sign和mysign的值是否相等,或者检查$veryfy_result有没有返回true
         echo "fail";
     }
     exit;
 }
예제 #3
0
파일: alipay.php 프로젝트: winiceo/job
/**
 * 响应操作
*/
function respond()
{
    $payment = get_payment_info('alipay');
    $partner = trim($payment['partnerid']);
    $key = trim($payment['ytauthkey']);
    $sign_type = "MD5";
    $_input_charset = "GBK";
    $transport = "http";
    $alipay = new alipay_notify($partner, $key, $sign_type, $_input_charset, $transport);
    $verify_result = $alipay->return_verify();
    if ($verify_result) {
        //验证成功
        $dingdan = $_GET['out_trade_no'];
        //获取订单号
        $total_fee = $_GET['total_fee'];
        //获取总价格
        return order_paid($dingdan);
    } else {
        return false;
    }
}
예제 #4
0
//该页面称作“返回页”,是由支付宝服务器同步调用,可当作是支付完成后的提示信息页,如“您的某某某订单,多少金额已支付成功”。
//可放入HTML等美化页面的代码和订单交易完成后的数据库更新程序代码
//该页面可以使用PHP开发工具调试,也可以使用写文本函数log_result进行调试,该函数已被默认关闭,见alipay_notify.php中的函数return_verify
//TRADE_FINISHED(表示交易已经成功结束,为普通即时到帐的交易状态成功标识);
//TRADE_SUCCESS(表示交易已经成功结束,为高级即时到帐的交易状态成功标识);
///////////////////////////////////
error_reporting(0);
require_once "class/alipay_notify.php";
require_once "alipay_config.php";
require_once dirname(dirname(dirname(__FILE__))) . "/data/db.config.php";
require_once dirname(dirname(dirname(__FILE__))) . "/include/mysql.class.php";
$db = new mysql($db_config['dbhost'], $db_config['dbuser'], $db_config['dbpass'], $db_config['dbname'], ALL_PS, $db_config['charset']);
//构造通知函数信息
$alipay = new alipay_notify($partner, $security_code, $sign_type, $_input_charset, $transport);
//计算得出通知验证结果
$verify_result = $alipay->return_verify();
if ($verify_result) {
    //验证成功
    //获取支付宝的通知返回参数
    $dingdan = $_GET['out_trade_no'];
    //获取订单号
    $total_fee = $_GET['total_fee'];
    //获取总价格
    $sOld_trade_status = "0";
    //获取商户数据库中查询得到该笔交易当前的交易状态
    /*假设:
    	sOld_trade_status="0";表示订单未处理;
    	sOld_trade_status="1";表示交易成功(TRADE_FINISHED/TRADE_SUCCESS);
        */
    if ($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') {
        $select = $db->query("select  * from `" . $db_config[def] . "company_order` where `order_id`='{$dingdan}'");
예제 #5
0
 public function verifyReturnUrl()
 {
     /*{{{*/
     $alipay = new alipay_notify($this->partner, $this->security_code, $this->sign_type, $this->_input_charset, 'http');
     return $alipay->return_verify();
 }