国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

一個PHP文件搞定支付寶系列之當面付(掃碼支付)

idealcn / 2334人閱讀

摘要:網上的很多支付寶支付接入教程都頗為復雜,且需要配置和引入較多的文件,本人通過整理后給出一個單文件版的,希望可以給各位想接入支付寶支付的帶來些許幫助和借鑒意義。一個文件搞定支付寶系列一個文件搞定微信支付系列環境依賴以上,且需要開啟服務服務。

網上的很多PHP支付寶支付接入教程都頗為復雜,且需要配置和引入較多的文件,本人通過整理后給出一個單文件版的,希望可以給各位想接入支付寶支付的帶來些許幫助和借鑒意義。

掃碼支付,指用戶打開支付寶錢包中的“掃一掃”功能,掃描商家展示在某收銀場景下的二維碼并進行支付的模式。該模式適用于線下實體店支付、面對面支付等場景。

運行以下php文件代碼即可生成一張付款二維碼圖片,使用支付寶掃一掃即可付款。

一個PHP文件搞定支付寶系列:https://github.com/dedemao/al...

一個PHP文件搞定微信支付系列:https://github.com/dedemao/we...

環境依賴

PHP5.0以上,且需要開啟CURL服務、SSL服務。

注意事項

1.文件開頭的配置信息必須完善
2.商戶私鑰需填寫對應簽名算法類型的私鑰,如何生成密鑰參考:
2.1 https://docs.open.alipay.com/...
2.2 https://docs.open.alipay.com/...

