V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jijifly
V2EX  ›  支付宝

这种支付宝免签是如何实现的?

  •  
  •   jijifly · 2018-01-05 00:10:24 +08:00 · 6685 次点击
    这是一个创建于 2501 天前的主题,其中的信息可能已经有所发展或是发生改变。

    翻了一会儿支付宝免签,然后发现这个人 https://www.v2ex.com/member/hlf2002 在好几个帖子下面都留了一个网址 https://www.paysapi.com ,就点进去看了一下。

    大致看了一下,实现原理其实也是个人对个人,然后后台挂着一个软件不断的去读取交易列表。但也发现了一些新鲜的玩意。

    1、在测试支付的时候,会生成一个付款的二维码,手机扫码会自动填好金额什么的,这个二维码是如何生成的呢?

    2、这种支付方式以前玩过,但有一个问题,假设我的商品都是固定金额,同时有几个用户购买,我如何判断是谁付款的?而在这个网站的 API 里,创建订单接口居然有参数 orderid ( https://www.paysapi.com/docpay ),它是如何判断是哪个用户支付的呢,是在创建的收款二维码里带有某个参数么?

    这 2 个疑问困扰了我好几天了,也搜了很久但没有找到合适的解决方案,还请各位大佬指教~

    第 1 条附言  ·  2018-01-05 11:40:57 +08:00
    确实一开始被这种支付方式惊艳到了,但其实原理没我们想的那么复杂~

    1、不同金额的二维码自己上传,如果没有找到对应金额的二维码,就要手动输入价格。 而网站的测试支付是因为事先已经上传了不同金额的二维码,所以测试的时候还以为收款二维码是自动生成的~

    2、实际上还是通过浮动价格,来区分同时支付的用户。而创建订单接口的参数 orderid,实际上只是为了 webhook 方便。今天在回复的提醒下,仔细看了一遍文档才发现“回调通知”这个接口,参数说明里写了是通过浮动金额区分用户的。

    此贴完结,感谢大家的热心回复,再次感谢 @GooMS @KevZhi 两位小伙伴的热心解答~
    17 条回复    2018-01-05 16:02:40 +08:00
    GooMS
        1
    GooMS  
       2018-01-05 00:23:59 +08:00 via Android
    收款二维码,不同的价格
    ihacku
        2
    ihacku  
       2018-01-05 00:24:39 +08:00 via iPhone
    看 faq 好像是要装个 app 的哟 https://www.paysapi.com/faqindex
    Annual
        3
    Annual  
       2018-01-05 04:19:32 +08:00 via Android
    我自己已经接入并且在使用了。而且我也在弄免签约支付
    KevZhi
        4
    KevZhi  
       2018-01-05 04:45:33 +08:00 via iPhone
    见过使用付款金额里的小数区分同时多位付款者的,文档里说了,看文档啊……
    带金额的收款码是长期可用的
    fadaixiaohai
        5
    fadaixiaohai  
       2018-01-05 09:51:07 +08:00
    有空可以研究一下,可以查一下推送通知内容。
    是不是 APP 一直在监听本地通知?
    可以查一下本地通知和付款二维码有没有什么相关性?
    期待大家分享。
    lifespy
        6
    lifespy  
       2018-01-05 10:56:20 +08:00
    期待大家分析实现原理
    jijifly
        7
    jijifly  
    OP
       2018-01-05 11:30:49 +08:00
    @GooMS
    @KevZhi

    今天深入使用了一下,发现确实要上传不同金额的二维码的;如果没有找到对应金额的二维码,就要手动输入价格。
    区分用户也确实是通过金额的浮动来区分的~

    是我看文档不仔细了,抱歉~
    Nobitasean
        8
    Nobitasean  
       2018-01-05 11:30:57 +08:00
    那个 alipay 二维码的算法是什么
    jijifly
        9
    jijifly  
    OP
       2018-01-05 11:31:44 +08:00
    @ihacku 这个是相当于后台挂着读取订单,读取到了就发送 webhook~ 个人对个人都是这样的,要么手机 APP,要么电脑软件~
    jijifly
        10
    jijifly  
    OP
       2018-01-05 11:34:23 +08:00
    @fadaixiaohai
    @lifespy

    楼上的几位都已经把原理说出来了,原来没我们想的那么复杂~
    1、不同金额的二维码自己上传,如果没有找到对应金额的二维码,就要手动输入价格。
    2、就是浮动价格来区分同时支付的用户~

    此贴完结,感谢大家的热心回复,再次感谢 @GooMS @KevZhi 两位小伙伴的热心解答~
    jijifly
        11
    jijifly  
    OP
       2018-01-05 11:35:03 +08:00
    @Nobitasean 并没有用算法,就是在个人中心手动传不同金额的二维码,如果没有找到对应金额的二维码,就要支付的用户手动输入价格。
    lifespy
        12
    lifespy  
       2018-01-05 11:40:08 +08:00
    @jijifly #11 手动输入金额的话,价格就没法浮动了呀
    fadaixiaohai
        13
    fadaixiaohai  
       2018-01-05 11:41:41 +08:00 via iPhone
    @jijifly 一块钱的商品。有的用户支付 1.99 ,有的支付 1.01 吗? 1 元秒杀,100 个人同时支付。
    jijifly
        14
    jijifly  
    OP
       2018-01-05 11:43:09 +08:00
    @lifespy 我个人理解,应该是把浮动价格也传上去~

    具体再深入的测试就没有做了,或者你也可以加这个网站的客服聊聊。因为我更多的是好奇这种支付原理,本身可能觉得这种个人支付的风险比较高,暂时还没打算接入~
    jijifly
        15
    jijifly  
    OP
       2018-01-05 11:44:30 +08:00
    @fadaixiaohai 是的

    [付款成功回调通知]接口有个“ realprice ”参数,参数说明是:“一定存在。表示用户实际支付的金额。一般会和 price 值一致,如果同时存在多个用户支付同一金额,就会和 price 存在一定差额,差额一般在 1-2 分钱上下,越多人同时付款,差额越大。”
    yongshou
        16
    yongshou  
       2018-01-05 11:45:36 +08:00 via Android
    金额要固定吧
    KevZhi
        17
    KevZhi  
       2018-01-05 16:02:40 +08:00
    @fadaixiaohai
    @jijifly
    一般见过用的都是灰产
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1052 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:14 · PVG 07:14 · LAX 15:14 · JFK 18:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.