url scheme的探究(转载)

无意间看到的一片文章,就是这个里边这个思路真是感叹,所谓的黑魔法都是看透了技术的本质!下面是连接https://www.jianshu.com/p/8930b4496023

就像在咱们iOS中要想唤起其他的app,是通过url scheme实现的比如微信的weixin://,所以各种需要唤起其他app的支付,分享的本质就是拼接出一个三方平台的app内定的url scheme,所以就像上边文章说的,生死看淡,不服就干!!!要什么SDK

//生成URLscheme
        NSString *str = [NSString stringWithFormat:@"weixin://app/%@/pay/?nonceStr=%@&package=Sign%%3DWXPay&partnerId=%@&prepayId=%@&timeStamp=%@&sign=%@&signType=SHA1",appid,nonceStr,partnerId,prepayId,[NSString stringWithFormat:@"%d",[timeStamp intValue] ],sign];
        
        //通过openURL的方法唤起支付界面
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];

还有就是他这个,抓微信url scheme的思路,一下点醒梦中人!!!还有就是微信他这url scheme 万一变了,额~~

以下几个可以自测试试看:(微信可能换了url scheme或者加参数判断吧,也就第一个唤醒好使,)
weixin://
"weixin://dl/stickers"
"weixin://dl/games"
"weixin://dl/moments"
"weixin://dl/add"
"weixin://dl/shopping"
"weixin://dl/groupchat"
"weixin://dl/scan"
"weixin://dl/profile"
"weixin://dl/settings"
"weixin://dl/general"
"weixin://dl/help"
"weixin://dl/notifications"
"weixin://dl/terms"
"weixin://dl/chat"
"weixin://dl/features"
"weixin://dl/clear"
"weixin://dl/feedback"
"weixin://dl/faq"
"weixin://dl/recommendation"
"weixin://dl/groups"
"weixin://dl/tags"
"weixin://dl/officialaccounts"
"weixin://dl/posts"
"weixin://dl/favorites"
"weixin://dl/privacy"
"weixin://dl/security"
"weixin://dl/wallet"
"weixin://dl/businessPay"
"weixin://dl/businessPay/"
"weixin://dl/wechatout"
"weixin://dl/protection"
"weixin://dl/card"
"weixin://dl/about"
"weixin://dl/blacklist"
"weixin://dl/textsize"
"weixin://dl/sight"
"weixin://dl/languages"
"weixin://dl/chathistory"
"weixin://dl/bindqq"
"weixin://dl/bindmobile"
"weixin://dl/bindemail"
"weixin://dl/securityassistant"
"weixin://dl/broadcastmessage"
"weixin://dl/setname"
"weixin://dl/myQRcode"
"weixin://dl/myaddress"
"weixin://dl/hidemoments"
"weixin://dl/blockmoments"
"weixin://dl/stickersetting"
"weixin://dl/log"
"weixin://dl/wechatoutcoupon"
"weixin://dl/login/phone_view"
"weixin://dl/login/common_view"
"weixin://dl/businessPay"
"weixin://dl/businessTempSession/"
"weixin://dl/businessGame/detail/"
"weixin://dl/businessGame/detail"
"weixin://dl/businessGame/library/"
"weixin://dl/businessGame/library"
"weixin://dl/businessWebview/link/"
"weixin://dl/businessWebview/link"
"weixin://dl/business/tempsession/"
"weixin://dl/businessTempSession/"
"weixin://dl/business"
"weixin://dl/wechatout"
"weixin://dl/update_newest_version"
"weixin://dl/moments"
"weixin://dl/recommendation"

支付宝跳过开启动画打开扫码和付款码的 url scheme 分别是

alipayqr://platformapi/startapp?saId=10000007
alipayqr://platformapi/startapp?saId=20000056

//支付宝的详细应用
https://www.cnblogs.com/si812cn/p/8520335.html

以下转载,原文链接 :https://zhuanlan.zhihu.com/p/20615916?refer=cocoanotes
感谢作者分享~~~
在 Pin 的关于页面,有一个按钮,这个按钮点击之后可以跳到支付宝给我捐赠。

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

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

步骤有如下几步:

0x0 去 https://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 是扫码付款,这个现象和直接扫了第一步的二维码是一模一样的。

image

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

你可能感兴趣的:(url scheme的探究(转载))