Home  >  Article  >  php教程  >  集成支付宝担保交易

集成支付宝担保交易

WBOY
WBOYOriginal
2016-06-07 11:43:471055browse

现在的网站功能越来越全乎了,很多网站都需要做支付功能,而且很多大平台都提供了各式各样的api来扩充自己的用户和开发者。话说,这种使用大平台的api来做支付,无论是从成本上还是从开发效率上都是很好的选择。今儿我就来念叨念叨怎么集成支付宝的api,其实想写关于支付的文章已经很久了,哎~,就是有点儿小忙,趁着9月的最后一天,随便码点儿字吧。
1.准备工作

集成包下载下来后,解压到本地,因为我的网站是utf-8编码,所以我选择utf-8的那个文件,注意,语言是php哦

点开文件夹,里面有很多文件的,这里其实是支付宝官方给做的一个demo,照着这个集成,基本上问题不大的说。这里面最主要的文件是lib下面的四个文件:

要集成到thinkphp中,那四个文件应该是当做第三方方类库来处理,在“ThinkPHP/Extend/Vender/”文件夹下面,建立一个文件夹,如Alipay,将上面四个文件放进去;然后在自定义的Action类中,用Vender()方法来引入。

还有一种形式,你可以将那四个文件放在一个文件夹下面,这个文件夹你可以放在指定的位置,然后用import()方法来引入所需的文件。

不管以哪种方式集成,首先都是要修改那四个核心文件,我将那四个文件分别修改名称,如下图:

然后将Notify.php和Submit.php中的两行代码去掉,见下图:

去掉的原因是,用Vender或import引入的时候,另外两个文件会被加载,这里就不需要再重复加载了。

2.自定义Action类

准备工作完成后,我们开始写控制器,这里不再叙述tp控制器的写法,因为这里不是今儿要讲的重点。

建立一个PayAction类,继承于Action类,里面可以定义这么几个方法

//初始化的工作
public function _initialize(){}
//页面显示
public function index(){}
//支付方法
public function doPay(){}
//同步通知
public function returnUrl(){}
//异步通知
public function notifyUrl(){}
初始化工作你最重要的是引入那四个文件

还有一个重要的没有说,就是需要一些配置文件,我将部分写在了数据库中,一部分写在了config.php中,为了方便我全部拿到config.php中,

配置中partner和key是你申请担保支付后,支付宝提供给你的,写在配置中即可。

'cacert'这个是证书,放在根目录下即可。

returnUrl是支付完成后支付宝那边给返回的同步通知方法,notifyUrl是当同步通知或者交易状态发生改变时支付宝返回的异步通知,这个方法是看不到界面跳转的。说到同步和异步的通知,必须强调的是在配置中,同步和异步url的配置是不能加参数的,也就是说,http://xxxx/xxxx.php?xxx=xxx这种形式是错误的,支付宝返回的时候是找不到路径的。

为了能在tp中正常的运行,需要修改Corefunction.php中的代码,如下:

Notify.php中verifyNotify和verifyReturn方法需要修改一下;这样做的目的是去除tp在url中增加的多余的字符。

详细的内容可以来这里查看,ps:如果有不明白的地方可以在文章中留言
http://www.appryan.com/2013/09/30/tp-alipay

附件 Alipay.zip ( 145.38 KB 下载:267 次 )

AD:真正免费,域名+虚机+企业邮箱=0元

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn