示例#1
0
 protected function aliPay($orderId, $orderDesc, $totalAmount)
 {
     PayModel::onCreateOrderOk($orderId, array('pay_type' => PayModel::PAY_TYPE_ALI));
     $ret = AliSDK::wapPay(ALI_PAY_PARTNER_ID, CONFIG_PATH . '/alipay/rsa_private_key.pem', $orderId, $orderDesc, number_format($totalAmount, 2, '.', ''), APP_URL_BASE . '/pay/PayNotify/aliPay', APP_URL_BASE . '/pay/OrderPay/aliPayReturn');
     if ($ret === false) {
         $this->ajaxReturn(ERR_SYSTEM_ERROR, '生成支付宝支付数据失败,稍重试');
         return;
     }
     $payHtml = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ' . 'Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' . '<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">' . '<title>支付宝安全支付</title>' . '</head><body>' . $ret . '</body></html>';
     echo $payHtml;
 }
示例#2
0
 public function aliPay()
 {
     if ($_SERVER['REQUEST_METHOD'] != 'POST') {
         exit;
     }
     if (!isset($_POST['sign']) || !isset($_POST['sign_type']) || $_POST['sign_type'] != 'RSA') {
         echo 'fail';
         exit;
     }
     $ret = AliSDK::verifySign($_POST, CONFIG_PATH . '/alipay/alipay_public_key.pem', $_POST['sign']);
     $ret = true;
     // TODO
     if ($ret === false) {
         Log::pay('ali wap pay notify fail (sign fail) ' . json_encode($_POST, JSON_UNESCAPED_UNICODE));
         echo 'success';
         exit;
     }
     if (!empty($_POST['notify_id'])) {
         $ret = AliSDK::verifyNotify(ALI_PAY_PARTNER_ID, CONFIG_PATH . '/alipay/cacert.pem', $_POST['notify_id']);
         if ($ret === false) {
             Log::pay('ali wap pay notify fail (verify notify_id fail) ' . json_encode($_POST, JSON_UNESCAPED_UNICODE));
             echo 'fail';
             exit;
         }
     }
     $nk = Nosql::NK_PAY_NOTIFY_DE_DUPLICATION . $data['out_trade_no'];
     $nk = Nosql::get($nk);
     if (!empty($nk)) {
         Log::pay('ali wap pay notify success (had handled): ' . json_encode($_POST, JSON_UNESCAPED_UNICODE));
         echo 'success';
         return;
     }
     if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
         if ($this->onPayNotifyOk($_POST['out_trade_no'], $_POST['total_fee'], $_POST['total_fee']) === true) {
             Nosql::setex($nk, Nosql::NK_PAY_NOTIFY_DE_DUPLICATION_EXPIRE, 'x');
             Log::pay('ali wap pay notify success : ' . json_encode($_POST, JSON_UNESCAPED_UNICODE));
             echo 'success';
             return;
         }
     } else {
         // TRADE_FINISHED WAIT_BUYER_PAY 不处理
         echo 'success';
         return;
     }
     echo 'fail';
 }
示例#3
0
    public function aliPay()
    {
        $orderId = date('Ymd') . mt_rand(1000000000, 1999999999);
        PayModel::onCreateOrderOk($orderId, array('pay_type' => PayModel::PAY_TYPE_ALI));
        $ret = AliSDK::wapPay(ALI_PAY_PARTNER_ID, CONFIG_PATH . '/alipay/rsa_private_key.pem', $orderId, '测试1分钱', 0.01, APP_URL_BASE . '/pay/PayNotify/aliPay', APP_URL_BASE . '/pay/OrderPay/aliPayReturn');
        echo <<<HTML
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
            <html>
            <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
            <title>支付宝手机网站支付接口接口</title>
            </head>
            {$ret};
            </body>
            </html>
HTML;
    }