PHP接入支付宝接口失效流程详解
最近在写个必要简朴付出的小项目,用到了付出宝接口,现已完成。把php接入付出宝的流程写在这里供像我一样的小白参考。 1.起主要有一个建设一个应用(选好本身想要的成果,关于付出的成果,貌似都必要签约) 2.下载SDK&Dome网址 我选择的是MD5署名方法,下面红框内就是做好的php Demo lib文件很重要,是整个接口的焦点类文件; alipay.config.php是相干参数的设置文件 alipayapi.php 是付出宝接口进口文件 notify_url.php 是处事器异步关照页面文件; return_url.php 是页面跳转同步关照文件; 3.打开alipay.config.php 4.设置完成后这个小例子就能直接会见了 嵌入thinkphp3.2.3 我保存了 从头定名为 别离给这五个文件加上定名空间 这四个文件的定名空间改为 Alipay.class.php 有窜改 ?php namespace ExtendAlipay; class Alipay { public function pay($alipay_config,$args){ /**************************哀求参数**************************/ //付出范例 $payment_type = "1"; //必填,不能修改 //处事器异步关照页面路径 $notify_url = $args['notify_url']; //需名目标完备路径,不能加?id=123这类自界说参数 //页面跳转同步关照页面路径 $return_url = $args['return_url']; //需名目标完备路径,不能加?id=123这类自界说参数,不能写成 //商户订单号 $out_trade_no = $args['out_trade_no']; //商户网站订单体系中独一订单号,必填 //订单名称 $subject = "测试"; //必填 //付款金额 $total_fee = $args['total']; //必填 //订单描写 $body = "test"; //需以开头的完备路径,譬喻:商户网址.com/myorder.html //防垂纶时刻戳 $anti_phishing_key = ""; //若要行使请挪用类文件submit中的query_timestamp函数 //客户端的IP地点 $exter_invoke_ip = ""; //非局域网的外网IP地点,如:221.0.0.1 /************************************************************/ //结构要哀求的参数数组,无需窜改 $parameter = array( "service" => "create_direct_pay_by_user", "partner" => trim($alipay_config['partner']), "seller_id" => trim($alipay_config['seller_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_charset" => trim(strtolower($alipay_config['input_charset'])) ); //成立哀求 $alipaySubmit = new libAlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestForm($parameter,"get", "确认"); echo $html_text; } } 在config.php设置文件里设置参数
然后新建节制器TextController.class.php <?php namespace HomeController; use ThinkController; use ExtendAlipay as Alipays; class TextController extends Controller { public function index(){ $this->display(); } public function dobuy(){ $out_trade_no = date('YmdHis'); $baseurl = 'http://'.$_SERVER['HTTP_HOST']; $args = array( 'out_trade_no'=>$out_trade_no, 'notify_url'=> $baseurl.'/index.php/Home/Text/notifyurl.html', 'return_url'=> $baseurl.'/index.php/Home/Text/returnurl.html', 'total'=> $_POST['WIDtotal_fee'], ); $s = new AlipaysAlipay(); $s->pay(C('alipay'),$args); } // 同步跳转 public function returnurl(){ $alipay_config = C('alipay'); //计较得出关照验证功效 $alipayNotify = new AlipayslibAlipayNotify($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') { //买卖营业乐成 }else { echo "trade_status=".$_GET['trade_status']; } echo "验证乐成<br />"; }else { //验证失败 //如要调试,请看alipay_notify.php页面的verifyReturn函数 echo "验证失败"; } } // 异步跳转 public function notifyurl(){ $alipay_config = C('alipay'); //计较得出关照验证功效 $alipayNotify = new AlipaysAlipayNotify($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"; //请不要修改或删除 } else { //验证失败 echo "fail"; //调试用,写文本函数记录措施运行环境是否正常 //logResult("这里写入想要调试的代码变量值,或其他运行的功效记录"); } } } 然后
这样就乐成完成简朴的付出成果了 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |