Inhaltsverzeichnis
Umgebungsabhängigkeiten
Hinweise
Code
Heim Backend-Entwicklung PHP-Tutorial Eine PHP-Datei wickelt die Zahlung auf der Computer-Website von Alipay ab

Eine PHP-Datei wickelt die Zahlung auf der Computer-Website von Alipay ab

Apr 09, 2018 am 10:15 AM
php 支付 电脑

Der Inhalt dieses Artikels befasst sich mit der Verwendung einer PHP-Datei zum Abschließen der Alipay-Website-Zahlung.

Viele PHP-Alipay-Zahlungszugriffs-Tutorials im Internet sind recht kompliziert und erfordern Ich habe die Konfiguration und Einführung vieler Dateien geklärt und eine einzelne Dateiversion bereitgestellt. Ich hoffe, dass sie allen, die auf Alipay-Zahlungen zugreifen möchten, etwas Hilfe und Hinweise geben kann.

Eine PHP-Datei zur Abwicklung der Alipay-Reihe: https://github.com/dedemao/alipay

Eine PHP-Datei zur Abwicklung der WeChat-Zahlungsreihe: https://github.com/ dedemao/weixinPay

Umgebungsabhängigkeiten

PHP5.0 oder höher, und CURL-Dienst und SSL-Dienst müssen aktiviert sein.

Hinweise

1. Die Konfigurationsinformationen am Anfang der Datei müssen vollständig sein
2. Der private Schlüssel des Händlers muss mit dem privaten Schlüssel gefüllt werden, der dem Signaturalgorithmus entspricht Geben Sie ein. So generieren Sie die Schlüsselreferenz:
2.1 https://docs.open.alipay.com/291/105971
2.2 https://docs.open.alipay.com/200/105310

Code

