当前位置: 首页 > news >正文

生成ios钱包pkpass文件

文章目录

  • 一、什么是PKPass文件?
  • 二、制作PKPass文件
    • 1. 服务器端制作是比较通用的做法
    • 2. 本地制作
        • 1. 申请Pass Type id
        • 2. 生成对应证书
        • 3. 制作pass.json
        • 4. 创建manifest.json文件
        • 5. 生成signature文件
  • 三、

一、什么是PKPass文件?

PKPass 是Apple定义的一套针对商家消费券、优惠券、火车机票等票据格式类文件。包含:图标icon、缩略图thumbnail和logo外最重要的就是pass.json、manifest.json和signature等文件的一个压缩包

二、制作PKPass文件

1. 服务器端制作是比较通用的做法

Java写的开源库:

Java版本制作PKPass的web service

2. 本地制作

1. 申请Pass Type id

去苹果开发者网站生气PassType id
在这里插入图片描述

2. 生成对应证书

在这里插入图片描述
生成证书后下载到本地

3. 制作pass.json

a. 准备icon、logo和strip三类图片
b. 配置pass.json,这里还是强调一下passTypeIdentifier和teamIdentifier,前者就是上面在开发者中心创建的Pass Type ID(”pass.com.passcard.NFCdemo“),后者是对应的团队标识,申请苹果开发者账号时会分配一个唯一的团队标识(可以在苹果开发者中心–查看账户信息中查看”Team ID“)。,其他信息根据实际情况配置。

{"formatVersion": 1,"passTypeIdentifier": "pass.com.passcard.NFCdemo","serialNumber": "nmyuxofgna","teamIdentifier": "V3939UCPFC","authenticationToken": "bc83dde3304d766d5b1aea631827f84c","barcode": {"message": "userName TestName","altText": "会员详情","format": "PKBarcodeFormatQR","messageEncoding": "iso-8859-1"},"locations": [{"longitude": -122.3748889,"latitude": 37.6189722},{"longitude": -122.03118,"latitude": 37.33182}],"organizationName": "CardMee","logoText": "CardMee","description": "","foregroundColor": "rgb(2,2,4)","backgroundColor": "rgb(244,244,254)","storeCard": {"headerFields": [{"key": "date","label": "余额","value": "¥888"}],"secondaryFields": [{"key": "more","label": "VIP会员","value": "test user"}],"backFields": [{"key": "records","label": "消费记录(最近10次)","value": " test descript"},{"key": "phone","label": "联系方式","value": "4000-000-00"},{"key": "terms","label": "会员规则","value": "Test Descript"},{"key": "support","label": "技术支持","value": "http://xxx.xxx/xxxx/"}]},"labelColor": "rgb(87,88,93)"
}
4. 创建manifest.json文件

可以通过”openssl sha1 [文件路径]“分别计算出所有文件的哈希值:

调用服务器脚本生成

{"icon.png" : "e0f0bcd503f6117bce6a1a3ff8a68e36d26ae47f","logo.png" : "f2befb9e95da56f26a11ee02d15818d031ea19dd","icon@2x.png" : "784a9bb170809c607ecc73a6ab183a1e65bf82a0","background.png" : "dabfbcc61890ef2aa02943c49859a4ba8465a00e","logo@2x.png" : "5d1ea85567258fbae37caca20b3232e8069d8dcf","pass.json" : "f2d852941ad3d19dbeba45ccca56a2eb852309ca","background@2x.png" : "0d5f7f8fec8cf1e45e5bda4542023d394dcc4e6f","thumbnail.png" : "dabfbcc61890ef2aa02943c49859a4ba8465a00e","thumbnail@2x.png" : "0d5f7f8fec8cf1e45e5bda4542023d394dcc4e6f"
}
5. 生成signature文件

a.通过前面导入的Pass Type证书(Pass Type ID:pass.com.taokatao.mywallet)导出个人信息交换(.p12)文件并指定密码(假设密码为123),保存成”wallet.p12“(注意是导出证书而不是导出证书下的专用秘钥)。
b.在钥匙串中找到"Apple Worldwide Developer Relations Certification Authority"证书导出增强保密邮件(.pem),保存成”AWDRCA.pem“。
c.将.p12证书转化为.pem证书wallet.pem(需要输入导出时设置的密码123),输入如下命令:

openssl pkcs12 -in wallet.p12 -clcerts -nokeys -out wallet.pem -passin pass:123 -legacy

d.从.p12导出秘钥文件walletkey.pem(这里设置密码为123)

openssl pkcs12 -in wallet.p12 -nocerts -out walletkey.pem -passin pass:123 -passout pass:123 -legacy

e.根据AWDRCA.pem、wallet.pem、walletkey.pem、manifest.json生成signature文件(按照提示输入walletkey.pem导出时设置的密码123):

openssl smime -binary -sign -certfile AWDRCA.pem -signer wallet.pem -inkey walletkey.pem -in manifest.json -out signature -outform DER

三、

http://www.dtcms.com/a/593053.html

相关文章:

  • Paimon——官网阅读:理解文件
  • 做网站应该学什么语言网站建设裕鸿国际
  • Xenium数据分析 | 使用Xenium Ranger重新分析数据
  • MySQL 8.0 新特性详解:窗口函数,开启数据分析的潘多拉魔盒
  • 基于模板匹配的数字和大写字母识别(Matlab)
  • 网站编程赚钱企业门户网站 php
  • 网站有什么到期网站空间哪里买
  • LeetCode 分类刷题:2816. 翻倍以链表形式表示的数字
  • 一文掌握,soular安装与配置
  • Whole-Body Control——双足机器人全身控制技术 论文阅读笔记
  • LeetCode hot100:240 搜索二维矩阵 II:三种解法对比
  • Wireshark笔记-DNS流程与数据包解析
  • SRv6论文阅读
  • 做电子烟外贸网站有哪些建设银行亚洲官方网站
  • 11.9 LeetCode 题目汇总与解题思路
  • leetcode 707 设计链表
  • dedecms_v5.6室内装饰设计公司企业网站模板.rar免费的素材网站有哪些
  • S7.Net documentation 文档中文说明书
  • 深度学习入门:从理论到实践
  • ts-静态类型检查,自动编译,ts类型 01
  • 文本插值,属性绑定,条件渲染,列表渲染
  • .NET周刊【11月第1期 2025-11-02】
  • C# 垃圾回收机制深度解析
  • 做微信头图的网站中国光伏企业排行榜
  • 亚马逊、Temu 自养号采购测评:从零打造安全体系
  • Mysql 5.7.26 安装
  • 【ZeroRange WebRTC】码学基础与实践:哈希、HMAC、AES、RSA/ECDSA、随机数、X.509
  • 深圳做手机网站建设中小企业网站建设多少钱
  • 【大数据技术01】数据科学的基础理论
  • 研发管理知识库(1)DevOps开发模式简介