请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
搜索

技术分享 微信登录 , 微信登陆 使用教程

3
回复
1468
查看
[复制链接]

12

主题

43

帖子

445

积分

 楼主| 2018-10-14 11:45:34 显示全部楼层 |阅读模式
本帖最后由 ZeroTheLost 于 2018-12-7 11:09 编辑

前言:之前之前的方式并不是最好的,像 https://bbs.quickapp.cn/forum.php?mod=viewthread&tid=817 这个帖子的用法随时可能失效,所以更新了一个版本

有不少开发者反馈不知道怎么用三方分享/登录的接口, 先在这个发个贴解决一下问题,后续应该会有专人更新文档。本帖以微信开放平台为例子,其他平台是大同小异的。

开始之前,需要大家安装两个命令行工具,一个是 openssl(mac和linux平台理论上已经自带了,windows的同学需要自己谷歌/百度 去下载),另外一个是JDK自带的keytools工具,也需要每个同学自行去下载安装。

目前有两种情形, 每个情形下的处理方式如下所述
1. 只有快应用的openssl 证书,没有APP的证书。此时需要把openssl 生成微信开放平台所需的MD5 签名, 步骤如下:
0)注册微信开放平台账号,新建移动应用,并且通过微信认证。(详情请看微信开放平台文档)如果没有证书,可以通过快应用开发工具生成证书,如下图;文档请见 https://www.quickapp.cn/docCenter/post/95


快应用开发工具上的证书生成

快应用开发工具上的证书生成


1)进入快应用程序的sign/release,并输入以下命令
  1. openssl x509 -noout -fingerprint -md5 -inform pem -in certificate.pem
复制代码


会得出类似下面的结果:
MD5 Fingerprint=89:46:3A:61:77:E4:66:75:B5:A7:5B:4E:36:E8:62:FA
然后只需要把=号后面的字符串取出来,并且把:号去掉,得出如下字符串
FCEE9EA7F8B8684BBB75EC3DFAB994F8
这个就是微信所需要的签名
2)在微信开放平台下把签名和包名填写上,如下图
WX20181017-230551@2x.png

3) 只需要在manifest文件里面把微信的appid参数填上
4) 根据文档使用微信登录接口,https://doc.quickapp.cn/features/service/wxaccount.html
5)如果开发的时候也要调试微信登录接口,请把sign/release的证书贴到sign/dev下


2. 已经有APP在使用微信开放平台的登录接口了,此时需要把安卓同学的keystore证书和密码得到,并将其转换成openssl的证书。具体过程如下
1)将快应用的包名(在manifest中)填写成微信开放平台上所写的包名
2)向安卓的同学要到微信开放平台上签名对应的keystore证书,我们暂且记为test.keystore,和密码,暂且记为123456。我们可以用以下命令,通过keystore证书生成生成pkcs12格式的密钥文件
  1. keytool -importkeystore -srckeystore test.keystore -destkeystore test.p12 -deststoretype PKCS12
复制代码
(注:此过程中需要输入密码:123456)
2)通过pksc12文件生成pem签名
  1. openssl pkcs12 -in test.p12 -nokeys -out certificate.pem
复制代码
(注:此过程中需要输入密码:123456)
3)生成pem私钥
  1. openssl pkcs12 -in test.p12 -nocerts -nodes -out private.pem
复制代码
(注:此过程中需要输入密码:123456)
4)把上面两步生成的private.pem和certificate.pem放到sign/release目录下
5)在manifest文件里面把微信的appid参数填上
6) 根据文档使用微信登录接口,https://doc.quickapp.cn/features/service/wxaccount.html
7)如果开发的时候也要调试微信登录接口,请把sign/release的证书贴到sign/dev下










回复

使用道具 举报

12

主题

43

帖子

445

积分

 楼主| 2018-10-14 14:29:24 显示全部楼层
本帖最后由 ZeroTheLost 于 2018-10-17 23:21 编辑

另外附上openssl的转成keystore证书的方式
1. openssl 转换成keystore
1)生成pkcs12格式的密钥文件:
  1. $ openssl pkcs12 -export -in certificate.pem -inkey private.pem -out sh.pk12 -name shkey
复制代码

(注:此过程中需要输入密码:123456)
2)生成keystore:
  1. $ keytool -importkeystore -deststorepass 123456 -destkeypass 123456 -destkeystore sh.keystore -srckeystore sh.pk12 -srcstoretype PKCS12 -srcstorepass 123456 -alias shkey
复制代码

回复

使用道具 举报

0

主题

2

帖子

10

积分

2018-10-18 15:12:10 显示全部楼层
赞,很好
回复

使用道具 举报

3

主题

7

帖子

50

积分

QQ
2019-8-30 11:57:44 显示全部楼层

报 wxaccount not available.  咋解决
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册