加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

PHP接入支付宝接口失效流程详解

发布时间:2020-11-24 10:10:54 所属栏目:编程 来源:网络整理
导读:这篇文章首要先容了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("这里写入想要调试的代码变量值,或其他运行的功效记录"); } } }

然后


这样就乐成完成简朴的付出成果了

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读