开发资源

APP下载

消费者

开发者

相册厂

资源中心是TimePack平台开发者所需所有相关资源的汇集地,包括:

1、Android SDK 接入指南

2、iOS SDK 接入指南

3、支付接入指南

4、常见问题

此外,还包括了开发过程中的返回码说明和资源下载,具体资源包括:

1、SDK下载

2、范例代码

欢迎您成为TimePack 开发平台的开发者


TimePack 是苏州百目视觉科技有限公司(以下简称“百目”)为有需求的企业和团队打造的云相册定制打印服务平台,TimePack 旨在为企业和个人提供更为丰富和专业的相册定制打印服务。通过TimePack,企业或第三方合作伙伴甚至是个人开发者轻松拓展产品线和业务渠道,完善用户体验。


企业、第三方合作伙伴或者个人开发者的APP通过接入TimePack SDK,可以将用户手机中的相册或者APP的云相册定制打印成相册书,TimePack 提供专业的图像处理引擎、丰富的相册模板、深入合作的相册制作厂家,保证产品质量精良优美、价格占据绝对优势。


当您成功注册成为开发者,可以通过本文档所有的操作接入SDK,无需过多操作,即可在后台创建相册产品,管理订单。


假如你是企业用户,要为自己公司的APP接入TimePack服务,请查看企业接入指南



