V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
thundernet8
V2EX  ›  Node.js

NodeJS 版本的支付宝免签接口实现脚本

  •  1
     
  •   thundernet8 · 2017-02-09 16:17:57 +08:00 · 6914 次点击
    这是一个创建于 2843 天前的主题,其中的信息可能已经有所发展或是发生改变。

    已在个人博客中使用,项目地址 https://github.com/thundernet8/AlipayOrdersSupervisor

    支付宝免签约支付接口实现脚本 - NodeJS 版本

    功能介绍

    通过 NodeJS 爬取个人支付宝交易订单列表,分析订单中的备注,然后将订单数据推送至指定服务器,实现支付宝交易接口

    自带了简单的日志和邮件通知功能,对系统异常及时报告以及记录

    如何使用

      1. 请配置config.js中的参数,如邮件 SMTP ,推送服务器地址,以及pushStateSecretalipayCookies等。

    pushStateSecret用于数据的加盐保证安全以及验证推送来源的合法性

    pushAppIdpushAppKey暂时无用

    alipayCookies必须填写,这是为了爬取订单时保证登录状态

      1. 安装必要的 npm 包
    npm install
    
      1. 使用forever循环运行脚本
    forever start index.js
    

    脚本会每分钟爬取一次订单列表

      1. 服务端处理

    请参考脚本中利用pushStateSecret生成签名的方法,验证数据合法性后进行业务处理

    15 条回复    2019-09-04 02:01:13 +08:00
    ixiaoyui
        1
    ixiaoyui  
       2017-02-09 16:25:45 +08:00
    厉害了
    ColinWei
        2
    ColinWei  
       2017-02-09 16:38:24 +08:00
    支付宝 Cookie 会过期失效
    thundernet8
        3
    thundernet8  
    OP
       2017-02-09 16:44:59 +08:00
    @ColinWei 测试过一个礼拜到半个月不等的时间会过期,时间不固定的
    ColinWei
        4
    ColinWei  
       2017-02-09 16:51:01 +08:00
    @thundernet8 确实是不固定,我用免签将近 2 年了,有时候一天掉两回。 多数是半夜掉。
    v1024
        5
    v1024  
       2017-02-09 16:51:25 +08:00
    为什么要解析 HTML 呢,没有找到 JSON 格式的 API ?
    thundernet8
        6
    thundernet8  
    OP
       2017-02-09 16:53:29 +08:00
    @v1024 这些都是不正规的用途,支付宝怎么会给 json 接口呢
    v1024
        7
    v1024  
       2017-02-09 17:57:48 +08:00 via iPhone
    反正都是爬,他们自己都不用 json 吗...
    thundernet8
        8
    thundernet8  
    OP
       2017-02-09 18:05:49 +08:00
    @v1024 他们真没用,页面是服务端渲染好直接返回 html 的,并不是 AJAX 获取 JSON 部分渲染的
    wvidc
        9
    wvidc  
       2017-02-11 16:38:49 +08:00
    貌似有个根据订单号查询单笔交易详情的接口来判断是否付款成功
    thundernet8
        10
    thundernet8  
    OP
       2017-02-11 18:57:05 +08:00
    @wvidc 这个意义不大,我扫描订单能够从交易结果字符串判断该笔转账是否成功,而另一方面这个脚本是依赖备注的,支付宝的流水号没有意义,而且不是使用支付宝即时到账等正式接口,也不会有商户订单号参数
    coderfox
        11
    coderfox  
       2017-02-28 09:44:24 +08:00 via Android
    谢谢您的作品!作品很棒!
    要是能实现支付宝自动登录就好了,如果您没有时间我可以在六月份以后看看能不能实现一下,给您推 PR 。
    另外,请您确认一下,这是您本人在销售软件吗: https://webapproach.net/apsv-tutorial.html
    thundernet8
        12
    thundernet8  
    OP
       2017-02-28 13:55:03 +08:00
    @coderfox 那只是我开发的 WordPress 主题搭配的一部分,一般买了主题就会需要那个,咨询或者教程都是要收点费用的
    raykwok
        13
    raykwok  
       2017-06-27 16:06:10 +08:00
    我试了几个支付宝,只有一个支付宝可以成功使用,不知道为何?
    taru
        14
    taru  
       2017-08-10 01:23:39 +08:00
    感谢分享思路
    keeper001
        15
    keeper001  
       2019-09-04 02:01:13 +08:00
    现在已经实现云挂机了:www.yunmianqian.com
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3991 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 10:13 · PVG 18:13 · LAX 02:13 · JFK 05:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.