ios7-12月基础就业2期压缩包版04.passbook_第1页
ios7-12月基础就业2期压缩包版04.passbook_第2页
ios7-12月基础就业2期压缩包版04.passbook_第3页
ios7-12月基础就业2期压缩包版04.passbook_第4页
ios7-12月基础就业2期压缩包版04.passbook_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Passbook讲师:刘凡技术博客:新浪微博:电子商务移动支付NFC——近场通讯、射频技术(短距离通信)公交卡,是未来电子商务必争的战场!与电子银行绑定在一起!一个手机能够解决所有的支付问题,不过目前在中国大陆市场还不是很成熟电子钱包在电子商务领域,移动支付是重中之重!苹果公司从08年开始研发NFC,并且目前已经开始申请相关的专利Passbook简介Passbook是苹果公司于北京时间2012年6月12日上午,在全球开发者大会(WWDC)上宣布了iOS6系统将提供操作一个全新的应用——Passbook这是一款可以存放登机牌、会员卡和电影票的工具。该功能将整合来自各类服务的票据,包括电影票、登机牌、积分卡和礼品卡等Passbook是基于地理位置的,通过定位功能,当用户走到相关商店或场所附近时,对应的票据将会被自动显示Passbook只能在iPhone和iPodtouch设备中使用例如:比如当你快到达星巴克时,Passbook会拉出一张卡,提示你星巴克就在附近。这些卡片的信息还是在线的,所以当你的登机牌更新了信息或发生了变化,卡片也会进行更新。所以说这是一个存放电子票和通行证最好的地方当机场通知登机口变更的时候,手机会收到推送提醒,暂时仅支持美联航Passbook应用场景当用户快到达星巴克时,Passbook会拉出一张卡,提示你星巴克就在附近进入星巴克将手机给服务员服务员用设备扫描二维码,便可以享受免费咖啡了机票的Pass示例完整Passbook应用的构成集成PassKit框架的Passbook的应用Apple的通知推送服务商家的服务端代码什么是Passes?Passes是口袋里的所有东西!如果把Passbook看成钱包,那么Passbook中的Passes就可以看成是钱包中的钞票、会员卡、优惠券、电影票或者登机牌演练1——添加Passes演练1——添加Passes步骤创建项目并添加PassKit框架添加示例Passes修改Storyboard,使用UITableViewController从Bundle中读取所有的Pass文件填充表格内容编写打开Pass方法从Bundle中读取所有的Pass文件//1.获取mainBundle路径NSString*path=[[NSBundlemainBundle]resourcePath];//2.读取mainBundle中的所有文件NSArray*files=[[NSFileManagerdefaultManager]contentsOfDirectoryAtPath:patherror:nil];//3.遍历数组查找所有的PassNSMutableArray*passes=[NSMutableArrayarray];for(NSString*fileNameinfiles){

if([fileNamehasSuffix:@".pkpass"]){[passesaddObject:fileName];}}打开Pass//1.生成完整的Pass路径NSString*path=[[[NSBundlemainBundle]resourcePath]ponent:name];//2.生成Pass数据NSData*data=[NSDatadataWithContentsOfFile:path];//3.使用data实例化PKPass示例NSError*error=nil;PKPass*pass=[[PKPassalloc]initWithData:dataerror:&error];……//4.实例化添加Pass控制器以显示Pass内容PKAddPassesViewController*controller=[[PKAddPassesViewControlleralloc]initWithPass:pass];//5.设置控制器代理[controllersetDelegate:self];//6.显示添加Pass控制器[selfpresentViewController:controlleranimated:YEScompletion:nil];Pass与传统优惠券的比较传统优惠券通常分正反两面正面:优惠内容及到期时间背面:法律责任及相关信息真实的Pass也是正反两面正面:非常醒目的描述信息,一目了然知道商家的服务信息,最重要的信息是二维码反面:自动更新、锁屏提示、法律责任、删除PassPass的五种类型Boardingpasses:登机牌(机票、火车票) 起始地点~终点&过期时间&客户状态Coupons:优惠券Storecards:购物卡Eventtickets:入场券,支持用户的实名制Generic:通用卡,如果以上四种类型无法满足,可以自己定义卡.pkpass文件实际上是一个zip文件Pass文件说明图标icon:60*60商标

logo:58*58

