appId = $_var_0; $this->returnUrl = $_var_1; $this->notifyUrl = $_var_2; $this->charset = "utf8"; $this->signType = $_var_3; $this->privateKey = $_var_4; } public function doPay($totalFee, $outTradeNo, $orderName, $returnUrl, $notifyUrl, $wap = '') { $_var_5 = $wap ? "alipay.wap.create.direct.pay.by.user" : "create_direct_pay_by_user"; $_var_6 = array("partner" => $this->appId, "service" => $_var_5, "_input_charset" => strtolower($this->charset), "sign_type" => strtoupper($this->signType), "return_url" => $returnUrl, "notify_url" => $notifyUrl, "out_trade_no" => $outTradeNo, "total_fee" => $totalFee, "subject" => $orderName, "payment_type" => 1, "seller_id" => $this->appId); return $this->buildRequestForm($_var_6); } function buildRequestForm($para_temp) { $_var_7 = $this->buildRequestPara($para_temp); $_var_8 = "
"; while (list($_var_9, $_var_10) = each($_var_7)) { $_var_8 .= ""; } $_var_8 = $_var_8 . "
"; $_var_8 = $_var_8 . ""; return $_var_8; } function buildRequestPara($para_temp) { $_var_11 = $this->paraFilter($para_temp); $_var_12 = $this->argSort($_var_11); $_var_13 = $this->buildRequestMysign($_var_12); $_var_12["sign"] = $_var_13; $_var_12["sign_type"] = strtoupper(trim($this->signType)); return $_var_12; } function argSort($para) { ksort($para); reset($para); return $para; } private function buildRequestMysign($para_sort) { $_var_14 = $this->createLinkstring($para_sort); $_var_15 = ""; switch (strtoupper(trim($this->signType))) { case "MD5": $_var_15 = $this->md5Sign($_var_14, $this->privateKey); break; case "RSA": default: $_var_15 = $this->rsaSign($_var_14, $this->privateKey); break; } return $_var_15; } private function rsaSign($_var_16, $_var_17) { $_var_17 = str_replace("-----BEGIN RSA PRIVATE KEY-----", "", $_var_17); $_var_17 = str_replace("-----END RSA PRIVATE KEY-----", "", $_var_17); $_var_17 = str_replace("\n", "", $_var_17); $_var_17 = "-----BEGIN RSA PRIVATE KEY-----" . PHP_EOL . wordwrap($_var_17, 64, "\n", true) . PHP_EOL . "-----END RSA PRIVATE KEY-----"; $_var_18 = openssl_get_privatekey($_var_17); if ($_var_18) { openssl_sign($_var_16, $_var_19, $_var_18); } else { echo "您的私钥格式不正确!" . "
" . "The format of your private_key is incorrect!"; exit; } openssl_free_key($_var_18); $_var_19 = base64_encode($_var_19); return $_var_19; } function md5Sign($prestr, $key) { $prestr = $prestr . $key; return md5($prestr); } private function createLinkstring($para) { $_var_20 = ""; while (list($_var_21, $_var_22) = each($para)) { $_var_20 .= $_var_21 . "=" . $_var_22 . "&"; } $_var_20 = substr($_var_20, 0, count($_var_20) - 2); return $_var_20; } private function paraFilter($_var_23) { $_var_24 = array(); while (list($_var_25, $_var_26) = each($_var_23)) { if ($_var_25 == "sign" || $_var_25 == "sign_type" || $_var_26 == "") { continue; } else { $_var_24[$_var_25] = $_var_23[$_var_25]; } } return $_var_24; } function verifyNotify($data) { if (empty($data)) { return false; } else { $_var_27 = $this->paraFilter($data); $_var_28 = $this->argSort($_var_27); $_var_29 = $this->buildRequestMysign($_var_28); if ($_var_29 = $data["sign"]) { return true; } else { return false; } } } }