打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Payment:支付宝即时到账接口接入教程
记住,如果觉得文档写得不清楚,一定要告诉我。励志写好文档为大家服务!
Payment 3.0 支付宝的配置设置文档请 点击这里
项目GitHub地址:https://github.com/helei112g/payment
支付宝从新版本开始,提供了沙箱方式,方便进行调试。但是,即时到账支付宝没有提供沙箱模式。因此大家在使用过程中,注意设置配置。
我在项目中提供的初始配置也不能用于测试 即时到账接口。
即时到账属于老版本接口。不支持 RSA2 的签名方式,请设置为 RSA 签名方式。
支付宝的支付种类比较多。先从即时到账开始吧。
即时到账 主要应用于网站支付。当前也可使用支付宝提供的当面付–扫码支付来完成网站支付的业务。
即时到账接口属于支付宝老版本接口,当前 Payment 依然将其进行了保留。后期会跟随支付宝公告进行调整。
即时到账的权限需要在支付宝商家平台进行签约。
签约地址: https://b.alipay.com/order/productDetail.htm?productId=2015110218012942
即时到账签约后,默认开通以下两个接口的权限:
即时到账交易接口(create_direct_pay_by_user)
即时到账批量退款有密接口(refund_fastpay_by_platform_pwd)
但是 Payment3.x 并未接入 即时到账批量退款有密接口。大家可以通过 新版退款接口发起退款操作。
退款操作文档,可点击这里(TODO)
先上 即时到账发起支付 需要的参数列表
参数类型是否必须说明
bodyboolean是商品描述
subjectstring是商品名称,该参数最长为128个汉字
order_nostring是商户网站唯一订单号
timeout_expressstring是设置未付款交易的超时时间,一旦超时,该笔交易就会自动被关闭。
amountfloat是该笔订单的资金总额,单位为RMB-Yuan
return_paramstring是公用回传参数
qr_modstring否扫码支付方式
paymethodstring否默认支付方式
goods_typestring否商品主类型:0—虚拟类商品,1—实物类商品 默认为1
body 主要是对商品的描述,根据自己的业务写就好,不过不要用一些非常特殊的字符,支付宝可能会进行一些处理,导致你的结果与预期不一样
subject 可以写一下商品名称信息,主要是方便支付宝后台对账时查看
order_no 自己生成的订单号,每次下单的单号必须唯一。也就是说:同一个 order_no 他的其他下单数据不能发生变化,价格、名称等等。如果有变化,需要重新生成一个订单号。
timeout_express 订单过期时间,很简单,你希望在那一刻过期,就写那个点的时间戳。只会精确到分钟
amount 订单的金额,就是用户实际需要支付的金额。
return_param 希望支付宝异步通知时,原样返回给你的数据,同样注意避免一些特殊字符
qr_mod 这个参数可以不设置,如果没有特殊需求建议不设置,可设置:0 1 2 3 。效果可以自己看看
paymethod 当用户进行支付时,默认使用的付款方式。可选值:creditPay(信用支付)directPay(余额支付)
goods_type 用来区分购买的是实际商品还是虚拟商品,虚拟商品不需要物流发货,并且 虚拟类商品不支持使用花呗渠道
ok,以上就是需要发起支付的全部参数了。具体到 sdk 如何调用。看代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use Payment\Common\PayException;
use Payment\Client\Charge;
$config = require_once('./aliconfig.php');// 这里我假设大家都已经配置好了。不会的请去看配置设置文档
$channel = 'ali_web';
$payData = [
// 按照上表格中的信息配置一个数组
];
try {
$payUrl = Charge::run($channel, $config, $payData);
} catch (PayException $e) {
// 异常处理
exit;
}
echo htmlspecialchars($payUrl);
即时到账的代码就全部完成了。
$payUrl 是跳转向支付宝支付的一个连接。访问该连接即可跳转到支付宝。
接下来说下重点,请仔细往下看。
这里需要注意的一个点: htmlspecialchars() 函数在正式环境上,如果时进行url的跳转操作,请不要用它进行转义。我这里使用它是为了方便输出到页面上。因为 &not 是一个特殊符号,如果不转移,在网页上无法正常显示。
Payment 的设计思路是将配置文件与下单数据进行了分离。配置文件一般来讲是静态的,不会经常变更,并且大家都会用到。而下单的订单数据则不同,每一个支付接口需要的下单数据不同,并且根据业务,其对应的值也不稳定,常常发生变化。
其次,还有一个 $channel 参数,这个简单来讲,就是用来标记,你现在想要使用那种接口。可以取的参数如下:
channel可取值
名称含义
ali_web即时到账
ali_appapp支付(移动支付)
ali_wapH5支付(手机网站支付、wap支付)
ali_qr当面付中的扫码支付
ali_bar当面付中的条码支付
如果你有不清楚的或者愿意交流的地方,请联系我:
邮箱:dayugog@gmail.com
如果你觉得这个项目有帮助到你,请打赏我,让我有动力持续下去左边微信,右边支付宝
ps: 一般性的问题请大家可以先查资料,如果实在无法解决找我吧(不免费服务)。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
18.2.3 使用支付宝实现在线支付(2)
美国人眼中的京东、微信、支付宝原来是这样的,听傻一群人......
java 实现支付宝
odoo POS 集成微信支付和支付宝支付
php个人支付宝接口开发_php支付宝接口教程_php支付宝接口实例
餐饮英语 | 结账送客
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服