《支付宝接口开发总结》由会员分享,可在线阅读,更多相关《支付宝接口开发总结(7页珍藏版)》请在金锄头文库上搜索。
1、关于支付宝的接口集成气死是很简单,目前大概有 3 种类型,即时到帐、双功能、担保交易,只需要集成一次担保交易,其他的比如即时到帐集成很容易,担保交易的状态有几种,比如:是否支付成功,卖家是否发货,买家确认收获等。而即时到帐只有一种,就是是否已付款!最多还有个退款的功能。一般都没用到。通过之前做项目:配资平台,有个预付费的功能,用到了支付宝的双功能收款,其实就是提供两种付款方式,即时到帐和担保交易。一般买家谨慎会选择担保。下面说下具体的集成过程,第一:下载对应的集成接口包,比如即时到帐就下载即时到帐,担保下载担保,非常不建议将即时到帐修改成担保或者反之。案例中我下载的 双功能接口文件,utf8-
2、php 接口。下载来的文件都大同小异,即时到帐和担保的文件也相差不大,反正可以肯定的说,只要配置一次担保支付宝接口,就能配置即时到帐。我们需要修改的文件有如下:alipay.config.php配置文件,只是用于修改配置接口开发者 id 和 keyalipayapi.php主调文件,将需要发送的 post 数据交给该文件,然后负责跳转到支付页面index.phpdemo 演示页面,可以不做修改,但是其中传递的参数名陈需要看懂notify_url.php 返回数据页面,在其中将返回交易的状态,更具状态我们可以更改数据库订单信息,该文件是通过 post 方式接受。return_url.php 返回
3、数据页面,在其中将返回交易的状态,更具状态我们可以更改数据库订单信息,该文件是通过 GET 方式。具体过程:第一步,修改配置信息:1 $alipay_configpartner = xxx8511073xxxxxxxx;2 3 /安全检验码,以数字和字母组成的 32 位字符4 $alipay_configkey =xxxxxxxxnow07oajbflskxxxxxxxxxx;第二:拼 post 数据,一般只需要修改请求参数01 /*请求参数*/02 /支付类型03 $payment_type = 1;04 /必填,不能修改05 /服务器异步通知页面路径06 $notify_url = htt
4、p:/你的域名/alipay/notify_url.php;07 /需 http:/格式的完整路径,不能加?id=123 这类自定义参数08 09 /页面跳转同步通知页面路径10 $return_url = http:/你的域名/alipay/return_url.php;11 /需 http:/格式的完整路径,不能加?id=123 这类自定义参数,不能写成http:/localhost/12 13 /卖家支付宝帐户14 $seller_email = $_POSTWIDseller_email;/demoindex.php传过来的15 /必填16 17 /商户订单号18 $out_trade
5、_no = $_POSTWIDout_trade_no;/传过来的19 /商户网站订单系统中唯一订单号,必填20 21 /订单名称22 $subject = $_POSTWIDsubject;/同上23 /必填24 25 /付款金额26 $price = $_POSTWIDprice;/传过来的,是你的表单中填写的值27 /必填28 29 /商品数量30 $quantity = 1;31 /必填,建议默认为 1,不改变值,把一次交易看成是一次下订单而非购买一件商品32 /物流费用33 $logistics_fee = 0.00;34 /必填,即运费35 /物流类型36 $logistics_t
6、ype = EXPRESS;37 /必填,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS)38 /物流支付方式39 $logistics_payment = SELLER_PAY;40 /必填,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费)41 /订单描述42 43 $body = $_POSTWIDbody;44 /商品展示地址45 $show_url = $_POSTWIDshow_url;46 /需以 http:/开头的完整路径,如:http:/www.ya- 47 48 /收货人姓名49 $receive_name = 萤火;
7、50 /如:张三51 52 /收货人地址53 $receive_address = $_POSTWIDreceive_address;54 /如:XX 省 XXX 市 XXX 区 XXX 路 XXX 小区 XXX 栋 XXX 单元 XXX 号55 56 /收货人邮编57 $receive_zip = $_POSTWIDreceive_zip;58 /如:12345659 60 /收货人电话号码61 $receive_phone = $_POSTWIDreceive_phone;62 /如:0571-8815809063 64 /收货人手机号码65 $receive_mobile = $_POS
8、TWIDreceive_mobile;66 /如:13312341234 第三:数据构造完成后就可以在页面上付款,测试能不能正确的打开支付页面。如果能打开,这时候就可以进行付款了,但是买家付款的状态我们还无法获知,比如有没有成功付款,卖家是否已经发货等。那么接下来开始做返回状态的业务逻辑处理。打开 return_url.php 文件,根据提示修改,做对因的处理。01 /请根据您的业务逻辑来编写程序(以下代码仅作参考)02 /获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表03 04 /商户订单号 $out_trade_no = $_GETout_trade_no;05 06
9、/支付宝交易号 $trade_no = $_GETtrade_no;07 08 /交易状态09 $trade_status = $_GETtrade_status;10 11 12 if($_GETtrade_status = WAIT_SELLER_SEND_GOODS) /状态为成功13 /处理自己网站的业务逻辑14 if(!$orderstatus)/判断本地数据库中的订单是否已经处理15db_update(stx_recharge,array(status=1),array(oid=$_GET16 17 out_trade_no);/如果没处理就将状态改成已经处理。18 /金钱的增加1
10、9 $zd = db_line(stx_terminal,array(id=$orderztid);20db_update(stx_terminal,array(money=$zdmoney+$order21 22 money),array(id=$orderztid);/增加余额到该用户的账户上。23 24 25 else if($_GETtrade_status = TRADE_FINISHED) 26 /判断该笔订单是否在商户网站中已经做过处理27 /如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统28 29 中查到该笔订单的详细,并执行商户的业务程序30 /
11、如果有做过处理,不执行商户的业务程序31 32 else 33 echo trade_status=.$_GETtrade_status;34 35 36 echo 验证成功;37 echo trade_no=.$trade_no;notify_url.php 也是一样,根据状态来编写对应的代码!notify_url.php 文件中的状态要多一些。01 /请根据您的业务逻辑来编写程序(以下代码仅作参考)02 03 /获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表04 05 /商户订单号06 07 $out_trade_no = $_POSTout_trade_no;08 09
12、 /支付宝交易号10 11 $trade_no = $_POSTtrade_no;12 13 /交易状态14 $trade_status = $_POSTtrade_status;15 16 17 if($_POSTtrade_status = WAIT_BUYER_PAY) 18 /该判断表示买家已在支付宝交易管理中产生了交易记录,但没有付款19 20 /判断该笔订单是否在商户网站中已经做过处理21 /如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序22 /如果有做过处理,不执行商户的业务程序23 24 echo success; /请不要修改或删除25 26 /调试用,写文本函数记录程序运行情况是否正常27 /logResult(这里写入想要调试的代码变量值,或其他运行的结果记录);28 29 else if($_POSTtrade_status = WAIT_SELLER_SEND_GOODS) 30 /该判断表示买家已在支付宝交易管理中产生了交易记录且付款成功,但卖家没有发货31 32 if(!$orderstatus)33db_update(stx_recharge,array(status=1),array(oid