<?phpheader(&#39;Content-type:text/html; Charset=utf-8&#39;);$appid = &#39;xxxxx&#39;;  //https://open.alipay.com 账户中心->密钥管理->开放平台密钥,填写添加了电脑网站支付的应用的APPID$returnUrl = &#39;http://www.xxx.com/alipay/return.php&#39;;     //付款成功后的同步回调地址$notifyUrl = &#39;http://www.xxx.com/alipay/notify.php&#39;;     //付款成功后的异步回调地址$outTradeNo = uniqid();     //你自己的商品订单号$payAmount = 0.01;          //付款金额,单位:元$orderName = &#39;支付测试&#39;;    //订单标题$signType = &#39;RSA2&#39;;       //签名算法类型,支持RSA2和RSA,推荐使用RSA2//商户私钥,填写对应签名算法类型的私钥,如何生成密钥参考:https://docs.open.alipay.com/291/105971和https://docs.open.alipay.com/200/105310$saPrivateKey=&#39;MIIEpAIBAAKCAQEA1MV+OY6MvGfXPM0MkpjT+FdzGmPOvVmX2wF3gjwQpeHBEUP9jLXhVS32fZ1iXI1e7WUGQ5tvXn28P8190kpOn/c/G5t2CAksUvemvF7uJN/N3Z1HFMdt3omvCd14K05lgcFYz7Z4c+A7ZJF5bPCB6oshjjUmbCY3hibuWzX/1j8AgsoD9lLyxoFqxLj98k5ZrYIhk900gMQs/WJ3A1FC09Dln9fuhBUyjtPHaml+4w+sdkdzxPktxdFrMcI7M7rNEwg25XtST5Z49oFpE84AlXM7+oC9jYvIpTGE00WomsgtakN039ucT/59Bup6pLkO08Rv85UXbqzGTcYAhNHLfQIDAQABAoIBAQCbuP258s+j8KgB8ty5yiqRPoeaj+O2h4Txn7A02/sfPQvNtCI0wsTpT5twsihULo+EVYTxJCitUn7df2sP5pyGzTEd5njLRtNu4Zvhj+Thjf8grERiu9b4oXI/WRzjLRxzi+uREi40OK+fWi0xgxDCdROY/eNiEdJfV8zpaqsUxG7VdwZIJQ/8d3Mi31OWv30kr9jfEd15DBInGJgSqR+qwrAB4pBSMcW8hL6PYlzoPi1ygceFjRrnbefG40zt0OUPSexQIgAmFvGqxTl5xo3dFEziGHdfWYsBKZ2M8ubAe+R6LcndxI+o2Hw4TNcC1tDeNMtjw7+h9S5aef5A8uWBAoGBAPxCLWPhUHCYlIXUz0D1SoolZs9WK7Kz1YSWnzqrpegN+foS5/ji93YylGE+KL31TwbnGQLAwknwMX3qTzmkvTovmy8jevXBsCSEFm81q0wG/35e1SKkTXL66RqB2y0xFLdcF3f9s8ZiEclqkYwNSHh0nqzREfIxMMAsj+3n2vHdAoGBANftYkZYrbs4iI/ZcjmBYguYikNfNmrD+Ta6ckOGZqsHfwXJCAz1rF4/XCqVAc9nxuzJR/72qkn9z07uH6qSZCqlZDRkiiKaK2UVqFDB+0abMk/TGHXuMmdvMkyj2jEZxG2rkg0kmg4qYkkg/5tGG1On/0GeZNVPu8JpsFr1pDYhAoGBANr8pCTKC6fDfWP1C3qrtmrY7zhc6RB4d4pjq5UmP5+EypaiZQi2F/dfD1qfuIS3eURXyGmQZtoDDyPtDZvP/ImPnFs+pNbFryD0HfmrEKquhIvyzXoGQknnsgbV5iy3KCTJaII9FxzINAKzZei7+0a+jqUd1kN3Gogp50Sze2ltAoGARaM5Xpaa8RZ6dGocfI9Nn4/Ch5fdZPFvHkdjMoPV+LKiNKtw/Tz+KiclAlasDsfZT+RaY9AJe3NvuHTzoX807swIVR1Xr3EpLaCed+0XrN3AjB34dZAskU87WZw+cjdtMjFzGOoFBSyGJi+OP/WMOp6jo/YBbwoX88tCJROzsgECgYAT8pHHIyPt5Y/5pDb8EDvD3XNES1fBkfZffSoAodsrkeoKgrsKl+9M3rcGX+S9dscyoH0ur3BFTMHtIOOhC5qytt+BhMHIP5mAs4di4u/joQCWQbUyrUggVK5it+6BFgAT+jeB7zTAUtgGpTVFq3kLbV0NZ+XQyEHVlnoJnHYpQg==&#39;;$aliPay = new AlipayService($appid,$returnUrl,$notifyUrl,$saPrivateKey);$sHtml = $aliPay->doPay($payAmount,$outTradeNo,$orderName,$returnUrl,$notifyUrl);echo $sHtml;class AlipayService{
    protected $appId;    protected $returnUrl;    protected $notifyUrl;    protected $charset;    //私钥值
    protected $rsaPrivateKey;    public function __construct($appid, $returnUrl, $notifyUrl,$saPrivateKey)
    {
        $this->appId = $appid;        $this->returnUrl = $returnUrl;        $this->notifyUrl = $notifyUrl;        $this->charset = &#39;utf8&#39;;        $this->rsaPrivateKey=$saPrivateKey;
    }    /**
     * 发起订单
     * @param float $totalFee 收款总费用 单位元
     * @param string $outTradeNo 唯一的订单号
     * @param string $orderName 订单名称
     * @param string $notifyUrl 支付结果通知url 不要有问号
     * @param string $timestamp 订单发起时间
     * @return array
     */
    public function doPay($totalFee, $outTradeNo, $orderName, $returnUrl,$notifyUrl)
    {
        //请求参数
        $requestConfigs = array(            &#39;out_trade_no&#39;=>$outTradeNo,            &#39;product_code&#39;=>&#39;FAST_INSTANT_TRADE_PAY&#39;,            &#39;total_amount&#39;=>$totalFee, //单位 元
            &#39;subject&#39;=>$orderName,  //订单标题
        );        $commonConfigs = array(            //公共参数
            &#39;app_id&#39; => $this->appId,            &#39;method&#39; => &#39;alipay.trade.page.pay&#39;,             //接口名称
            &#39;format&#39; => &#39;JSON&#39;,            &#39;return_url&#39; => $returnUrl,            &#39;charset&#39;=>$this->charset,            &#39;sign_type&#39;=>&#39;RSA2&#39;,            &#39;timestamp&#39;=>date(&#39;Y-m-d H:i:s&#39;),            &#39;version&#39;=>&#39;1.0&#39;,            &#39;notify_url&#39; => $notifyUrl,            &#39;biz_content&#39;=>json_encode($requestConfigs),
        );        $commonConfigs["sign"] = $this->generateSign($commonConfigs, $commonConfigs[&#39;sign_type&#39;]);        return $this->buildRequestForm($commonConfigs);
    }    /**
     * 建立请求,以表单HTML形式构造(默认)
     * @param $para_temp 请求参数数组
     * @return 提交表单HTML文本
     */
    protected function buildRequestForm($para_temp) {

        $sHtml = "<form id=&#39;alipaysubmit&#39; name=&#39;alipaysubmit&#39; action=&#39;https://openapi.alipay.com/gateway.do?charset=".$this->charset."&#39; method=&#39;POST&#39;>";        while (list ($key, $val) = each ($para_temp)) {            if (false === $this->checkEmpty($val)) {                $val = str_replace("&#39;","&apos;",$val);                $sHtml.= "<input type=&#39;hidden&#39; name=&#39;".$key."&#39; value=&#39;".$val."&#39;/>";
            }
        }        //submit按钮控件请不要含有name属性
        $sHtml = $sHtml."<input type=&#39;submit&#39; value=&#39;ok&#39; style=&#39;display:none;&#39;&#39;></form>";        $sHtml = $sHtml."<script>document.forms[&#39;alipaysubmit&#39;].submit();</script>";        return $sHtml;
    }    public function generateSign($params, $signType = "RSA") {
        return $this->sign($this->getSignContent($params), $signType);
    }    protected function sign($data, $signType = "RSA") {
        $priKey=$this->rsaPrivateKey;        $res = "-----BEGIN RSA PRIVATE KEY-----\n" .
            wordwrap($priKey, 64, "\n", true) .            "\n-----END RSA PRIVATE KEY-----";

        ($res) or die(&#39;您使用的私钥格式错误,请检查RSA私钥配置&#39;);        if ("RSA2" == $signType) {
            openssl_sign($data, $sign, $res, version_compare(PHP_VERSION,&#39;5.4.0&#39;, &#39;<&#39;) ? SHA256 : OPENSSL_ALGO_SHA256); //OPENSSL_ALGO_SHA256是php5.4.8以上版本才支持
        } else {
            openssl_sign($data, $sign, $res);
        }        $sign = base64_encode($sign);        return $sign;
    }    /**
     * 校验$value是否非空
     *  if not set ,return true;
     *    if is null , return true;
     **/
    protected function checkEmpty($value) {
        if (!isset($value))            return true;        if ($value === null)            return true;        if (trim($value) === "")            return true;        return false;
    }    public function getSignContent($params) {
        ksort($params);        $stringToBeSigned = "";        $i = 0;        foreach ($params as $k => $v) {            if (false === $this->checkEmpty($v) && "@" != substr($v, 0, 1)) {                // 转换成目标字符集
                $v = $this->characet($v, $this->charset);                if ($i == 0) {                    $stringToBeSigned .= "$k" . "=" . "$v";
                } else {                    $stringToBeSigned .= "&" . "$k" . "=" . "$v";
                }                $i++;
            }
        }        unset ($k, $v);        return $stringToBeSigned;
    }    /**
     * 转换字符集编码
     * @param $data
     * @param $targetCharset
     * @return string
     */
    function characet($data, $targetCharset) {
        if (!empty($data)) {            $fileType = $this->charset;            if (strcasecmp($fileType, $targetCharset) != 0) {                $data = mb_convert_encoding($data, $targetCharset, $fileType);                //$data = iconv($fileType, $targetCharset.&#39;//IGNORE&#39;, $data);
            }
        }        return $data;
    }
}
Nach dem Login kopieren

Verwandte Empfehlungen:

PHP zur Implementierung der Funktion zum Hinzufügen von Produkten zum Warenkorb (1)_php-Beispiel                                      

Das obige ist der detaillierte Inhalt vonEine PHP-Datei wickelt die Zahlung auf der Computer-Website von Alipay ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Wie man Deepseek vor Ort fein abgestimmt Wie man Deepseek vor Ort fein abgestimmt Feb 19, 2025 pm 05:21 PM

Die lokale Feinabstimmung von Deepseek-Klasse-Modellen steht vor der Herausforderung unzureichender Rechenressourcen und Fachkenntnisse. Um diese Herausforderungen zu bewältigen, können die folgenden Strategien angewendet werden: Modellquantisierung: Umwandlung von Modellparametern in Ganzzahlen mit niedriger Präzision und Reduzierung des Speicherboots. Verwenden Sie kleinere Modelle: Wählen Sie ein vorgezogenes Modell mit kleineren Parametern für eine einfachere lokale Feinabstimmung aus. Datenauswahl und Vorverarbeitung: Wählen Sie hochwertige Daten aus und führen Sie eine geeignete Vorverarbeitung durch, um eine schlechte Datenqualität zu vermeiden, die die Modelleffizienz beeinflusst. Batch -Training: Laden Sie für große Datensätze Daten in Stapel für das Training, um den Speicherüberlauf zu vermeiden. Beschleunigung mit GPU: Verwenden Sie unabhängige Grafikkarten, um den Schulungsprozess zu beschleunigen und die Trainingszeit zu verkürzen.

Deepseek Image Generation Tutorial Deepseek Image Generation Tutorial Feb 19, 2025 pm 04:15 PM

Deepseek: Ein leistungsstarkes Werkzeug für KI -Bildgenerierung! Deepseek selbst ist kein Werkzeug zur Bildgenerierung, aber seine leistungsstarke Kerntechnologie unterstützt viele KI -Malwerkzeuge. Möchten Sie wissen, wie Sie Deepseek verwenden, um Bilder indirekt zu generieren? Bitte lesen Sie weiter! Generieren Sie Bilder mit Deepseek-basierten KI-Tools: In den folgenden Schritten werden die folgenden Tools verwendet. Wählen Sie den Zeichnungsmodus aus: Wählen Sie "AI -Zeichnung" oder eine ähnliche Funktion aus und wählen Sie den Bildtyp entsprechend Ihren Anforderungen wie "Anime Avatar", "Landschaft" aus, "Landschaft".

PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? Mar 05, 2025 pm 05:57 PM

Detaillierte Erläuterungs- und Installationshandbuch für Pinetwork -Knoten In diesem Artikel wird das Pinetwork -Ökosystem im Detail vorgestellt - PI -Knoten, eine Schlüsselrolle im Pinetwork -Ökosystem und vollständige Schritte für die Installation und Konfiguration. Nach dem Start des Pinetwork -Blockchain -Testnetzes sind PI -Knoten zu einem wichtigen Bestandteil vieler Pioniere geworden, die aktiv an den Tests teilnehmen und sich auf die bevorstehende Hauptnetzwerkveröffentlichung vorbereiten. Wenn Sie Pinetwork noch nicht kennen, wenden Sie sich bitte an was Picoin ist? Was ist der Preis für die Auflistung? PI -Nutzung, Bergbau und Sicherheitsanalyse. Was ist Pinetwork? Das Pinetwork -Projekt begann 2019 und besitzt seine exklusive Kryptowährung PI -Münze. Das Projekt zielt darauf ab, eine zu erstellen, an der jeder teilnehmen kann

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

So fragen Sie Deepseek So fragen Sie Deepseek Feb 19, 2025 pm 04:39 PM

Die Suchgenauigkeit von Deepseek hängt von der Art der Fragen ab. Um ideale Ergebnisse zu erzielen, sollte die Frage die folgenden Schlüsselelemente enthalten: Klares Thema: Spezifische angegebene Informationsziele. Spezifische Winkel: Aus einer bestimmten Perspektive in das Thema geschnitten. Erwarteter Ausgangsformular: Definieren Sie den gewünschten Ergebnistyp (Zusammenfassung, Analyse, Liste usw.).

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

So laden Sie Deepseek herunter So laden Sie Deepseek herunter Feb 19, 2025 pm 05:45 PM

Stellen Sie sicher, dass Sie auf offizielle Website -Downloads zugreifen, und überprüfen Sie sorgfältig den Domain -Namen und das Design der Website. Scannen Sie nach dem Herunterladen die Datei. Lesen Sie das Protokoll während der Installation und vermeiden Sie die Systemdiskola bei der Installation. Testen Sie die Funktion und wenden Sie sich an den Kundendienst, um das Problem zu lösen. Aktualisieren Sie die Version regelmäßig, um die Sicherheit und Stabilität der Software zu gewährleisten.

See all articles