1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 利用支付宝Cookie监听订单实现个人支付宝收款实时回调

利用支付宝Cookie监听订单实现个人支付宝收款实时回调

时间:2023-04-14 02:16:27

相关推荐

利用支付宝Cookie监听订单实现个人支付宝收款实时回调

在网上、社区里搜了一下好像没找到什么文章详细分享这种方式的,这些天我花了些时间研究整理了一下,发现这种方式能很好地实现个人支付宝收款实时回调,于是在这里分享一下。

流程很简单,主要就是3步:

1.登录网页支付宝,获取cookie

2.抓包分析支付宝的交易订单接口

3.模拟测试订单接口请求,投入使用

1.先去支付宝官网登录,扫码登录或账密登录都阔以。

登录成功后,直接F12(打开开发者工具),在console中输入document.cookie并回车,即可获取到你登录后的cookie。

2.找一找支付宝二维码收款的交易订单记录在哪,简单浏览后马上发现是在“对账中心”-“业务查询”-“交易订单”菜单下。

再次F12打开开发者工具,进入network,再次点击订单页面的“查询”,抓取请求的接口。

简单分析一下接口,发现需要用到的必须用到的ctoken(拼接在url后面),billUserId(传参),这俩都能从cookie中提取到,所以木有问题~而其他的一些接口参数,就照着他的方式传即可。

3.然后可以直接到Postman等工具里模拟请求测试一下,除了上面提到那些参数,发现header头除了cookie以外,referer这个值也是必须的。再回到浏览器把这个值复制过来再次测试请求,成功!

最后就直接编写一些简单的代码方法,在用到的时候去调用请求接口就好了,PHP参考代码如下:

<?php/*** User: gump994* Date: -08-08* Time: 18:08* Description: 利用网页版支付宝Cookie监听交易订单数据,实现个人支付宝收款试试回调** 【GOGO支付】已经完整实现该模式云端监听收款,很稳定,效率很高,欢迎测试体验~* 官网地址: ** 微信:gump994 邮箱:gogozhifu@**/goZfb('your-cookie', 'your-token', 'your-userId');//调用支付宝交易订单列表接口function goZfb($cookie, $token, $userId){$url = "/enterprise/tradeListQuery.json?ctoken=" . $token;$header = ['referer: /enterprise/bizTradeOrder.htm','origin: ','user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36'];$data = ['billUserId' => $userId,'pageNum' => 1,'pageSize' => 20,'startTime' => date('Y-m-d') . ' 00:00:00','endTime' => date("Y-m-d", strtotime("+1 day")) . ' 00:00:00','status' => 'ALL','queryEntrance' => 1,'entityFilterType' => 1,'sortTarget' => 'gmtCreate','activeTargetSearchItem' => 'tradeNo','tradeFrom' => 'ALL','sortType' => 0,'_input_charset' => 'gbk'];$res = go_curl($url, $data, $header, $cookie);print_r($res);}//发送Http请求function go_curl($url, $post = 0, $header = 0, $cookie = 0, $nobaody = 0){$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_TIMEOUT, 15);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);if ($post) {curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $post);}if ($header) {curl_setopt($ch, CURLOPT_HTTPHEADER, $header);}if ($cookie) {curl_setopt($ch, CURLOPT_COOKIE, $cookie);}if ($nobaody) {curl_setopt($ch, CURLOPT_NOBODY, 1);}curl_setopt($ch, CURLOPT_TIMEOUT, 60);curl_setopt($ch, CURLOPT_ENCODING, 'gzip');curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$ret = curl_exec($ch);curl_close($ch);return $ret;}?>

相应代码gitee地址/niaogang/gogozhifu-web-zfb

最后还要补充说明一下,如果用于实现个人收款实时回调,那么要考虑一下接口重复请求的频率、交易金额匹配、保持cookie有效等问题,这些问题解决方法也很多,多思考都是可以解决的。目前在GOGO支付里已经完整的把这些流程弄好了,只需要填入一个cookie,支付宝云端监听就会保持运行,你的个人支付宝就可以一直进行收款了。

有什么问题或想法欢迎交流讨论~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。