找回密码
 立即注册
搜索

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

4
回复
8820
查看
  [复制链接]

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

主题

3

帖子

15

积分

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

使用道具 举报

11

主题

31

帖子

210

积分

QQ
2019-8-30 11:57:44 显示全部楼层
报 wxaccount not available. 咋解决
回复

使用道具 举报

0

主题

56

帖子

280

积分

2019-12-6 15:27:06 显示全部楼层
本帖最后由 码农编号007 于 2019-12-6 15:28 编辑 补充: 1.快应用开发工具现已支持keystore转pem证书 图片1.png 2.注意manifest中需要声明包名的接口,包名要和微信后台注册的包名一致 3.manifest里支付分享登陆接口,需要填sign的,这个签名填certificate.pem中的内容,是base64签名,填写到微信后台的事MD5签名 微信后台举例: 图片3.png 微信支付举例:

manifest文件

manifest文件
图片2.png
回复

使用道具 举报

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