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; }
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'; }
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; }