V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
oldcai
V2EX  ›  程序员

有比微信公众平台技术文档更 ZZ 的文档吗?

  •  2
     
  •   oldcai ·
    oldcai · 2017-12-14 12:54:10 +08:00 · 10315 次点击
    这是一个创建于 2566 天前的主题,其中的信息可能已经有所发展或是发生改变。
    每次对接微信的接口,都屁股疼

    比如这个:
    https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_4
    获取 openid
    里面指向的 4 条连接都没讲如何获取 openid

    JSAPI 支付必须提交 openid
    登录的"网站应用"没有支付权限的申请
    可申请支付商号的公众号又没有登录 scope 的权限

    感觉他们设计的是一个密室跳脱解密的扯淡游戏
    第 1 条附言  ·  2017-12-14 18:50:55 +08:00
    感谢大家的反馈。

    似乎对于国内一流公司的文档普遍比国外糟糕这件事,
    大家不仅情绪稳定,并表现出了我们民族强大的包容性,选择了,原谅他(们)。

    那么大家有没有接口文档的自己的经验,甚至最佳实践可以分享呢?
    这样可以在我们自己写文档的时候尽量不要做 asshole。

    我先抛个砖:
    我目前用 swagger 描述 API+gollum 写简单叙述
    73 条回复    2017-12-15 20:17:26 +08:00
    azh7138m
        1
    azh7138m  
       2017-12-14 12:59:50 +08:00
    比如七牛上传的文档?

    https://developer.qiniu.com/kodo/manual/1272/form-upload

    支持 https 的域名是 up.qbox.me ,还是我从他们 github 里面翻出来的:)
    weixiangzhe
        2
    weixiangzhe  
       2017-12-14 13:07:05 +08:00 via iPhone
    同意
    oldcai
        3
    oldcai  
    OP
       2017-12-14 13:09:49 +08:00
    @azh7138m 真的吗,来来,如果你经历坎坷,从翔一样的文档中,发现这样一个秘密:

    JSAPI 支付需要 openid
    同一个用户每个 app id 对应的 openid 不同
    登录的 app 没有支付权限
    支付的 app 没有登录权限
    支付 app 只能绑定微信公号
    登陆 app 没有开通支付权限的选项

    会不会想找包方便面捏碎
    wibile
        4
    wibile  
       2017-12-14 13:10:24 +08:00   ❤️ 3
    有,阿里的文档更烂!阿里云文档乱成一团,要找半天。淘宝开放平台的文档跟 shit 一样。。。
    BOYPT
        5
    BOYPT  
       2017-12-14 13:10:50 +08:00
    只是链接失效了,你翻翻菜单里面章节还是有的。
    klgd
        6
    klgd  
       2017-12-14 13:18:19 +08:00   ❤️ 1
    有,qq 的文档
    qiayue
        7
    qiayue  
       2017-12-14 13:25:46 +08:00
    建议搞清楚整个登录流程,不要着急,气急败坏解决不了任何问题

    文档中有些链接变化了,所以点击后跳回了文档首页,建议直接在文档做成菜单栏查找资料

    如果你要用微信服务号来做微信支付,那么两种方式可以获取 openid:
    1、用户关注服务号,或者发消息给服务号,微信服务器调用你的服务端接口,都会携带 FromUserName,就是发送放的 openid,见 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140453
    2、使用网页授权接口,用户同意之后可以得到 openid,见 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

    再然后用 jssdk 的 wx.chooseWXPay 就可以发起一个支付请求,在发起支付请求之前,你需要 ajax 到自己服务器,通过统一下单接口向微信服务器下单,得到 prepay_id
    https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1

    我反而觉得微信文档写得很详细,所以想要的东西都能够找到,当然前提是你需要了解业务流程,很多文档都化了业务流程时序图
    qiayue
        8
    qiayue  
       2017-12-14 13:27:36 +08:00
    不同的 app 通过在 open.wx.qq.com 绑定到同一个开发者账号,可以得到 unionid 来确定同一个用户
    qiayue
        9
    qiayue  
       2017-12-14 13:28:33 +08:00
    liuzhedash
        10
    liuzhedash  
       2017-12-14 13:33:58 +08:00
    如果之前对接过微信的接口,openid 的机制应该不难理解。jsapi 调起微信支付的场景里,通常是网页授权获取用户信息时拿到 openid 的,参考文档:
    https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842
    Qlccks2
        11
    Qlccks2  
       2017-12-14 13:35:00 +08:00
    顺丰
    liuzhedash
        12
    liuzhedash  
       2017-12-14 13:36:48 +08:00
    我认为微信的文档做得还是不错的,比阿里的要强不少。任何文档都不可能正好按照你的疑问来组织内容,高效地阅读理解文档是值得练习的能力。
    qiayue
        13
    qiayue  
       2017-12-14 13:37:52 +08:00   ❤️ 2
    微信支付方式有:
    刷卡支付、公众号支付、扫码支付、APP 支付、H5 支付、小程序支付

    你可能能用的到的是公众号支付和 APP 支付
    其中公众号支付必须是服务号,服务号只要认证了就有网页授权登录权限,开通微信支付就可以有支付权限
    APP 支付在微信开放平台创建移动应用之后,可以申请开通支付能力

    你的问题在于读的太少而气得太多
    oldcai
        14
    oldcai  
    OP
       2017-12-14 13:39:57 +08:00
    @qiayue unionid 实现登录的时候已经做过,不然无法合并 app 登录和 web 登录的用户。
    但是 unionid 并不能用于支付。
    openid 不需要用户同意授权才能获取,但是如果是这样,我总觉得有更好的办法获取到,而不需要跳授权的流程。
    目前方法是找到了,以 snsapi_base 为 scope 发起的网页授权,但是就是想吐个槽,不然无法好好过完一天。
    ihainan
        15
    ihainan  
       2017-12-14 13:41:09 +08:00
    之前看 Slack Bot 的文档,感觉写得真是好呀……
    qiayue
        16
    qiayue  
       2017-12-14 13:41:45 +08:00
    是的 snsapi_base 不需要用户同意
    oldcai
        17
    oldcai  
    OP
       2017-12-14 13:44:28 +08:00
    @ihainan
    @liuzhedash
    之前看 slack,Twitter,Google,Facebook 文档。。。第二语言都挑不出毛病啊
    ajiangnet
        18
    ajiangnet  
       2017-12-14 13:45:43 +08:00 via Android
    当初就是看过文档之后放弃玩公众号的想法的,看了第一感觉就是复杂。
    oldcai
        19
    oldcai  
    OP
       2017-12-14 13:50:59 +08:00
    @liuzhedash
    @qiayue
    你们应该都是极好的人,从来不挑别人毛病。
    吐槽其实也是想推动一下国内,至少是微信的接口设计、文档描述,希望能梳理清楚一点,至少不要那么让人沮丧。
    当然,他们不愁没人来集成他们的 API,所以也没动力优化吧。
    lion9527
        20
    lion9527  
       2017-12-14 13:52:23 +08:00
    要是看过新浪微博的文档,你会发现腾讯的文档舒服太多……
    oswuhan
        21
    oswuhan  
       2017-12-14 13:53:56 +08:00
    正因为这个原因,外加个人强迫症比较重,至今没做过和微信平台有关的项目
    DOLLOR
        22
    DOLLOR  
       2017-12-14 14:17:38 +08:00
    获取 openid 就是微信授权登录的过程,按照 OAuth2.0 标准,无非就是先获取 code,再用 code 换取 openid。
    Norie
        23
    Norie  
       2017-12-14 14:19:17 +08:00
    开通 SVIP 有助于快速理解
    janxin
        24
    janxin  
       2017-12-14 14:21:38 +08:00
    支付宝的文档。。。
    sensui7
        25
    sensui7  
       2017-12-14 14:21:42 +08:00
    @Norie 回复真配合头像。
    azh7138m
        26
    azh7138m  
       2017-12-14 14:25:48 +08:00
    @oldcai
    同一个用户每个 app id 对应的 openid 不同
    这个设计没问题,为了用户隐私,讲道理我没觉得有啥不妥,
    jssdk 的文档也是烂的不行,看半天不知道它要我干啥,感觉支支吾吾的
    swordne
        27
    swordne  
       2017-12-14 14:25:56 +08:00
    有,ThinkPHP 的文档,尤其 5.0 以上的
    o_O
    crystom
        28
    crystom  
       2017-12-14 14:26:44 +08:00
    诶,刚做完一个项目,api 接口就改了,从 snsapi_base 中无法获取 unionid 了
    RihcardLu
        29
    RihcardLu  
       2017-12-14 14:31:08 +08:00
    lz 别急,我也才做完微信支付,ls 说得很多了,我再补充一点。
    只获取 openid 是不需要用户主动授权的,也不需要关注公众号,静默授权即可,构造请求 URL 时 scope 设置为 scope_base 即可。
    noea
        30
    noea  
       2017-12-14 15:06:52 +08:00
    如果你是在用 PHP 写微信开发的话,你或许需要这个 Composer 包:
    https://www.easywechat.com
    lxrmido
        31
    lxrmido  
       2017-12-14 16:21:27 +08:00
    有没有谁家的文档是比较好的……
    xomix
        32
    xomix  
       2017-12-14 16:29:10 +08:00
    @lxrmido msdn 说第二我不觉得有谁去争第一的
    bxb100
        33
    bxb100  
       2017-12-14 16:30:59 +08:00 via Android
    @xomix google api 也不错
    raighne
        34
    raighne  
       2017-12-14 16:31:19 +08:00
    微信,容云的文档都很垃圾
    shiny
        35
    shiny  
       2017-12-14 16:33:34 +08:00
    阿里的已经改进了很多,然鹅我觉得体验最爽的还是 Facebook 的。
    juneszh
        36
    juneszh  
       2017-12-14 16:35:18 +08:00
    朋友 你一定没用过 SWOOLE
    terence4444
        37
    terence4444  
       2017-12-14 16:36:53 +08:00 via iPhone
    楼主看过新浪微博的文档吗?
    qinxi
        38
    qinxi  
       2017-12-14 17:23:05 +08:00
    @terence4444 hhhhh 同想吐槽微博 还有 QQ 的

    微信的我觉得做的还可以,可能只是你没搞懂登录流程而已
    qinxi
        39
    qinxi  
       2017-12-14 17:23:41 +08:00
    qiayue
        40
    qiayue  
       2017-12-14 17:28:57 +08:00
    微博的文档也很好用啊
    GreatHumorist
        41
    GreatHumorist  
       2017-12-14 17:33:12 +08:00 via iPhone
    怕是没有看过百度的
    windy0925
        42
    windy0925  
       2017-12-14 17:38:30 +08:00
    文档就不说了,用 qq 的 code 换 token 接口,每天都给我超时(3s)
    zjddp
        43
    zjddp  
       2017-12-14 17:47:56 +08:00
    咩哈哈哈今天刚写完公众号支付的东西,基本上能踩的坑我都踩一边了。

    讲真,这套文档得耐心看个两三遍再动手写
    lhx2008
        44
    lhx2008  
       2017-12-14 17:49:41 +08:00 via Android
    微信的已经挺人性化了,相比其他文档
    uleh
        45
    uleh  
       2017-12-14 19:08:12 +08:00
    客观的说,国内服务的文档普遍写的烂。
    “微信的文档比其他家写的好”不等于“微信的文档写的好”。
    你能找得到想要的内容也不代表“微信的文档写的好”,而是你检索信息的能力强。

    微信、支付宝这些都是业务太牛逼,应用开发要求着接入他们,
    所以他们其实并不在乎你看不看得懂他的文档。
    我曾经有一次照着支付宝的接入文档调试(用的测试 API ),有个地方始终过不去。
    不得已问了客服,结果客服给我一个 qq。我加了那哥们的 qq,骚扰了他 3 天,
    他告诉我里面密码还是啥的,必须填一个 8888。。。

    相反,看国外的开源软件也好服务也好,基本都有如下 3 个特点。
    1. 条理清楚
    2. 该有的信息都有,照着 sample 写就能跑起来
    3. 不会有链接失效或者 API 已经过时之类
    o0
        46
    o0  
       2017-12-14 22:33:16 +08:00 via iPhone
    美团云?
    carlclone
        47
    carlclone  
       2017-12-15 00:02:41 +08:00 via Android
    别人踩过的坑你还去踩,这就有点死脑筋了
    codeeer
        48
    codeeer  
       2017-12-15 00:55:22 +08:00 via iPhone
    真不是捧 aws,如果国内开发文档写的有 aws 文档一半好就天下太平了!!
    ooops
        49
    ooops  
       2017-12-15 03:20:08 +08:00 via iPhone
    我也吐槽下微信的文档。前几天接分享,要填 bundleid,一个测试一个正式的,我们的 app 正好有两个渠道,但不知道哪个填哪里还是再申请一个应用,测试的能不能发到线上用等等。搜索了整个文档都没有说这点,按理说我接的这么晚坑应该早都踩完了相关信息写入文档才对,真是很愁人,然后发了 2 封邮件询问,第一个没有描述清楚,结果邮件只回了第一封。
    还有一个就是设计上的问题,安卓 debug 和 release 包对应不同的签名,但是申请页面只能填一个,感觉好蠢。
    liuzuo
        50
    liuzuo  
       2017-12-15 06:48:40 +08:00
    其实有挺多开源的文档也写的不好,我感觉 mongo 的文档就不好。
    boyxupers
        51
    boyxupers  
       2017-12-15 08:37:04 +08:00 via iPhone   ❤️ 1
    接过支付宝的请举手
    cevincheung
        52
    cevincheung  
       2017-12-15 08:57:32 +08:00
    @azh7138m #1 upload.qiniu.com 支持 ssl 的啊
    m939594960
        53
    m939594960  
       2017-12-15 09:22:10 +08:00
    哈哈 你只吐槽他不详细?你知道他手册上有多少错误么?
    https://www.v2ex.com/t/412544#reply1
    fakeJas0n
        54
    fakeJas0n  
       2017-12-15 09:45:27 +08:00
    岂止是 ZZ,还能带进沟里
    raptor
        55
    raptor  
       2017-12-15 09:58:05 +08:00
    @wibile +10086,跟阿里的文档相比,微信已经算业界良心了,但是跟国外的相比,国内基本上都屎
    falcon05
        56
    falcon05  
       2017-12-15 10:18:24 +08:00 via iPhone
    别吹国外的了,facebook 的文档能把人绕晕
    liuzhedash
        57
    liuzhedash  
       2017-12-15 10:28:28 +08:00
    成吐槽大会了,接过淘宝客的请举手,今天让阿里百川教教大家怎么写文档
    Enochyun
        58
    Enochyun  
       2017-12-15 10:46:11 +08:00
    阿里云,think PHP、微信开放平台、微博开放平台、七牛云、Xcode 文档、都去试试吧。
    slgz
        59
    slgz  
       2017-12-15 10:47:52 +08:00
    有啊,七牛云的文档
    bsmh
        60
    bsmh  
       2017-12-15 11:31:05 +08:00 via Android
    阿里云文档 shit 一样+1,今天凌晨看文档,看的一肚子火。
    JRay
        61
    JRay  
       2017-12-15 12:19:43 +08:00
    @oldcai 好像这些坑我都踩过。。。
    deadEgg
        62
    deadEgg  
       2017-12-15 13:12:16 +08:00
    各位老哥一定没有接过私有商户的第三方支付渠道。

    抱歉,拉个小群,然后口述文档。
    dartabe
        63
    dartabe  
       2017-12-15 14:54:55 +08:00
    微博的文档让人感觉他很纠结 不知道到底要不要做开放平台
    Lotussha
        64
    Lotussha  
       2017-12-15 15:50:37 +08:00
    @deadEgg 我还真接过。。一把辛酸泪。 因为项目需要,一段时间内对接各种什么奇奇怪怪的支付渠道,那些对接人又一个比一个拽。唉
    withrock
        65
    withrock  
       2017-12-15 16:07:37 +08:00
    我感觉国内文档写的比较好的要属 leancloud 了,甩 wechat-pay 几条街。
    他们有专门的一篇文章来讲 [文案风格] ,我了个去,简直太苛刻了,堪比大学生活写答辩论文啊。
    https://open.leancloud.cn/copywriting-style-guide.html
    deadEgg
        66
    deadEgg  
       2017-12-15 16:31:53 +08:00
    @Lotussha

    哎,要接这些渠道基本都不是啥光彩的活。

    这些渠道的人素质都不咋高,和他们沟通真的是困难。一把辛酸泪
    zhpech
        67
    zhpech  
       2017-12-15 16:45:27 +08:00
    我还发现了微信小程序里的错别字,发现好像没啥反馈渠道,就算了……
    notreami
        68
    notreami  
       2017-12-15 16:51:59 +08:00
    阿里 表示,就这样,我也要抄袭这个文档。。。。
    viator42
        69
    viator42  
       2017-12-15 16:58:14 +08:00
    就不靠谱程度来说,谁也比不上银联的
    JRay
        70
    JRay  
       2017-12-15 17:45:21 +08:00
    最关键的MD还没有人工客服。。。支付宝好歹还有个人工客服,搞不懂了可以问一问
    kmahyyg
        71
    kmahyyg  
       2017-12-15 17:55:16 +08:00 via Android
    萌新看了一遍微信小程序的文档………只有 MMP ……倒是各国外大厂二次开发的 sdk,不仅文档详细还有例程。如果照文档写哪里写错了还可以看看例程………

    淘宝开放平台+ 1 ………简直了………
    rswl
        72
    rswl  
       2017-12-15 17:56:29 +08:00
    当年弄也是撞了一头包
    danielmiao
        73
    danielmiao  
       2017-12-15 20:17:26 +08:00
    那。。。产品的文档怎么算
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1109 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 23:06 · PVG 07:06 · LAX 15:06 · JFK 18:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.