开发者可以通过以下方式了解更多关于TimePack 开发者平台的消息


  • 运维邮件:support@beumu.com
  • 此处为企业接入TimePack服务的快速指南,按照此处实现步骤,您(企业)可以将APP快速接入TimePack SDK,您需要经过以下几步:


  • Step 1- 注册TimePack 开发者账号
  • Step 2- 创建APP
  • Step 3- 创建相册产品

  • Step 1- 注册TimePack 开发者账号


    一、进入 TimePack 开发者后台页面,点击注册账号;(已经注册可跳过此步骤)


    二、填写邮箱、密码和验证码


    三、验证邮箱:完成第二步后,会有一封验证发到您邮箱中,点击邮箱中的链接,即可完成邮箱验证


    四、点击邮箱中的链接,打开完善资料步骤,输入企业基本信息,点击完成即可完成TimePack注册。


    Step 2- 创建APP


    点击登录,输入账号和密码后,进入到TimePack开发者后台后,首先需要新建一个APP:将您需要接入TimePack SDK的APP信息输入到系统后台中。


    点击新建,进入到新建APP页面,输入到APP 基本信息和开发信息:应用名称、应用描述和应用图标;应用官网地址和iOS、Android的信息。

    BundleID 实际为APP的应用程序包名。

    应用列表

    点击应用图标按钮,此应用APP即为选中状态:

    Step 3- 创建相册产品


    在创建APP后,取得系统分配给此APP的AppID 和 AppSecret,此时可以将TimePack SDK 接入到您的APP中,待开发人员创建相册后,即可在APP中查看你创建的相册产品信息

    点击新建产品,从系统平台提供的系统产品列表中选择适合您APP的相册产品,选中,进入到产品编辑页面,系统本身提供此款相册产品的模板,您可以简单修改价格即可上架,也可以对相册产品进行编辑上架。

    上架: 直接上架,即在APP中直接显示使用

    保存: 放入待上架产品中,进行保存,可日后上架。

    1 引言

    1.1编写目的

    本文档描述了Timepack 开放平台中对外提供的接口,统一了开发者调用数据的接口。

    请求url示例:

    http://demo.timepack.cn/restapi/sync/images/

    请求post数据:

    jsondata={
    	    接口定义的请求的json数据
    	}&model={
    	    客户端加密的数据
    	}

    1.2 api签名参数sig的说明

    签名值sig是将请求源串以及密钥根据一定签名方法生成的签名值,用来提高传输过程参数的防篡改性。

    Step 1. 构造源串

    源串是用“&”拼接起来的:

    HTTP请求方式(GET/POST) & 请求 URL & jsondata&userip&appid

    例如:

    POST&http: //demo.timepack.cn/restapi/sync/orderstatus&{
    	    appid: "xxxxx",
    	    userid: "1234567",
    	    orderno: "20160317001",
    	    orderstatus: "1"
    	}&192.168.1.1&8CBB352D-9E27-411

    Step 2. 构造密钥

    得到密钥的方式:在应用的app_secret末尾加上一个字节的“&”,即app_secret &,例如:

    8CBB352D-9E27-4119-A413&

    Step 3. 生成签名值

    1. 使用HMAC-SHA1加密算法,使用Step2中得到的密钥对Step1中得到的源串加密。

    2. 然后将加密后的字符串经过Base64编码。

    3. 得到的签名值, 存储到model的signature 字段中;

    注:appid 和app_secret 在timepack开放平台中查看。

    1.3 请求通用参数信息

    在每次接口调用的时候,通用参数信息包含appid、signature、userip通用参数封装成json数据,通过

    model={
    	    appid: 1111111,
    	    signature: xxxxxx,
    	    userip: 10.99.12.180
    	}

    的方式附加到请求参数中,通过post请求将数据发送到Timepack开放平台

    {
    	    appid: 1111111,
    	    signature:xxx,
    	    userip: 10.99.12.180
    	}

    1.4响应通用参数信息

    其中返回结果通用的属性有code和msg:

    1、code表示改成请求的结果,状态值如下:

    1001 表示执行失败

    1002 表示执行成功

    2001 表示传入参数不合法

    3001 表示签名验证失败

    3002 表示appid信息错误

    3002 表示appid信息错误

    404 表示请求地址错误

    2、msg 是服务端返回的消息内容;

    每次请求,服务端响应的数据格式为:

    {
    	    code: 1001,
    	    msg: '操作成功'
    	}

    1.5 测试环境地址:

    http://demo.timepack.cn/restapi/

    2 同步用户图片资源信息

    Timepack开放平台提供接口, 让开发者允许Timepack使用其APP用户上传的图片资源,用于编辑相册。

    (1)URI:/sync/images

    (2)请求类型:POST

    (3)请求参数:

    字段 说明
    appid 第三方平台在Timepack平台上的AppID
    data 用户图片信息数据集合
    userid 第三方平台上用户的唯一标识
    images 图片集合信息
    url 图片的url地址,注:Timepack开放平台保存时,会根据userid和url信息进行重复筛选操作
    description 图片描述,可以为空
    pubtime 发布时间
    publocation 发布地点 ,可以为空
    {
    	    "appid": "xxxxxx",
    	    "data": [
    	        {
    	            "userid": "abaobao-01",
    	            "images": [
    	                {
    	                    "url": "http://image.cache.timepack.cn/",
    	                    "description": "",
    	                    "pubtime": "",
    	                    "publocation": ""
    	                },
    	                {
    	                    "url": "http://image.cache.timepack.cn/",
    	                    "description": "",
    	                    "pubtime": "",
    	                    "publocation": ""
    	                }
    	            ]
    	        }
    	    ]
    	}

    (4)返回结果:

    字段 说明
    code 开放平台同步结果 ,参见1.4 响应通用参数信息
    msg 系统返回消息

    (5)请求示例url地址

    http://demo.timepack.cn/restapi/sync/images

    请求post数据:

    jsondata={
    	    "appid": "tpidHOhFsrgSDki",
    	    "data": [
    	        {
    	            "userid": "abaobao-01",
    	            "images": [
    	                {
    	                    "url": "http://image.cache.timepack.cn/",
    	                    "description": "test",
    	                    "pubtime": "",
    	                    "publocation": ""
    	                },
    	                {
    	                    "url": "http://image.cache.timepack.cn/",
    	                    "description": "",
    	                    "pubtime": "",
    	                    "publocation": ""
    	                }
    	            ]
    	        }
    	    ]
    	}&model={
    	    appid: tpidHOhFsrgSDki,
    	    userip: ‘112.80.58.170’,
    	    signature: "/q6GlUOlGyi0RW1aZTryFIl7VFA="
    	}

    3 同步订单状态

    当app用户支付成功时,需要更新Timepack开放平台上的订单状态信息;

    注意:如果开发者通知Timepack开放平台用户的订单已经支付成功,开放平台会同步更新订单的状态信息,请第三方平台务必保证同步订单状态的准确性和完整性。

    (1)URI:/sync/orderstatus

    (2)请求类型: POST

    (3)请求参数:

    字段 说明
    userid 第三方平台上用户的唯一标识
    orderno 订单号,对应的是开放平台的用户订单号。
    orderstatus 订单支付状态:1 支付成功 0 支付失败
    {
    	    userid: ’123456’,
    	    orderno: ’20160317001’,
    	    orderstatus: ’1’
    	}

    (4)返回结果:

    字段 说明
    code 开放平台同步结果 参见1.4 响应通用参数信息
    msg 系统返回消息

    (5)请求示例url地址

    http://demo.timepack.cn/restapi/sync/orderstatus

    请求post数据:

    jsondata={
    	    userid: "abaobao-01",
    	    orderno: "20160317001",
    	    orderstatus: "1"
    	}&model={
    	    appid: "tpidHOhFsrgSDki",
    	    userip: "112.80.58.170",
    	    signature: "eWidA3ddk3GYWMBu2BQlJVaXCPQ="
    	}

    1. 集成准备

    1.1获取AppId和AppSecret

    集成TimePack SDK之前,您首先要到TimePack官网注册并添加新应用,获取AppId

    1.2下载SDK

    1.3导入SDK

    Eclipse 集成:把下载的sdk解压后会看到一个library,直接在您的项目中引用这个library即可,注意(如果library中用到的第三方jar和您的项目中用到的有重复,请把您项目中重复的jar删除,否则编译会报错);

    把library目录下assets文件夹中的timePack_address_list.json文件复制到您项目中assets的目录下,因为在eclipse开发工具,从library的assets文件中读取会失败。

    Android studio集成:同样下载sdk解压后会看到一个module,请在您的项目中引用这个module,File->new->Import Module通过这个步骤将module导入到项目中来,然后在您的项目中添加这个module。


    2.基本功能集成

    2.1 配置manifest

    Manifest的配置主要是添加权限和Activity的声明两个部分,示例代码如下:

    权限:

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    	<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    	<uses-permission android:name="android.permission.READ_OWNER_DATA"/>
    	<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    	<uses-permission android:name="android.permission.INTERNET"/>
    	<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

    声明Activity:

    <activity
    	        android:name="com.beumu.xiangyin.PictureListActivity"
    	        android:screenOrientation="portrait">
    	    </activity>
    	    <activity
    	        android:name="com.beumu.xiangyin.BookShelfActivity"
    	        android:screenOrientation="portrait">
    	    </activity>
    	    <activity
    	        android:name="com.beumu.xiangyin.PictureDetailsActivity"
    	        android:screenOrientation="portrait">
    	    </activity>
    	    <activity
    	        android:name="com.beumu.xiangyin.ui.WaddingFanyeActivity"
    	        android:screenOrientation="landscape"
    	        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
    	    <activity
    	        android:name="com.beumu.xiangyin.ui.HardFanyeActivity"
    	        android:screenOrientation="landscape"
    	        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
    	    <activity
    	        android:name="com.beumu.xiangyin.ui.SelectPictureTimeLineActivity"
    	        android:screenOrientation="portrait"/>
    	    <activity
    	        android:name="com.beumu.xiangyin.ui.GlobalEditingActivity"
    	        android:screenOrientation="portrait"/>
    	    <activity
    	        android:name="com.beumu.xiangyin.ui.SingleEditingActivity"
    	        android:screenOrientation="landscape"
    	        android:theme="@style/Theme.AppCompat.NoActionBar"/>
    	    <activity
    	        android:name="com.beumu.xiangyin.ui.MyXiangyinOrderActivity"
    	        android:screenOrientation="portrait"/>
    	    <activity
    	        android:name="com.beumu.xiangyin.ui.ConfirmOrderActivity"
    	        android:screenOrientation="portrait"/>
    	    <activity
    	        android:name="com.beumu.xiangyin.ui.AddressCreateActivity"
    	        android:screenOrientation="portrait"/>
    	    <activity
    	        android:name="com.beumu.xiangyin.ui.AddressListActivity"
    	        android:screenOrientation="portrait"/>
    	    <activity
    	        android:name="com.beumu.xiangyin.ui.AddressEditActivity"
    	        android:screenOrientation="portrait"/>
    	    <activity
    	        android:name="com.beumu.xiangyin.ui.HardFanyeNetActivity"
    	        android:screenOrientation="landscape"
    	        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
    	        

    2.2初始化sdk

    在您app登录成功后初始化sdk加上如下代码:

    InitXiangyin.setAppIdAndAppSecretAndUserId(Contextcontext,
    	StringappId,
    	StringappSecret,
    	StringuserId);InitXiangyin.initYkyin(Contextcontext);

    注意两个方法的调用顺序不能改变,appId和appSecret是在TimePack 后台新建应用后获取到的,userId是您当前登录用户的唯一标示。


    进入TimePack进行制作相册之前一定要初始化sdk,您可以加逻辑判断,如果app未登录不能点击制作相册按钮,如果已经登录,可以跳转到我们sdk Activity页面,

    示例代码:

    Intentintent=newIntent(MainActivity.this,
    	PictureListActivity.class);startActivity(intent);

    这里的MainActivity.this是作为示例,具体是指您当前所在页面。


    如何跳转到您的支付页面:

    在您点击制作相册页面添加一个广播监听,sdk中点击立即支付后我们会发一个广播,广播中我们会携带有需要支付的费用和订单号,您获取到这两个参数后进行支付操作。示例代码:

    publicstaticStringTIMEPACK_BROADCAST="timepack_android_broadcast";registerReceiver(broadcastReceiver,
    	mIntentFilter());

    这个方法在onCreate方法里面调用;

    privatestaticIntentFiltermIntentFilter(){
    	    finalIntentFilterintentFilter=newIntentFilter();intentFilter.addAction(TIMEPACK_BROADCAST);returnintentFilter;
    	}finalBroadcastReceiverbroadcastReceiver=newBroadcastReceiver(){
    	    @OverridepublicvoidonReceive(Contextcontext,
    	    Intentintent){
    	        longorderno=intent.getLongExtra("timepack_order_no",
    	        0);intmoney=intent.getIntExtra("timepack_order_money",
    	        0);IntentintentNext=newIntent(MainActivity.this,
    	        PayDemoActivity.class);startActivity(intentNext);
    	    }
    	};

    这里的PayDemoActivity.this是作为示例,具体是指您要跳转的支付页面。(请把获取到的orderno和money传到支付页面)

    1.获取密钥

    访问TimePack官网,创建您的应用,获取app id 和 app secret

    2.安装SDK

    2.1 访问TimePack官网, 在资源中心-->Developer Partner-->iOS, 下载TimePack.framework。

    2.2 将所需的TimePack.framework拷贝到工程所在文件夹下。

    2.3 在 TARGETS->Build Phases-> Link Binary With Libaries中点击“+”按钮,在弹出的窗口中点击“Add Other”按钮,选择TimePack.framework添加到工程中。

    2.4 在您的Xcode工程中引入AssetsLibrary.framework, QuartzCore.framework。

    2.5 引入printapi.bundle资源文件

    2.6 由于SDK使用第三方服务, 所以需要您为您的工程添加podfile, 在podfile中, 添加:

     pod 'Qiniu', '~> 7.0.16' 。

    3. 使用指南

    3.1 进入TimePack进行制作相册之前一定要初始化SDK,您可以加逻辑判断,如果app未登录不能点击制作相册按钮,如果已经登录,调用[BPKPrintManager start:@"在此处输入您的授权Key" appSecret:@"在此处输入您的授权secret" userID:@”使用您APP的用户的id”] , SDK将以modal视图展现产品列表页面。

    3.2 当用户购买相簿, 成功下订单, 响印SDK的UI整个退出,并且发送通知。您的工程需要捕获该通知。通知中的数据格式是字典, 包含订单号, 每种相簿的个数和价格,订单总价等信息。

    3.3 您使用通知中的数据, 让用户为购买的相簿进行支付。

    TimePcak SDK常见问题

    目录

    1. TimePack是什么?
    2. 为什么要接入TimePack?
    3. 如何接入TimePack?
    4. 接入TimePack后的盈利模式是什么?
    5. 使用TimePack,如何收费?
    6. 如何体验TimePack?
    7. 第三方软件方的相册产品从哪里来?
    8. 第三方软件可以选择自己的供货厂商产品吗?
    9. 第三方APP软件开发商可以在相册产品上定制自己的logo吗?
    10. TimePack提供相应的电子相册软件服务吗?
    11. 关于制作出来的相册,用户在什么情况下可以进行免费退换货?
    12. 当用户签收相册后,出现哪些情况是不属于退换货范畴?
    13. 相册制品的印刷质量是有如何控制的?
    14. 当第三方APP的C端用户下单后,发货时间以及制作周期是怎样的?
    15. TimePack可以为第三方软件进行SDK的UI定制化开发吗?
    16. 如何联系TimePack?

    1.TimePack是什么?

    TimePack 是为有需求第三方APP软件开发商打造的云相册定制打印服务平台,并提供一站式的相册解决方案。从最基本的用户图片处理和相册编辑,TimePack将逐步覆盖图像领域中所有可能的需求和场景,提升用户对定制类产品的购买体验,解决电子商务移动端在个人定制类产品无法转化的的问题。


    2.为什么要接入TimePack?

    TimePack 旨在为企业和个人提供更为丰富和专业的相册定制打印服务。通过TimePack,企业或第三方合作伙伴甚至是个人开发者轻松拓展产品线和业务渠道,完善用户体验。零成本开发量接入TimePack,即可轻松实现内容变现,将您的云相册变成现金流。


    3.如何接入TimePack?

    如果您是APP开发者,您可以在TimePack平台上注册成为开发者,通过本文档所有的操作接入SDK,无需过多操作,即可在后台创建相册产品,管理订单。


    4.接入TimePack后的盈利模式是什么?

    企业、第三方合作伙伴或者个人开发者的APP通过接入TimePack SDK,可以将用户手机中的相册或者APP的云相册定制打印成相册书,TimePack 提供专业的图像处理引擎、丰富的相册模板、深入合作的相册制作厂家,保证产品质量精良优美、价格占据绝对优势。轻松接入TimePack后,您的线上云相册即可定制成为线下实体照片书,用户买单后,您的云相册就实现了真正的变现。
    案例:用户在使用爱宝宝APP期间,上传了大量的宝宝图像信息,爱宝宝APP通过接入TimePack自动图像引擎实时为该用户生成了一本宝宝相册,用户只需下单购买即可。爱宝宝APP通过用户的购买行为实现了内容变现,从而获得实际收益。


    5.使用TimePack,如何收费?

    使用TimePack平台,我们是不收取任何费用的,所有开发软件均可免费使用。只有当产生相册订单后,我们才会根据订单数量设置一定比例收取相关软件服务费。
    软件服务收费标准:
    按每周订单总额收费:
    订单总额0元~5000元,按总额12%收取服务费用;
    订单总额5001元~20000元,按总额10%收取服务费用;
    订单总额20000元以上,按总额8%收取服务费用。


    6.如何体验TimePack?

    您可以在App Store或者安卓各大应用市场上搜索“TimePack SDK”,或者扫描下方二维码,即可试用进行体验最新的2.0版本。


    7.第三方软件方的相册产品从哪里来?

    TimePack目前已在全国范围内优选了163家印刷厂,主要布局京津翼、江浙沪、珠三角区域,印刷厂平台根据区域布向厂商转发订单。TimePack平台可以做到当天下单,转天发货,并保证产品质量精良优美、价格占据绝对优势。


    8.第三方软件可以选择自己的供货厂商产品吗?

    只要将指定的供货厂加入我们的相册管理系统,上传对应的相册产品即可。


    9.第三方APP软件开发商可以在相册产品上定制自己的logo吗?

    可以,所有相册制本都是定制化制作,第三方APP软件开发商可根据自己的需求,定制自己的logo在相册产品上。


    10.TimePack提供相应的电子相册软件服务吗?

    提供,TimePack不仅为有需求第三方APP软件开发商提供线上电子相册软件服务,更可以制成线下实体相册。


    11.关于制作出来的相册,用户在什么情况下可以进行免费退换货?

    a. 实际印品与用户下单作品不一致。例如页面顺序装订错误、印错或漏印等。
    b. 印品装订质量不合格。包括但不限于:页面纸张破损、书脊胶装或封底出现脱胶现象。
    c. 由于快递问题导致印品丢失、破损、浸湿等。


    12.当用户签收相册后,出现哪些情况是不属于退换货范畴?

    a.用户单方面认为印刷品成像品质比不上照片冲印。(数码直印与与照片冲印的成像原理不同,数码直印会有细微的网点。)
    b. 认为印刷成品颜色与显示器看到的不一致。


    13.相册制品的印刷质量是有如何控制的?

    我们与印刷厂有严格的质量管理体系,通过印前、印中和印后三个环节来进行印刷标准质量管理。


    14.当第三方APP的C端用户下单后,发货时间以及制作周期是怎样的?

    相册数码印刷产品制作周期为:3-7个工作日。如遇质检不合格,需要返工,则会顺延1-2工作日。 由于个性印品不是现货库存,而是下单后才生产,所以难免会发生意外,例如质检不通过需要返工,节假日前后订单量暴增、厂商政策性生产停电、备故障需要维护等。虽然发生的几率很低,但如果不幸发生在用户的订单上,还希望您能谅解并耐心等待。


    15.TimePack可以为第三方软件进行SDK的UI定制化开发吗?

    可以, 具体细节请致电沟通, 第三方APP软件开发商根据定制开发工作量可能会需要支付一定的软件开发费用。


    16.如何联系TimePack?

    联系电话: 13861314702(周一至周五 09:00-18:00)
    电子邮箱: support@beumu.com
    公司地址: 苏州工业园区星湖街328号创意产业园11-206单元

    返回码说明


    返回码 返回码描述
    1001 表示执行失败
    1002 表示执行成功
    2001 表示传入参数不合法
    3001 表示签名验证失败
    3002 表示appid信息错误
    3003 表示用户订单号信息错误
    404 表示请求地址错误

    开发工具包(TimePack SDK)


    接入TimePack SDK, 点击下载 IOS开发工具包

    详细了解TimePack产品, 点击下载TimePack IOS 产品说明书

    详细了解TimePack SDK如何接入, 点击下载TimePack IOS 开发文档


    范例代码


    包含了一个完整的范例工程。该范例的使用可以参阅IOS平台上手指南。点击下载范例代码

    开发工具包(TimePack SDK)


    接入TimePack SDK, 点击下载 Android开发工具包

    详细了解TimePack产品, 点击下载TimePack Android 产品说明书

    详细了解TimePack SDK如何接入, 点击下载TimePack Android 开发文档


    范例代码


    包含了一个完整的范例工程。该范例的使用可以参阅Android平台上手指南。点击下载范例代码

    H5配置资源下载


    H5页面接入指南, 点击下载 TimePack 新建H5应用指南

    开发者如何接入到自己的微信账户, 点击下载TimePack 台历微信端配置

    门店订单确认操作, 点击下载门店订单确认操作文档

    下载TimePack APP,专业的相册处理图像引擎

    漫步光阴的记录,随时随地定制相册