代碼
密鑰管理->開放平臺密鑰,填寫添加了電腦網站支付的應用的APPID
$notifyUrl = "http://www.xxx.com/alipay/notify.php";     //付款成功后的異步回調地址
$outTradeNo = uniqid();     //你自己的商品訂單號
$payAmount = 0.01;          //付款金額,單位:元
$orderName = "支付測試";    //訂單標題
$signType = "RSA2";       //簽名算法類型,支持RSA2和RSA,推薦使用RSA2
//商戶私鑰,填寫對應簽名算法類型的私鑰,如何生成密鑰參考:https://docs.open.alipay.com/291/105971和https://docs.open.alipay.com/200/105310
$saPrivateKey="MIIEpAIBAAKCAQEA1MV+OY6MvGfXPM0MkpjT+FdzGmPOvVmX2wF3gjwQpeHBEUP9jLXhVS32fZ1iXI1e7WUGQ5tvXn28P8190kpOn/c/G5t2CAksUvemvF7uJN/N3Z1HFMdt3omvCd14K05lgcFYz7Z4c+A7ZJF5bPCB6oshjjUmbCY3hibuWzX/1j8AgsoD9lLy1oFqxLj98k5ZrYIhk900gMQs/WJ3A1FC09Dln9fuhBUyjtPHaml+4w+sdkdzxPktxdFrMcI7M7rNEwg25XtST5Z49oFpE84AlXM7+oC9jYvIpTGE00WomsgtakN039ucT/59Bup6pLkO08Rv85UXbqzGTcYAhNHLfQIDAQABAoIBAQCbuPM58s+j8KgB8ty5yiqRPoeaj+O2h4Txn7A02/sfPQvNtCI0w3TpT5twsihULo+EVYTxJCitUn7df2sP5pyGzTEd5njLRtNu4Zvhj+Thjf8grERiu9b4oXI/WRzjLRxzi+uREi40OK+fWi0xgxDCdROY/eNiEdJfV8zpaqsUxG7VdwZIJQ/8d3Mi31OWv30kr9jfEd15DBInGJgSqR+qwrAB4pBSMcW8hL6PYlzoPi1ygceFjRrnbeMG40zt0OUPSexQIgAmFvGqxTl5xo3dFEziGHdfWYsBKZ2M8ubAe+R6LcndxI+o2Hw4TNcC1tDeNMtjw7+h9S5aef5A8uWBAoGBAPxCLWPhUHCYlIXUz0D1SoolZs9WK7Kz1YSWnzqrpegN+foS5/ji93YylGE+KL31TwbnGQLAwknwMX3qTzmkvTovmy8jevXBsCSEFm81q0wG/35e1SKkTXL66RqB2y0xFLdcF3f9s8ZiEclqkYwNSHh0nqzREfIxMMAsj+3n2vHdAoGBANftYkZYrbs4iI/ZcjmBYguYikNfNmrD+Ta6ckOGZqsHfwXJCAz1rF4/XCqVAc9nxuzJR/72qkn9z07uH6qSZCqlZDRkiiKaK2UVqFDB+0abMk/TGHXuMmdvMkyj2jEZxG2rkg0kmg4qYkkg/5tGG1On/2GeZNVPu8JpsFr1pDYhAoGBANr8pCTKC6fDfWP1C3qrtmrY7zhc6RB4d4pjq5UmP5+EypaiZQi2F/dfD1qfuIS3eURXyGmQZtoDDyPtDZvP/ImPnFs+pNbFryD0HfmrEKquhIvyzXoGQknnsgbV5iyEKCTJaII9FxzINAKzZei7+0a+jqUd1kN3Gogp50Sze2ltAoGARaM5Xpaa8RZ6dGocfI9Nn4/Ch5fdZPFvHkdjMoPV+LKiNKtw/Tz+KiclAlasDsfZT+RaY9AJe3NvuHTzoX807swIVR1Xr3EpLaCed+0XrN3AjB34dZAskU87WZw+cjdtMjFzGOoFBSyGJi+OP/WMOp6jo/YBbwoX88tCJROzsgECgYAT8pHHIyPt5Y/5pDb8EDvD3XNES1fBkfZffSoAodsrkeoKgrsKl+9M3rcGX+S9dscyoH0ur3BFTMHtIOOhC5qytt+BhMHIP5mAs4di4u/joQCWQbUyrUggVK5it+6BFgAT+jeB7zTAUtgGpTVFq3kLbV0NZ+XQyEHVlnoJnHYpQg==";
$aliPay = new AlipayService($appid,$returnUrl,$notifyUrl,$saPrivateKey);
$result = $aliPay->doPay($payAmount,$outTradeNo,$orderName,$returnUrl,$notifyUrl);
$result = $result["alipay_trade_precreate_response"];
if($result["code"] && $result["code"]=="10000"){
    //生成二維碼
    $url = "http://pan.baidu.com/share/qrcode?w=300&h=300&url=".$result["qr_code"];
    echo "
"; echo "二維碼內容:".$result["qr_code"]; }else{ echo $result["msg"]." : ".$result["sub_msg"]; } class AlipayService { protected $appId; protected $returnUrl; protected $notifyUrl; //私鑰文件路徑 protected $rsaPrivateKeyFilePath; //私鑰值 protected $rsaPrivateKey; public function __construct($appid, $returnUrl, $notifyUrl,$saPrivateKey) { $this->appId = $appid; $this->returnUrl = $returnUrl; $this->notifyUrl = $notifyUrl; $this->charset = "utf8"; $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( "out_trade_no"=>$outTradeNo, "total_amount"=>$totalFee, //單位 元 "subject"=>$orderName, //訂單標題 ); $commonConfigs = array( //公共參數 "app_id" => $this->appId, "method" => "alipay.trade.precreate", //接口名稱 "format" => "JSON", "charset"=>$this->charset, "sign_type"=>"RSA2", "timestamp"=>date("Y-m-d H:i:s"), "version"=>"1.0", "notify_url" => $notifyUrl, "biz_content"=>json_encode($requestConfigs), ); $commonConfigs["sign"] = $this->generateSign($commonConfigs, $commonConfigs["sign_type"]); $result = $this->curlPost("https://openapi.alipay.com/gateway.do",$commonConfigs); return json_decode($result,true); } 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----- " . wordwrap($priKey, 64, " ", true) . " -----END RSA PRIVATE KEY-----"; ($res) or die("您使用的私鑰格式錯誤,請檢查RSA私鑰配置"); if ("RSA2" == $signType) { openssl_sign($data, $sign, $res, version_compare(PHP_VERSION,"5.4.0", "<") ? 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."http://IGNORE", $data); } } return $data; } public function curlPost($url = "", $postData = "", $options = array()) { if (is_array($postData)) { $postData = http_build_query($postData); } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); curl_setopt($ch, CURLOPT_TIMEOUT, 30); //設置cURL允許執行的最長秒數 if (!empty($options)) { curl_setopt_array($ch, $options); } //https請求 不驗證證書和host curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $data = curl_exec($ch); curl_close($ch); return $data; } }

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26130.html

相關文章

  • 準備接入個人接口?看完這幾款產品再做決定!

    摘要:支持的付款方式主打銀聯信用卡等,付款可以及時到賬。支持的付款方式主要是微信支付寶和京東支付。支持微信支付寶掃碼支付。 最近在開發自己的網站,想要接入一個第三方的支付平臺,但是處在創業初期,還沒能成立公司,所以沒有企業資質,想接入一款安全且性價比高的收款產品。以本人選擇困難癥再加點小糾結的個性,對現有的一些第三方支付接口做了一個對比,希望能給有相同需要的和正在尋求相關解決方案的朋友提供一...

    SimonMa 評論0 收藏0
  • 個人接口現狀分析——總有一款適合你

    摘要:支付寶支持網站支付,支付,支付和當面付,但是要想接入網站,需要網站備案,并且還要有營業執照。可是,這個途徑后來經過證實,支付寶已經停用。缺點也是相當的明顯只有支付寶可以用這種方式,因為微信是在內部有一個公眾號形式的提示。 0.背景 前段時間準備把自己的博客做成付費閱讀或者訂閱的形式,雖然沒想著要贏利多少錢,但是起碼養的起自己站點域名服務器費用即可。但是大家都懂,草根站長,又沒公司,想...

    tylin 評論0 收藏0
  • 一個PHP文件搞定系列手機網站(兼容微信瀏覽器)

    摘要:網上的很多支付寶支付接入教程都頗為復雜,且需要配置和引入較多的文件,本人通過整理后給出一個單文件版的,希望可以給各位想接入支付寶支付的帶來些許幫助和借鑒意義。 網上的很多PHP支付寶支付接入教程都頗為復雜,且需要配置和引入較多的文件,本人通過整理后給出一個單文件版的,希望可以給各位想接入支付寶支付的帶來些許幫助和借鑒意義。 一個PHP文件搞定支付寶系列:https://github.c...

    xinhaip 評論0 收藏0
  • 一個PHP文件搞定系列電腦網站

    摘要:網上的很多支付寶支付接入教程都頗為復雜,且需要配置和引入較多的文件,本人通過整理后給出一個單文件版的,希望可以給各位想接入支付寶支付的帶來些許幫助和借鑒意義。一個文件搞定支付寶系列一個文件搞定微信支付系列環境依賴以上,且需要開啟服務服務。 網上的很多PHP支付寶支付接入教程都頗為復雜,且需要配置和引入較多的文件,本人通過整理后給出一個單文件版的,希望可以給各位想接入支付寶支付的帶來些許...

    luck 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<