PHP接口_支付宝支付接口

1、介绍

支付宝国内乃至全球都是数一数二的大型的第三方支付平台。其提供了一些接口给用户/商家进行收款。

官网:http://b.alipay.com(建议使用IE打开)

接口类型的介绍:

淘宝模式的担保交易接口:付款-发货-收货-确认-支付宝打款【从2016年8月份不对外开放申请】

即时到帐接口:付款之后立即进入卖家账户-发货-确认

以后一般遇到的支付接口都是即时到帐的接口。

2、签约流程(了解)

①打开http://b.alipay.com网站

②选择对应的接口应用平台类型

③签约准备页面,阅读下申请条件或者使用场景(申请须知)

④资料确认准备齐全就可以点击右下角的立即接入

⑤提交资料,如果之前没有提交接口申请,则会在红色矩形位置显示“补充资料”,点击之后补全资料即可,审核时间一个工作日

⑥申请完成通过之后,会收到来自支付宝的短信和邮件,然后可以登录支付宝查看接口信息

点击“查看pid和key”按钮

支付宝接口信息

合作伙伴身份:2088102642669732

合作伙伴密钥:vas73sltf21q19wv7yltvtsa2612liix

3、SDK的下载与配置

SDK:软件开发工具包(Software Development Kit),通俗的来讲SDK其实就是一个demo案例。

①在帮助中心下载sdk

②解压sdk压缩包

根据密钥的类型选择对应的签名版本的SDK

根据网站自身的编码格式选择对应的版本,如果不一致,则后期会报错:

最终的结构:

Img目录:图片存储的目录;

Lib目录:存储的是接口需要的类和方法的封装文件;

Alipay.confg.php:接口配置文件;

Alipayapi.php:接口请求发送文件;

Cacert.pem:RSA签名版本的支付宝公钥证书;

Index.php:demo的入口文件;

Log.txt:日志输出文件(不能删除);

Notify_url.php:通知页面(支付宝→服务器发送的异步post请求,用于告知支付结果);

Return_url.php:通知页面(支付成功之后的跳转页面,get请求,虽然也包含了请求结果,但是不可信);

③由于都是php文件,则需要将其放到站点中才能看到效果,因此复制到站点中

④通过浏览器访问

⑤配置接口

修改配置文件:alipay.confg.php

其中要求notify_url地址必须是外网可以访问的

稍后会把代码传到线上服务器,修改notify_url.php中的测试代码,将结果打印输出到log.txt中

如果后期需要修改数据库中的订单状态也可以在notify_url中进行修改。

附异步请求返回的数据:

{

“discount”: “0.00”,

“payment_type”: “1”,

“subject”: “test商品123”,

“trade_no”: “2017052321001004890265177366”,

“buyer_email”: “578931944@qq.com”,

“gmt_create”: “2017-05-23 11:01:42”,

“notify_type”: “trade_status_sync”,

“quantity”: “1”,

“out_trade_no”: “test20170523110102”,

“seller_id”: “2088102642669732”,

“notify_time”: “2017-05-23 11:01:47”,

“body”: “到账测试”,

“trade_status”: “TRADE_SUCCESS”,

“is_total_fee_adjust”: “N”,

“total_fee”: “0.01”,

“gmt_payment”: “2017-05-23 11:01:47”,

“seller_email”: “cherish@cherish.pw”,

“price”: “0.01”,

“buyer_id”: “2088902332344899”,

“notify_id”: “1d92986cb058bb2bc38d3a557098eadmva”,

“use_coupon”: “N”,

“sign_type”: “MD5”,

“sign”: “0ca577f57e1fcd3afc4f6eb73c3ad350”

}

支付宝交易流程图:

4、支付接口集成

①分析demo入口文件index.php

其中只是收集到数据之后以post方式进行提交,提交给alipayapi.php页面

在当前的项目中如果收集到对应的数据然后提交给alipayapi.php的话则可以实现支付

解决方法:

①curl方法 【不建议使用curl,不能跳转】;

②PRG模式 全称:Post-Redirect-Get

扩展:PRG模式的使用场景

A,支付的时候会使用;

B,防止表单重复提交;

②使用PRG模式执行支付

PRG其实就是html+js代码实现的

 

简化后的html的form代码

<form action=’alipayapi.php’ name=’alipayform’ method=’post’ >

<input type=’text’ name=’WIDout_trade_no’>

<input type=’text’ name=’WIDsubject’ value=’test商品123′>

<input type=’text’ name=’WIDtotal_fee’ value=’0.01′>

<input type=’text’ name=’WIDbody’ value=’即时到账测试’>

</form>

为了保证字符集的统一,建议在入口文件中添加字符集的声明:

③测试支付

在支付成功之后需要在异步通知页面中根据post中的订单编号查询到对应的记录然后进行订单状态的修改。

發表回覆

你的電郵地址並不會被公開。 必要欄位標記為 *