支付宝登录如何把二维码内嵌到自己的页面中?

支付宝登录如何把二维码内嵌到自己的页面中?

问题描述:

如题。官方文档上面只有跳转支付宝同意登录页面的URL拼接。请问如何把登录二维码内嵌到自己的页面中?

你这个过程其实类似微信认证的服务号扫码登录差不多,二维码内容可以为支付宝授权的网址,回调网页增加一个GUID参数,因为到时用户信息要存储到application这种全局变量中完成信息共享(java不清楚是否有application,不过应该存在所有用户都可以共享的对象,注意是所有用户访问到,不是session,session只有当前访问用户访问到,和下面说的2个步骤,是2个不同的session)。

当用户扫二维码后,会出现2个步骤
1)手机会跳转到授权页面,授权后跳转到你的回调网址,回调页面获取guid及支付宝相关的用户信息(如user_id,支付宝唯一id,类似微信公众号的openid),判断user_id是否注册过,未注册注册或者绑定账号什么的(操作完毕后和注册过的步骤一样通过guid设置用户身份信息),如果注册过则读取用户信息通过guid值设置共享信息为此用户的相关身份信息。
2)扫码后防止二维码的页面setInterval启动计时器+ajax轮训服务器,附带上guid值轮训服务器的共享信息,如果存在此guid的值,则设置用户身份,返回一个标记,如1表示扫码成功,然后轮训结果为1则跳转到用户后台或者上次访问页面即可。

有帮助麻烦点个采纳【本回答右上角】,谢谢~~

string guid=...//java生成guid的代码;
        string callback = "http://你的域名域名/oauth/alipay.ashx?guid=xxxxxxxx&op=getalipayinfo";//设置guid,op参数可以省略,不过建议加上,方便区分操作。如果省略需要判断guid不为空执行获取支付宝信息操作,否则跳转支付宝授权网址
        string url = "https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=" + AlipayConfig.app_id + "&scope=auth_user&redirect_uri=" + context.Server.UrlEncode(callback);//这个就是二维码存储的地址

这个无法做到,支付流程都是在支付宝完成的,除非在你网页里面用ifram嵌套进去吧

首先,你要了解支付宝二维码的生成规则,本身是一个加密生成的过程,另外页面有心跳间隔去服务端验证是否有人扫码,这个过程本身也是加密验证的。然后手机扫码过程中一般会校验生成的码来源,这个在生码过程中都有各种规则。回调的地址也是白名单设置的