最近在写个需要简单支付的小项目,用到了支付宝接口,现已完成。把php接入支付宝的流程写在这里供像我一样的小白参考。
1.首先要有一个创建一个应用(选好自己想要的功能,关于支付的功能,貌似都需要签约)
2.下载sdk&dome网址
/d/file/titlepic/doc.htm style="text-align: center">
我烦躁的个性签名选择的是md5签名方式,下面红框内就是做好的php demo
lib文件很重要,是整个接口的核心类文件;alipay.config.php是相关参数的配置文件alipayapi.php 是支付宝接口入口文件notify_url.php 是服务器异步通知页面文件;return_url.php 是页面跳转同步通知文件;
3.打开alipay.config.php
4.配置完成后这个小例子就能直接访问了
通过这个例子,我们就能灵活运用了 开发文档:
/d/file/titlepic/doc.htm 我保留了
重新命名为
分别给这五个文件加上命名空间
这四个文件的命名空间改为
alipay.class.php 有改动
?phpnamespace extend\alipay;class alipay { public function pay($alipay_config,$args){ /**************************请求参数**************************/ //支付类型 $payment_type = "1"; //必填,不能修改 //服务器异步通知页面路径 $notify_url = $args['notify_url']; //需http://格式的完整路径,不能加?id=123这类自定义参数 //页面跳转同步通知页面路径 $return_url = $args['return_url']; //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/ //商户订单号 $out_trade_no = $args['out_trade_no']; //商户网站订单系统中唯一订单号,必填 //订单名称 $subject = "测试"; //必填 //付款金额 $total_fee = $args['total']; //必填 //订单描述 $body = "test"; //需以http://开头的完整路径,例如:http://www.商户网址.com/myorder.html //防钓鱼时间戳 $anti_phishing_key = ""; //若要使用奥运金牌预测请调用类文件submit中的query_timestamp函数 //客户端的ip地址 $exter_invoke_ip = ""; //非局域网的外网ip地址,如:221.0.0.1 /************************************************************/ //构造要请求的参数数组,无需改动 $parameter = array( "rvice" => "create_direct_pay_by_ur", "partner" => trim($alipay_config['partner']), "ller_id" => trim($alipay_config['ller_id']), "payment_type" => $payment_type, "notify_url" => $notify_url, "return_url" => $return_url, "out_trade_no" => $out_trade_no, "subject" => $subject, "total_fee" => $total_fee, "body" => $body, "show_url" 幻城郭敬明 => $show_url, "anti_phishing_key" => $anti_phishing_key, "exter_invoke_ip" => $exter_invoke_ip, "_input_chart" => trim(strtolower($alipay_config['input_chart'])) ); //建立请求 $alipaysubmit = new lib\alipaysubmit($alipay_config); $html_text = $alipaysubmit->buildrequestform($parameter,"get", "确认"); echo $html_text; }}
在config.php配置文件里配置参数
然后新建控制器textcontroller.class.php
<?phpnamespace home\controller;u think\controller;u \extend\alipay as alipays;class textcontroller extends controller { public function index(){ $this->display(); } public function dobuy(){ $out_trade_no = date('ymdhis'); $baurl = 'http://'.$_rver['http_host']; $args = array( 'out_trade_no'=>$out_trade_no, 'notify_url'=> $baurl.'/index.php/home/text/notifyurl.html', 'return_url'=> $baurl.'/index.php/home/text/returnurl.html', 'total'=> $_post['widtotal_fee'], ); $s = new alipays\alipay(); $s->pay(c('alipay'),$arg三七的作用s); } // 同步跳转 public function returnurl(){ $alipay_config = c('alipay'); //计算得出通知验证结果 $alipaynotify = new alipays\lib\alipaynotify($alipay_config); $verify_result = $alipaynotify->verifyreturn(); if($verify_result) {//验证成功 //商户订单号 $out_trade_no = $_get['out_trade_no']; //支付宝交易号 $trade_no = $_get['trade_no']; //交易状态 $trade_status = $_get['trade_status']; if($_get['trade_status'] == 'trade_finished' || $_get['trade_status'] == 'trade_success') { //交易成功 }el { echo "trade_status=".$_get['trade_status']; } echo "验证成功<br />"; }el { //验证失败 //如要调试,请看alipay_notify.php页面的verifyreturn函数 echo "验证失败"; } } // 异步跳转 public function notifyurl(){ $alipay_config = c('alipay'); //计算得出通知验证结果 $alipaynotify = new alipays\alipaynotify($alipay_config); $verify_result = $alipaynotify->verifynotify(); if($verify_result) {//验证成功 $out_trade_no = $_post['out_trade_no']; //支付宝交易号 $trade_no = $_post['trade_no']; //交易状态 $trade_status = $_post['trade_status']; if($_post['trade_status'] == 'trade_finished'||$_post['trade_status'] == 'trade_success') { //交易成功 } echo "success"; //请不要修改或删除 } el { //验证失败 echo "fail"; //调试用,写文本函数记录程序运行情况是否正常 //logresult("这里写入想要调试的代码变量值,或其他运行的结果记录"); } }}
然后
这样就成功完成简单的支付功能了
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。
本文发布于:2023-04-08 23:36:32,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/169e51df59c8c57f7bc95868ce459581.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:PHP接入支付宝接口失效流程详解.doc
本文 PDF 下载地址:PHP接入支付宝接口失效流程详解.pdf
留言与评论(共有 0 条评论) |