Pin捐赠功能的实现

2017 - 04 - 07

Posted by 钟颖Cyan

Pin 的关于页面,有一个按钮,这个按钮点击之后可以跳到支付宝给我捐赠。

已经好几个开发者问我这个效果是怎么做到的,所以在这里记录一下。

其实这个效果不需要任何支付宝的接口支持,所以也就找不到任何文档,当然这个事情和我在阿里工作也没有任何的关系,只是无意中发现的一个事情。

步骤有如下几步:

0x0https://fama.alipay.com/qrcode/qrcodelist.htm 生成一个收款用的二维码。

0x1 Decode 这个二维码,将会得到一个类似于 https://qr.alipay.com/abcdefg 链接。这个链接在 PC 端访问,会跳到支付宝首页,但是在 iPhone 上面访问,这个网页会做一次支付宝 app 的 scheme 跳转。这个过程已经可以接受了,在 app 内 openURL,会先跳到 Safari,然后 Safari 提示你去支付宝付款。

0x2 不过这个过程还可以优化,因为支付宝做了一个功能,这个功能就是把 URL Scheme 跳转和扫码的链接解析合并到了一起,所以我们可以把链接跳转的结果直接填在 URL Scheme 里面。

0x3 只要观察过支付宝扫码的解析结果,就会发现一些端倪。于是我们会生成这样一个 URL Scheme:alipayqr://platformapi/startapp?saId=10000007&qrcode=https%3A%2F%2Fqr.alipay.com%2Fabcdefg,其中 qrcode 就是等于第二步里面得到的 URL 做一次 URL Encode 的结果。

0x4 最后,在 app 的代码里面,只要做一次 openURL,就会跳转到支付宝里面,直接打开第一步里面那个付款对象,并且 title 是扫码付款,这个现象和直接扫了第一步的二维码是一模一样的。

希望各位个人开发者用这个方法接受到更多的捐赠。

Table of Contents