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

2025-05-29 0 66

最近在写个需要简单支付的小项目,用到了支付宝接口,现已完成。把php接入支付宝的流程写在这里供像我一样的小白参考。

1.首先要有一个创建一个应用(选好自己想要的功能,关于支付的功能,貌似都需要签约)

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

2.下载sdk&dome网址

https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.cbtzbf&treeid=203&articleid=105910&doctype=1

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

我选择的是md5签名方式,下面红框内就是做好的php demo

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

  • lib文件很重要,是整个接口的核心类文件;
  • alipay.config.php是相关参数的配置文件
  • alipayapi.php支付宝接口入口文件
  • notify_url.php 是服务器异步通知页面文件;
  • return_url.php 是页面跳转同步通知文件;

3.打开alipay.config.php

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

4.配置完成后这个小例子就能直接访问了

PHP接入支付宝接口失效流程详解
PHP接入支付宝接口失效流程详解
通过这个例子,我们就能灵活运用了 开发文档:

https://doc.open.alipay.com/docs/doc.htm?treeid=203&articleid=105288&doctype=1

嵌入thinkphp3.2.3 我保留了

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

重新命名为

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

分别给这五个文件加上命名空间

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

这四个文件的命名空间改为

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

alipay.class.php 有改动

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56
?php

namespace 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(

"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 lib\\alipaysubmit($alipay_config);

$html_text = $alipaysubmit->buildrequestform($parameter,"get", "确认");

echo $html_text;

}

}

在config.php配置文件里配置参数

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

然后新建控制器textcontroller.class.php

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71
<?php

namespace home\\controller;

use think\\controller;

use \\extend\\alipay 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 alipays\\alipay();

$s->pay(c('alipay'),$args);

}

// 同步跳转

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') {

//交易成功

}else {

echo "trade_status=".$_get['trade_status'];

}

echo "验证成功<br />";

}else {

//验证失败

//如要调试,请看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"; //请不要修改或删除

}

else {

//验证失败

echo "fail";

//调试用,写文本函数记录程序运行情况是否正常

//logresult("这里写入想要调试的代码变量值,或其他运行的结果记录");

}

}

}

然后

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

这样就成功完成简单的支付功能了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

原文链接:https://blog.csdn.net/sangjinchao/article/details/54987999

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 PHP接入支付宝接口失效流程详解 https://www.kuaiidc.com/90562.html

相关文章

发表评论
暂无评论