Java 生成IOS的钱包卡片
背景
最近项目中甲方提出将app的订单信息生成IOS的钱包卡片的需求。本以为这个生成钱包卡片的,只需要后台提供查询订单详情接口,IOS调接口拿到订单数据后,由IOS生成卡片(图片)。后面跟ios的同事研究一哈苹果官网关于卡片的说明(苹果卡片),这个需要后台生成一个.pkpass格式的文件,IOS拿到这个文件后,导入到苹果的钱包。
关于IOS钱包卡片生成方式说明
IOS钱包卡片生成,不依赖app的。添加卡片方式,大概有以上三种:
- 邮件
- web浏览器
- 客户端
注:这三种方式只是已经把卡片生成好,导入到IOS钱包的方式(IOS支持的三种方式)。通过问度娘,生成卡片(.pkpass文件)还是得交给后台,本文主要用Java 如何生成卡片。
生成.pkpass文件
Java来生成卡片,有大佬写了jar包,jar名jPasskit (GitHub地址),下载源码,可以看看其中代码,包括生成卡片的例子,例子写在项目大概位置如下截图:
需要注意
1.需要准备ios账号对应的证书(pem、p12和p12证书对应的密码),需要证书来生成签名,然后再用签名,加密json数据(json数据就指卡片中的数据);
2.json数据,就是用jPasskit 包中的PKPass的对象转成Json;
3.利用ios证书生成签名,jPasskit包也封装了的,PKSigningInformationUtil类中的loadSigningInformationFromPKCS12AndIntermediateCertificate方法,生成一个签名对象。再用PKFileBasedSigningUtil类中createSignedAndZippedPkPassArchive方法生成字节数组。
结尾
本文只是讲述利用Java生成.pkpass文件,若有错误的地方,望各位大佬指明,谢谢~
关于IOS卡片导入和关于钱包卡片介绍,可以参考下面另外大佬的博客,两位大佬讲解比较详细
https://blog.csdn.net/sz_vcp2007/article/details/60762349
https://blog.csdn.net/wzzvictory/article/details/12653673