public function actionNotifyUrl() { //计算得出通知验证结果 $alipayNotify = new \AlipayNotify($this->alipayConfig()); $verify_result = $alipayNotify->verifyNotify(); if ($verify_result) { //验证成功 if ($_REQUEST['trade_status'] == 'TRADE_FINISHED') { //退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知 echo '退款'; } else { if ($_REQUEST['trade_status'] == 'TRADE_SUCCESS') { //付款完成后,支付宝系统发送该交易状态通知 if (ChargeOrder::getInstance()->setOrderStatus($_REQUEST['out_trade_no'])) { // 设置订单状态 return $this->redirect('http://wechat.baihey.com/wap/site/main#/charge_order?orderId=' . $_REQUEST['out_trade_no'] . '&payType=4'); } else { // 设置订单状态失败 return $this->redirect('http://wechat.baihey.com/wap/site/main#/charge_order?orderId=' . $_REQUEST['out_trade_no'] . '&payType=4'); } } else { // 未付款 return $this->redirect('http://wechat.baihey.com/wap/site/main#/charge_order?orderId=' . $_REQUEST['out_trade_no'] . '&payType=4'); } } echo "success"; //请不要修改或删除 } else { //验证失败 echo "fail"; return $this->redirect('http://wechat.baihey.com/wap/site/main#/charge_order?orderId=' . $_REQUEST['out_trade_no'] . '&payType=4'); } }
public function actionAlipayOrderNotify() { Yii::$app->response->format = Response::FORMAT_RAW; require_once Yii::getAlias('@vendor') . "/payment/alipay/alipay.config.php"; require_once Yii::getAlias('@vendor') . "/payment/alipay/lib/alipay_notify.class.php"; $alipayNotify = new \AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyNotify(); if ($verify_result) { $out_trade_no = $_POST['out_trade_no']; $trade_no = $_POST['trade_no']; $trade_status = $_POST['trade_status']; $model = Order::findOne(['order_sn' => $out_trade_no, 'status' => [Order::STATUS_UNPAID, Order::STATUS_CANCELLED]]); if ($model) { if ($trade_status === 'TRADE_SUCCESS' || $trade_status === 'TRADE_FINISHED') { if ($model->pay()) { $this->_sendMsg($model); Yii::info("订单支付成功!订单号:{$out_trade_no}"); } else { Yii::error("订单支付失败!订单号:{$out_trade_no}"); return 'fail'; } } } } else { return 'fail'; } return 'success'; }
/** * 支付宝回调 */ public static function alipayNotify() { vendor('Alipay.Notify', COMMON_PATH . 'Vendor'); $alipay_config = C('ALIPAY'); $AlipayNotify = new \AlipayNotify($alipay_config); return $AlipayNotify->verifyNotify(); }
public function notify($req) { require_once __DIR__ . '/mobiAlipay/lib/alipay_notify.class.php'; //计算得出通知验证结果 $alipayNotify = new AlipayNotify($this->mobiAlipayConfig); $verifyResult = $alipayNotify->verifyNotify(); if ($verifyResult) { //商户订单号 $out_trade_no = $req['out_trade_no']; //支付宝交易号 $trade_no = $req['trade_no']; //交易状态 $trade_status = $req['trade_status']; if ($req['trade_status'] == 'TRADE_FINISHED' || $req['trade_status'] == 'TRADE_SUCCESS') { //处理订单状态 $uid = (new \Mall\Mdu\OrderModule())->setOrderStatus($out_trade_no, $_SERVER['REQUEST_TIME']); if ($uid != 0) { (new \Mall\Mdu\OrderLogsModule())->addOrderLogBySn($out_trade_no, $this->di['sysconfig']['orderActType']['successPayment'], $uid, '用户', '支付成功'); echo 'success'; } else { echo 'fail'; } } } else { echo "fail"; } }
/** * App支付Notify */ function alipay_notify_app() { $alipay_config_app = $this->config->item('alipay_config_app'); $alipayNotify = new AlipayNotify($alipay_config_app); $verify_result = $alipayNotify->verifyNotify(); if ($verify_result) { //验证成功 $out_trade_no = $_POST['out_trade_no']; //支付宝交易号 $trade_no = $_POST['trade_no']; //交易状态 $trade_status = $_POST['trade_status']; $this->log_result('alipay_notify', "【支付宝回调App】:\n" . json_encode($_POST) . "\n"); if ($trade_status == 'TRADE_FINISHED' || $trade_status == 'TRADE_SUCCESS') { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 $order = $this->order_model->get_order_info($out_trade_no); if ($order['TradeStatus'] != 'TRADE_FINISHED' && $order['TradeStatus'] != 'TRADE_SUCCESS') { $data = array('TradeStatus' => $trade_status, 'TradeNo' => $trade_no, 'PayTime' => time(), 'PayType' => 'alipay'); $this->order_model->update_order_info($out_trade_no, $data); } } //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— echo "success"; //请不要修改或删除 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } else { //验证失败 echo "fail"; //调试用,写文本函数记录程序运行情况是否正常 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); } }
function notify() { //计算得出通知验证结果 $alipayNotify = new AlipayNotify($this->alipay_config); $verify_result = $alipayNotify->verifyNotify(); $this->log('deposit/notify ' . 'verify:' . ($verify_result ? 'true' : 'false') . ' ' . json_encode($_POST, JSON_UNESCAPED_UNICODE)); if ($verify_result) { //验证成功 //商户订单号 $out_trade_no = $_POST['out_trade_no']; //支付宝交易号 $trade_no = $_POST['trade_no']; //交易状态 $trade_status = $_POST['trade_status']; $deposit_id = intval($out_trade_no); if (!$deposit_id) { echo "fail"; return FALSE; } $record = DB::fetch_first('SELECT * FROM ' . DB::table('user_deposit') . ' WHERE ' . DB::implode(array('id' => $deposit_id))); if (!$record) { echo "fail"; return FALSE; } if ($record['status'] == TRADE_FINISHED) { echo "success"; return TRUE; } switch ($trade_status) { case 'WAIT_BUYER_PAY': DB::update('user_deposit', array('trade_no' => $trade_no, 'status' => WAIT_BUYER_PAY, 'updatetime' => TIMESTAMP), array('id' => $deposit_id)); break; case 'TRADE_CLOSED': DB::update('user_deposit', array('status' => TRADE_CLOSED, 'updatetime' => TIMESTAMP), array('id' => $deposit_id)); break; case 'WAIT_SELLER_SEND_GOODS': $this->send_goods($record, $trade_no); DB::update('user_deposit', array('status' => WAIT_BUYER_CONFIRM, 'updatetime' => TIMESTAMP), array('id' => $deposit_id)); break; case 'WAIT_BUYER_CONFIRM_GOODS': DB::update('user_deposit', array('status' => WAIT_BUYER_CONFIRM, 'updatetime' => TIMESTAMP), array('id' => $deposit_id)); break; case 'TRADE_SUCCESS': DB::update('user_deposit', array('status' => TRADE_UNSUPPORTED, 'updatetime' => TIMESTAMP), array('id' => $deposit_id)); break; case 'TRADE_FINISHED': DB::update('user_deposit', array('status' => TRADE_FINISHED, 'updatetime' => TIMESTAMP), array('id' => $deposit_id)); if ($record && $record['uid']) { DB::query('UPDATE ' . DB::table('user_status') . ' SET ' . DB::quote_field('balance') . ' = ' . DB::quote_field('balance') . ' + ' . $record['price'] . ' WHERE ' . DB::implode(array('uid' => $record['uid']))); } break; } $this->log('deposit/notify id:' . $deposit_id . ' ' . $trade_status); echo "success"; return TRUE; } else { echo "fail"; return FALSE; } }
public function verifyNotify() { require_once "alipay.config.php"; require_once "lib/alipay_notify.class.php"; $alipayNotify = new \AlipayNotify($alipay_config); return $alipayNotify->verifyNotify(); }
/** * 支付宝回调 * @param unknown $aParams * @return Ambigous <验证结果, boolean> */ public static function callback($aParams) { require_once LIB_PATH . '/Payment/Alipay/alipay_service.class.php'; require_once LIB_PATH . '/Payment/Alipay/alipay_notify.class.php'; $alipay_config = Yaf_G::getConf('aliapy_config', null, 'alipay'); $alipayNotify = new AlipayNotify($alipay_config); return $alipayNotify->verifyNotify($aParams); }
function verifyAlipayNotify(array $alipayConfig) { $alipayConfig = getAlipayConfig($alipayConfig); $alipayNotify = new AlipayNotify($alipayConfig); $verifyResult = (bool) $alipayNotify->verifyNotify(); echo $verifyResult ? 'success' : 'fail'; return $verifyResult; }
function endPay($PassageInfo, $OrderInfo) { /* 商户号 */ $partner = $PassageInfo['StagePartnerId']; /* 密钥 */ $key = $PassageInfo['StageSecureCode']; require "AliPayClass/notify_url.php"; //计算得出通知验证结果 $alipayNotify = new AlipayNotify($aliapy_config); $verify_result = $alipayNotify->verifyNotify(); if ($verify_result) { //验证成功 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表 $out_trade_no = $_REQUEST['out_trade_no']; //获取订单号 $trade_no = $_REQUEST['trade_no']; //获取支付宝交易号 $total_fee = $_REQUEST['total_fee']; //获取总价格 if ($OrderInfo['OrderId'] == $out_trade_no && $total_fee == $OrderInfo['Coin']) { $Pay['OrderId'] = $OrderInfo['OrderId']; $Pay['PayUserId'] = $OrderInfo['PayUserId']; $Pay['AcceptUserId'] = $OrderInfo['AcceptUserId']; $Pay['PassageId'] = $OrderInfo['PassageId']; $Pay['AppId'] = $OrderInfo['AppId']; $Pay['PartnerId'] = $OrderInfo['PartnerId']; $Pay['SubPassageId'] = $OrderInfo['SubPassageId']; $Pay['Amount'] = $OrderInfo['Amount']; $Pay['Coin'] = $OrderInfo['Coin']; $Pay['Credit'] = $OrderInfo['Credit']; $Pay['PayIP'] = $OrderInfo['PayIP']; $Pay['PayTime'] = $OrderInfo['PayTime']; $Pay['UserSourceId'] = $OrderInfo['UserSourceId']; $Pay['UserSourceDetail'] = $OrderInfo['UserSourceDetail']; $Pay['UserSourceProjectId'] = $OrderInfo['UserSourceProjectId']; $Pay['UserSourceActionId'] = $OrderInfo['UserSourceActionId']; $Pay['UserRegTime'] = $OrderInfo['UserRegTime']; $Pay['PayedTime'] = strtotime($_REQUEST['notify_time']); $Pay['StageOrder'] = $trade_no; $Pay['comment'] = json_encode(array('buyer_email' => $_REQUEST['buyer_email'], 'buyer_id' => $_REQUEST['buyer_id'])); return $Pay; } else { return false; } //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— echo "success"; //请不要修改或删除 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } else { //验证失败 echo "fail"; //调试用,写文本函数记录程序运行情况是否正常 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); } }
/** * 验证支付宝的服务器返回 * * @return boolen 返回验证状态, true代表合法请求,fasle代表无效返回 */ public function verifyReturn() { $notify = new \AlipayNotify($this->_config); if ($notify->verifyNotify()) { return true; } else { return false; } }
public function notifyUrl() { // require_once("alipay.config.php"); // require_once("lib/alipay_notify.class.php"); require_once public_path() . "/alipay/alipay.config.php"; require_once public_path() . "/alipay/lib/alipay_notify.class.php"; //计算得出通知验证结果 $alipayNotify = new AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyNotify(); 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)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的 //如果有做过处理,不执行商户的业务程序 //注意: //退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知 //调试用,写文本函数记录程序运行情况是否正常 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); } else { if ($_POST['trade_status'] == 'TRADE_SUCCESS') { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的 //如果有做过处理,不执行商户的业务程序 //注意: //付款完成后,支付宝系统发送该交易状态通知 //调试用,写文本函数记录程序运行情况是否正常 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); } } //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— echo "success"; //请不要修改或删除 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } else { //验证失败 echo "fail"; //调试用,写文本函数记录程序运行情况是否正常 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); } }
function notifyUrl() { $aliPayConfig = C('aliPayConfig'); $aliPayNotify = new AlipayNotify($aliPayConfig); $verify_result = $aliPayNotify->verifyNotify(); $_POST = $this->zaddslashes($_POST); if ($verify_result) { //logResult(var_export($_POST, true)); //验证成功 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表 $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') { //交易成功结束 //判断该笔订单是否在商户网站中已经做过处理(可参考“集成教程”中“3.4返回数据处理”) //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 echo 'success'; //请不要修改或删除 //调试用,写文本函数记录程序运行情况是否正常 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); } else { $saveData['status'] = 1; $saveData['alipay_No'] = $trade_no; $orderCondition['order_No'] = array('eq', $out_trade_no); $orderInfo = $this->payModel->getOrderData($orderCondition); $points = explode('-~-', $orderInfo['points']); $this->payModel->getSaveUserSumPointsStatus(intval($orderInfo['id']), array_sum($points)); $status = $this->payModel->getSaveOrderDataStatus(intval($orderInfo['id']), $saveData); //logResult(var_export($_GET, true)); if ($status) { $this->changeGoodsInventory($orderInfo); echo 'success'; } else { echo 'fail'; } } //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } else { //验证失败 echo 'fail'; //调试用,写文本函数记录程序运行情况是否正常 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); } }
public function alipay_notify($post) { require_once "lib/alipay_notify.class.php"; $this->alipay_config['cacert'] = $this->cacert; $alipayNotify = new AlipayNotify($this->alipay_config); $verify_result = $alipayNotify->verifyNotify(); if ($verify_result) { return $post['trade_status']; } else { return "error"; } }
public function notifyVerify() { require_once "alipay/alipay_notify.class.php"; $alipayNotify = new AlipayNotify($this->_config); $verify_result = $alipayNotify->verifyNotify(); //验证 if ($verify_result) { return $_POST; } else { return false; } }
public function verifyNotify() { $basePath = base_path(); require_once $basePath . "/vendor/alipay/alipay.config.php"; require_once $basePath . "/vendor/alipay/lib/alipay_notify.class.php"; $alipayNotify = new AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyNotify(); if (!$verify_result) { throw new Exception("支付宝验证失败", 9001); } else { return true; } }
/** * 回调地址 */ public function callback() { require_once APP_PATH . "SDK/Payment/alipay_server/lib/alipay_notify.class.php"; //计算得出通知验证结果 $alipayNotify = new \AlipayNotify($this->alipay_config); $verify_result = $alipayNotify->verifyNotify(); if ($verify_result) { //验证成功 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表 //商户订单号 $out_trade_no = $_POST['out_trade_no']; M('test')->where(array('order' => $out_trade_no))->save(array('content' => json_encode(I()), 'pay_time' => time())); //支付宝交易号 $trade_no = $_POST['trade_no']; //交易状态 $trade_status = $_POST['trade_status']; if ($_POST['trade_status'] == 'TRADE_FINISHED') { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 //注意: //退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知 //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的 //调试用,写文本函数记录程序运行情况是否正常 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); } else { if ($_POST['trade_status'] == 'TRADE_SUCCESS') { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 //注意: //付款完成后,支付宝系统发送该交易状态通知 //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的 //调试用,写文本函数记录程序运行情况是否正常 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); } } //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— echo "success"; //请不要修改或删除 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } else { //验证失败 echo "fail"; //调试用,写文本函数记录程序运行情况是否正常 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); } }
function notifyurl() { /* 同理去掉以下两句代码; */ //require_once("alipay.config.php"); //require_once("lib/alipay_notify.class.php"); //这里还是通过C函数来读取配置项,赋值给$alipay_config $alipay_config = C('alipay_config'); //计算得出通知验证结果 $alipayNotify = new \AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyNotify(); if ($verify_result) { //验证成功 //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表 $out_trade_no = $_POST['out_trade_no']; //商户订单号 $trade_no = $_POST['trade_no']; //支付宝交易号 $trade_status = $_POST['trade_status']; //交易状态 $total_fee = $_POST['total_fee']; //交易金额 $notify_id = $_POST['notify_id']; //通知校验ID。 $notify_time = $_POST['notify_time']; //通知的发送时间。格式为yyyy-MM-dd HH:mm:ss。 $buyer_email = $_POST['buyer_email']; //买家支付宝帐号; $parameter = array("out_trade_no" => $out_trade_no, "trade_no" => $trade_no, "total_fee" => $total_fee, "trade_status" => $trade_status, "notify_id" => $notify_id, "notify_time" => $notify_time, "buyer_email" => $buyer_email); if ($_POST['trade_status'] == 'TRADE_FINISHED') { // } else { if ($_POST['trade_status'] == 'TRADE_SUCCESS') { if (!checkorderstatus($out_trade_no)) { orderhandle($parameter); //进行订单处理,并传送从支付宝返回的参数; } } } echo "success"; //请不要修改或删除 } else { //验证失败 echo "fail"; } }
public function notify() { require_once './Application/Recharge/Lib/Alipay/alipay.config.php'; require_once './Application/Recharge/Lib/Alipay/lib/alipay_notify.class.php'; $alipayNotify = new \AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyNotify(); if ($verify_result) { //验证成功 $record['body'] = I('post.body', '未获取', 'op_t'); $record['buyer_email'] = I('post.buyer_email', '未获取', 'op_t'); $record['buyer_id'] = I('post.buyer_id', '未获取', 'op_t'); $record['exterface'] = I('post.exterface', '未获取', 'op_t'); $record['is_success'] = I('post.is_success', '未获取', 'op_t'); $record['notify_id'] = I('post.notify_id', '未获取', 'op_t'); $record['notify_time'] = I('post.notify_time', '0', 'strtotime'); $record['notify_type'] = I('post.notify_type', '未获取', 'op_t'); $record['out_trade_no'] = I('post.out_trade_no', '未获取', 'op_t'); $record['payment_type'] = I('post.payment_type', '未获取', 'op_t'); $record['seller_email'] = I('post.seller_email', '未获取', 'op_t'); $record['seller_id'] = I('post.seller_id', '未获取', 'op_t'); $record['subject'] = I('post.subject', '未获取', 'op_t'); $record['total_fee'] = I('post.total_fee', '未获取', 'op_t'); $record['trade_no'] = I('post.trade_no', '未获取', 'op_t'); $record['trade_status'] = I('post.trade_status', '未获取', 'op_t'); $record['sign'] = I('post.sign', '未获取', 'op_t'); $record['sign_type'] = I('post.sign', '未获取', 'op_t'); //商户订单号 $order_id = $record['out_trade_no']; $alipayRecordModel = M('recharge_record_alipay'); if (!($rs = $alipayRecordModel->add($record))) { return '失败——保存支付结果失败。请联系管理员。'; /* $this->error('保存支付结果失败。请联系管理员。');*/ } $record['record_id'] = $rs; $link = M('order_link')->where(array('order_id' => $order_id))->find(); $result = R(ucfirst($link['app']) . '/Pay/afterPayAlipay', array('record' => $record), 'Widget'); if ($result) { M('order_link')->where(array('order_id' => $order_id))->setField('method', 'alipay'); exit($result); } else { exit('error'); } } else { exit('error'); } }
public function aliNotify() { require_once app_path() . "/Tool/alipay/alipay.config.php"; require_once app_path() . "/Tool/alipay/lib/alipay_notify.class.php"; //计算得出通知验证结果 $alipayNotify = new \AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyNotify(); if ($verify_result) { //验证成功 $doc = new \DOMDocument(); if ($alipay_config['sign_type'] == 'MD5') { $doc->loadXML($_POST['notify_data']); } if ($alipay_config['sign_type'] == '0001') { $doc->loadXML($alipayNotify->decrypt($_POST['notify_data'])); } if (!empty($doc->getElementsByTagName("notify")->item(0)->nodeValue)) { //商户订单号 $out_trade_no = $doc->getElementsByTagName("out_trade_no")->item(0)->nodeValue; //支付宝交易号 $trade_no = $doc->getElementsByTagName("trade_no")->item(0)->nodeValue; //交易状态 $trade_status = $doc->getElementsByTagName("trade_status")->item(0)->nodeValue; if ($trade_status == 'TRADE_FINISHED') { Log::info('支付完成'); echo "success"; //请不要修改或删除 } else { if ($trade_status == 'TRADE_SUCCESS') { // 修改用户的订单状态 Log::info('支付成功'); $order = Order::where('order_no', $out_trade_no)->first(); $order->status = 2; $order->save(); echo "success"; //请不要修改或删除 } } } } else { //验证失败 Log::info('支付验证失败'); echo "fail"; } }
function notifyurl() { $alipay_config = C('alipay_config'); //计算得出通知验证结果 $alipayNotify = new AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyNotify(); if ($verify_result) { //验证成功 //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表 $out_trade_no = $_POST['out_trade_no']; //商户订单号 $trade_no = $_POST['trade_no']; //支付宝交易号 $trade_status = $_POST['trade_status']; //交易状态 $total_fee = $_POST['total_fee']; //交易金额 $notify_id = $_POST['notify_id']; //通知校验ID。 $notify_time = $_POST['notify_time']; //通知的发送时间。格式为yyyy-MM-dd HH:mm:ss。 $buyer_email = $_POST['buyer_email']; //买家支付宝帐号; $parameter = array("out_trade_no" => $out_trade_no, "trade_no" => $trade_no, "total_fee" => $total_fee, "trade_status" => $trade_status, "notify_id" => $notify_id, "notify_time" => $notify_time, "buyer_email" => $buyer_email); //file_put_contents("/index/paylog.txt",$parameter,FILE_APPEND); if ($_POST['trade_status'] == 'TRADE_FINISHED') { // } else { if ($_POST['trade_status'] == 'TRADE_SUCCESS') { if (!checkorderstatus($out_trade_no)) { orderhandle($parameter); //进行订单处理,并传送从支付宝返回的参数; } } } echo "success"; //请不要修改或删除 } else { //验证失败 echo "fail"; } }
/** * 获取notify信息 */ public function getNotifyInfo($payment_config) { $alipay_config['partner'] = $payment_config['alipay_partner']; $alipay_config['private_key_path'] = 'key/rsa_private_key.pem'; $alipay_config['ali_public_key_path'] = 'key/alipay_public_key.pem'; $alipay_config['sign_type'] = strtoupper('RSA'); $alipay_config['input_charset'] = strtolower('utf-8'); $alipay_config['cacert'] = getcwd() . '\\cacert.pem'; $alipay_config['transport'] = 'http'; require_once BASE_PATH . DS . 'api/payment/alipay2/lib/alipay_notify.class.php'; //计算得出通知验证结果 $alipayNotify = new AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyNotify(); if ($verify_result) { //验证成功 if ($_POST['trade_status'] == 'TRADE_FINISHED' || $_POST['trade_status'] == 'TRADE_SUCCESS') { return array('out_trade_no' => $_POST['out_trade_no'], 'trade_no' => $_POST['trade_no']); } } return false; }
public function notify() { require_once ROOT . "/libs/alipay_wap_lib/alipay_notify.class.php"; $alipayNotify = new AlipayNotify($this->alipay_config); $verify_result = $alipayNotify->verifyNotify(); $ret = array(); if ($verify_result) { $out_trade_no = $_POST['out_trade_no']; $trade_no = $_POST['trade_no']; $trade_status = $_POST['trade_status']; if ($trade_status == 'TRADE_SUCCESS' || $trade_status == 'TRADE_FINISHED') { $ret["result"] = "SUCCESS"; $ret["trade_no"] = $trade_no; } else { $ret["result"] = "FAIL"; } } else { $ret["result"] = "FAIL"; } return $ret; }
public function notify() { $alipay_config = $this->alipay_config; $alipayNotify = new AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyNotify(); 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') { logResult("这代表单已经处理过了"); } else { if ($_POST['trade_status'] == 'TRADE_SUCCESS') { $jsAPInotify = D('Alipay'); //logResult(serialize($_POST)); $res = $jsAPInotify->alipayNotifyUpO($_POST['out_trade_no']); if ($res) { echo "success"; } logResult('单号:' . $_POST['out_trade_no'] . "--交易成功了。"); } } // echo "success"; //请不要修改或删除 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } else { logResult("这说明验证失败了"); //验证失败 echo "fail"; //调试用,写文本函数记录程序运行情况是否正常 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); } }
public function notifyurl() { //这里还是通过C函数来读取配置项,赋值给$alipay_config $alipay_config = C('alipay_config'); //计算得出通知验证结果 $alipayNotify = new \AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyNotify(); if ($verify_result) { if ($_POST['trade_status'] == 'TRADE_FINISHED' || $_POST['trade_status'] == 'TRADE_SUCCESS') { // $order_sn = $_POST['out_trade_no']; //商户订单号 $trade_no = $_POST['trade_no']; $map['order_sn'] = $order_sn; $reinfo = M('Recorder')->where($map)->find(); if ($reinfo['status'] == '0') { $data['trade_no'] = $trade_no; //支付宝交易号 $data['status'] = '1'; $res = M('Recorder')->where($map)->save($data); $umap['userid'] = $reinfo['userid']; $ures = M('Users')->where($umap)->setInc('balance', $reinfo['point']); //$ures = M('Users')->query("UPDATE `cly_users` SET `balance`=balance+{$reinfo['point']} WHERE ( `userid` = {$reinfo['userid']} )"); D('Pointlog')->pointlog($reinfo['userid'], $reinfo['point'], '1', '充值共享豆'); echo "success"; exit; } else { echo "success"; exit; } } echo "success"; exit; //请不要修改或删除 } else { //验证失败 echo "fail"; exit; } }
public function index() { $alipay_config = alipay_config(); require_once "application/third_party/alipay/lib/alipay_notify.class.php"; $alipayNotify = new AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyNotify(); $result = false; 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') { $result = $this->Morder->updatePaymentStatus($out_trade_no); if (!$result) { logResult('update payment error:' . $out_trade_no . "\\n"); } logResult($out_trade_no . " " . $trade_no . " " . $trade_status . "\\n"); } else { if ($_POST['trade_status'] == 'TRADE_SUCCESS') { $result = $this->Morder->updatePaymentStatus($out_trade_no); if (!$result) { logResult('update payment error:' . $out_trade_no . "\\n"); } logResult($out_trade_no . " " . $trade_no . " " . $trade_status . "\\n"); } } if ($result) { echo "success"; } else { echo 'fail'; } } else { echo "fail"; logResult("notify fail out_trade_no:" . $_POST['out_trade_no'] . ' trade_no:' . $_POST['trade_no'] . ' trade_status:' . $_POST['trade_status']); //if($_POST['trade_status'] == 'TRADE_SUCCESS') // logPayError(); } }
public function notify_url() { require_once $this->base_path . 'lib/alipay_notify.class.php'; $_POST['notify_data'] = htmlspecialchars_decode($_POST['notify_data']); $from = htmlentities($_GET['from']); $alipayNotify = new AlipayNotify($this->alipay_config); $verify_result = $alipayNotify->verifyNotify(); if ($verify_result) { $doc = new DOMDocument(); if ($this->alipay_config['sign_type'] == 'MD5') { $doc->loadXML($_POST['notify_data']); } if ($this->alipay_config['sign_type'] == '0001') { $doc->loadXML($alipayNotify->decrypt($_POST['notify_data'])); } if (!empty($doc->getElementsByTagName('notify')->item(0)->nodeValue)) { $out_trade_no = $doc->getElementsByTagName('out_trade_no')->item(0)->nodeValue; $trade_no = $doc->getElementsByTagName('trade_no')->item(0)->nodeValue; $trade_status = $doc->getElementsByTagName('trade_status')->item(0)->nodeValue; if ($trade_status == 'TRADE_FINISHED') { echo 'success'; } else { if ($trade_status == 'TRADE_SUCCESS') { $payHandel = new payHandle($this->token, $from, 'alipay'); $orderInfo = $payHandel->beforePay($out_trade_no); if (empty($orderInfo['paid'])) { $orderInfo = $payHandel->afterPay($out_trade_no, $trade_no); $url = C('site_url') . '/index.php?g=Wap&m=' . $from . '&a=payReturn&token=' . $orderInfo['token'] . '&wecha_id=' . $orderInfo['wecha_id'] . '&rget=1&orderid=' . $out_trade_no; file_get_contents($url); } echo 'success'; } } } } else { echo 'fail'; } }
public function notify() { require_once ROOT . "/libs/alipay_lib/alipay_notify.class.php"; $alipayNotify = new AlipayNotify($this->alipay_config); $verify_result = $alipayNotify->verifyNotify(); $ret = array(); if ($verify_result) { $doc = new DOMDocument(); if ($this->alipay_config['sign_type'] == 'MD5') { $doc->loadXML($_POST['notify_data']); } if ($this->alipay_config['sign_type'] == '0001') { $doc->loadXML($alipayNotify->decrypt($_POST['notify_data'])); } if (!empty($doc->getElementsByTagName("notify")->item(0)->nodeValue)) { $out_trade_no = $doc->getElementsByTagName("out_trade_no")->item(0)->nodeValue; $trade_no = $doc->getElementsByTagName("trade_no")->item(0)->nodeValue; $trade_status = $doc->getElementsByTagName("trade_status")->item(0)->nodeValue; $ret["out_trade_no"] = $out_trade_no; $ret["trade_no"] = $trade_no; if ($trade_status == 'TRADE_SUCCESS' || $trade_status == 'TRADE_FINISHED') { $ret["result"] = "SUCCESS"; } else { $ret["result"] = "FAIL"; } } else { $ret["result"] = "FAIL"; } } else { $ret["result"] = "FAIL"; } return $ret; }
function notify_url() { require_once "alipay/alipay.config.php"; require_once "alipay/lib/alipay_notify.class.php"; $alipay_config_temp = $this->tickets->select('payment', array('name' => 'alipay')); $alipay_con = $alipay_config_temp[0]; $alipay_config['partner'] = $alipay_con->app_id; $alipay_config['key'] = $alipay_con->app_secret; //计算得出通知验证结果 $alipayNotify = new AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyNotify(); 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)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 //注意: //该种交易状态只在两种情况下出现 //1、开通了普通即时到账,买家付款成功后。 //2、开通了高级即时到账,从该笔交易成功时间算起,过了签约时的可退款时限(如:三个月以内可退款、一年以内可退款等)后。 //调试用,写文本函数记录程序运行情况是否正常 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); } else { if ($_POST['trade_status'] == 'TRADE_SUCCESS') { $this->common->change_order_status($out_trade_no); //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 //注意: //该种交易状态只在一种情况下出现——开通了高级即时到账,买家付款成功后。 //调试用,写文本函数记录程序运行情况是否正常 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); } } //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— echo "success"; //请不要修改或删除 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } else { //验证失败 echo "fail"; //调试用,写文本函数记录程序运行情况是否正常 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); } }
* 版本:3.3 * 日期:2012-07-23 * 说明: * 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。 * 该代码仅供学习和研究支付宝接口使用,只是提供一个参考。 *************************页面功能说明************************* * 创建该页面文件时,请留心该页面文件中无任何HTML代码及空格。 * 该页面不能在本机电脑测试,请到服务器上做测试。请确保外部可以访问该页面。 * 该页面调试工具请使用写文本函数logResult,该函数已被默认关闭,见alipay_notify_class.php中的函数verifyNotify * 如果没有收到该页面返回的 success 信息,支付宝会在24小时内按一定的时间策略重发通知 */ require_once "application/config/alipay.config.php"; require_once "application/libraries/oldalipay/alipay_notify.class.php"; //计算得出通知验证结果 $alipayNotify = new AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyNotify(); if ($verify_result) { //验证成功 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表 //商户订单号 $out_trade_no = $_POST['out_trade_no']; //支付宝交易号 $trade_no = $_POST['trade_no']; //交易状态 $trade_status = $_POST['trade_status']; ///////////////////////小伟 自己的逻辑/////////////////////////////////////////////////////// require_once 'application/controllers/Order.php'; $OrderController = new Order();