最好只使用纯色,不要增加效果缩略图thumbnail:200*200背景图background(background-568@2x.png):640*960/640*1136条带图strip.png:640*244manifest.json:描述Pass的信息,包含pass的组成内容及加密认证的信息pass.json:描述Pass上的信息及摆放关系signature:签名文件,对Pass中的所有文件进行加密,生成唯一的SHA码(指纹文件),如果校验不符合,说明Pass文件被修改过注意:通常条带图和背景图属于二选一关系pass.json内容说明formatVersion:通常是1passTypeIdentifier:反向域名+Pass名serialNumber:序列号teamIdentifier:在开发者网站生成organizationName:组织名logoText:logo文字description:描述信息foregroundColor:前景(字体)颜色backgroundColor:底色Pass的字段头部字段头字段次要字段辅助字段背面字段以上字段需要在Pass中添加描述信息,每个字段包含:KeyLabelValuePass的布局——登机牌Pass的布局——优惠券Pass的布局——购物卡Pass的布局——入场券Pass的布局——自定义二维码QRCode快速阅读码,在日本使用非常普遍PDF417码Aztec码阿斯特克码(回形码)创建Pass——建立pass.json{"formatVersion":1,"passTypeIdentifier":".itcast.FreeCoffee","serialNumber":"001","teamIdentifier":"J9XHDK444E","organizationName":"itcast","description":"优惠券蓝山咖啡1杯”,"logoText":"爱心咖啡","foregroundColor":"rgb(255,255,255)","backgroundColor":"rgb(135,129,189)","labelColor":"rgb(45,54,129)"}创建PassTypeID注册Pass

Type

ID确认Pass

Type

ID创建Pass

Type

ID验证字选择对应的Pass

Type

ID申请验证字生成并下载验证字将验证字导入到钥匙串管理器继续完善pass.json——二维码"barcode"

:{

“message”

:“用户姓名、手机号码、优惠额度8折",

"format":"PKBarcodeFormatQR",

"messageEncoding":"iso-8859-1"},格式:PKBarcodeFormatQRPKBarcodeFormatPDF417PKBarcodeFormatAztecmessageEncoding:添加优惠券内容"coupon":{

"primaryFields":[{

"key":"offer",

"label"

:"蓝山咖啡",

"value"

:"免费"

}]}添加图片&manifest.json提示:后续步骤是非常无聊的步骤,一不小心很容易出错!在整个手工制作pass的过程中,最容易出错的部分就是pass.json的编写生成加密数据打开终端,并进入pass.json所在目录,输入:opensslsha1pass.json用生成的密钥设置manifest.json中的内容{"icon.png":"8eaa0896db93f2165fa417df3d002ce9c61fcd92","icon@2x.png":"555ce7f70f2f44fb7ac9d9f46df5738ec6250f37","logo.png":"e8c4edfbcae41d9d88fad7137d8ed30ae5f73e67","logo@2x.png":"1f9b1cc4c75b380ade07e9f2b7f37f988d9d14c3","strip.png":"25b4c9ff2bafe056f3e28379db0ef3fb460c718b","strip@2x.png":"dee775ed6fb3c7278b84c65853401e760caabc92","pass.json":"54f6300dd714226f7e0f181a514e3646684e5d25"}注意:如果修改了pass.json需要重新生成密钥注:OpenSSL是一个强大的安全套接字层密码库,为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用从钥匙串管理器导出此前创建的p12文件,然后在终端中输入:opensslpkcs12-in免费咖啡.p12-clcerts-nokeys-outpasscertificate.pem-passinpass:该命令从.p12文件导出一个PEM格式的pass证书,并保存到passcertificate.pem文件中在终端输入opensslpkcs12-in免费咖啡.p12-nocerts-outpasskey.pem-passinpass:-passoutpass:123456该命令从.p12文件使用123456作为密码导出passkey.pem密钥文件如果要用更复杂的密码生成指纹文件,可以直接修改123456导出WWDR文件生成签名文件在终端输入:opensslsmime-binary-sign-certfileWWDR.pem-signerpasscertificate.pem-inkeypasskey.pem-inmanifest.json-outsignature-outformDER-passinpass:123456该命令可以生成签名指纹文件如果要用更复杂的密码生成指纹文件,可以直接修改123456压缩生成pass文件在终端输入:zip-rfreecoffee.pkpassmanifest.json

pass.jsonsignaturelogo.pnglogo@2x.pngicon.pngicon@2x.pngstrip.pngstrip@2x.png提示:也可以使用其他压缩工具压缩,但是注意只能压缩pass包含的文件,不能包含其他的文件生成的咖啡优惠券Pass的获取方式邮件网站应用程序内部(通过网络服务器实现)网站优惠卡登记姓名:性别:手机号码:pass.jsonmenifest.jsonopenssl指纹文件pass用户手机数据库优惠额度用户信息时间有效期……系统推送商家扫描二维码给客户优惠手机令牌新的促销活动直推下载、邮件WebServices(Post)pass.jsonmenifest.json指纹文件pass用户手机姓名性别手机号码POST接到返回的Pass之后,调用PKAddPassViewController添加Pass1.Post信息2.返回Pass二维码的生成从iOS7开始集成了二维码的生成和读取功能此前被广泛使用的zbarsdk目前不支持64位处理器生成二维码的步骤:导入CoreImage框架通过滤镜CIFilter生成二维码二维码的内容(传统的条形码只能放数字):纯文本名片URL生成二维码//1.实例化二维码滤镜CIFilter*filter=[CIFilter

filterWithName:@"CIQRCodeGenerator"];//2.恢复滤镜的默认属性[filtersetDefaults];//3.将字符串转换成NSDataNSData*data=[strdataUsingEncoding:NSUTF8StringEncoding];//4.通过KVO设置滤镜inputMessage数据[filtersetValue:dataforKey:@"inputMessage"];//5.获得滤镜输出的图像CIImage*outputImage=[filteroutputImage];//6.将CIImage转换成UIImage,并放大显示return[UIImage

imageWithCIImage:outputImagescale:20.0

orientation:UIImageOrientationUp];读取二维码读取二维码需要导入AVFoundation框架利用摄像头识别二维码中的内容(模拟器不行)输入(摄像头)由会话将摄像头采集到的二维码图像转换成字符串数据输出(数据)由预览图层显示扫描场景设置拍摄会话//1.实例化拍摄设备AVCaptureDevice*device=[AVCaptureDevicedefaultDeviceWithMediaType:AVMediaTypeVideo];//2.设置输入设备AVCaptureDeviceInput*input=[AVCaptureDeviceInputdeviceInputWithDevice:deviceerror:nil];//3.设置元数据输出//3.1实例化拍摄元数据输出AVCaptureMetadataOutput*output=[[AVCaptureMetadataOutputalloc]init];//3.3设置输出数据代理[outp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论