php支付宝系列之电脑网站支付
发布时间:2023-02-10 13:48:28 所属栏目:PHP教程 来源:
导读: 网上的很多PHP支付宝支付接入教程都颇为复杂,且需要配置和引入较多的文件,本人通过整理后给出一个单文件版的,希望可以给各位想接入支付宝支付的带来些许帮助和借鉴意义。
一个PHP文件搞定支付宝系列
一个PHP文件搞定支付宝系列
网上的很多PHP支付宝支付接入教程都颇为复杂,且需要配置和引入较多的文件,本人通过整理后给出一个单文件版的,希望可以给各位想接入支付宝支付的带来些许帮助和借鉴意义。 一个PHP文件搞定支付宝系列 一个PHP文件搞定微信支付系列 环境依赖 PHP5.0以上,且需要开启CURL服务、SSL服务。 注意事项 1.文件开头的配置信息必须完善 2.商户私钥需填写对应签名算法类型的私钥,如何生成密钥参考: 2.1 生成RSA密钥 2.2 创建应用 代码 密钥管理->开放平台密钥,填写添加了电脑网站支付的应用的APPID $returnUrl = 'http://www.xxx.com/alipay/return.php'; //付款成功后的同步回调地址 $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/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=='; $aliPay = new AlipayService($appid,$returnUrl,$notifyUrl,$saPrivateKey); $sHtml = $aliPay->doPay($payAmount,$outTradeNo,$orderName,$notifyUrl); echo $sHtml; class AlipayService { protected $appId; protected $returnUrl; protected $notifyUrl; protected $charset; //私钥值 protected $rsaPrivateKey; public function __construct($appid,$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,$notifyUrl) { //请求参数 $requestConfigs = array( 'out_trade_no'=>$outTradeNo,'product_code'=>'FAST_INSTANT_TRADE_PAY','total_amount'=>$totalFee,//单位 元 'subject'=>$orderName,//订单标题 ); $commonConfigs = array( //公共参数 'app_id' => $this->appId,'method' => 'alipay.trade.page.pay',//接口名称 'format' => 'JSON','return_url' => $returnUrl,'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']); return $this->buildRequestForm($commonConfigs); } /** 建立请求,以表单HTML形式构造(默认) @param $para_temp 请求参数数组 @return 提交表单HTML文本 */ protected function buildRequestForm($para_temp) { $sHtml = "<form id='alipaysubmit' name='alipaysubmit' action='https://openapi.alipay.com/gateway.do?charset=".$this->charset."' method='POST'>"; while (list ($key,$val) = each ($para_temp)) { if (false === $this->checkEmpty($val)) { $val = str_replace("'","'",$val); $sHtml.= "<input type='hidden' name='".$key."' value='".$val."'/>"; } } //submit按钮控件请不要含有name属性 $sHtml = $sHtml."<input type='submit' value='ok' style='display:none;''></form>"; $sHtml = $sHtml."<script>document.forms['alipaysubmit'].submit();</script>"; return $sHtml; } public function generateSign($params,$signType = "RSA") { return $this->sign($this->getSignContent($params),$signType); } (编辑:云计算网_宿迁站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