knetik_jsapi 1.0.0

knetik_jsapi 1.0.0

测试已测试
语言语言 SwiftSwift
许可证 BSD
发布上次发布2015年7月
SPM支持 SPM

youssef 维护。



  • Knetik

IOS JSAPI SDK

使用 IOS Swift 连接 JSAPI

我该如何设置?

1-检出 JSAPI IOS SDK

2-转到 JSAPI SDK 文件夹

3-将 JsapiApi.xcodeproj 拖放到您的项目中

4-选择您的项目 / 目标 / 构建阶段 / 链接二进制与库

5-点击加号图标,然后添加 JsapiApi.framework

6-转到您的 appDelegate,将此行添加到类的顶部 import JsapiApi

7-通过在 AppDelegate 的 didFinishLaunchingWithOptions 方法中调用 jsapiInit 初始化 Jsapi 对象

#!swift

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
{
 JsapiAPi.jsapiInit("https://:8080/jsapi","","")
  return true
 }

入门

一旦在 AppDelegate 中添加了 JsapiAPi.jsapiInit 调用,就会创建一个 JsapiAPi 类的单例对象

JsapiAPi

JsapiAPi 类用于执行登录、注销功能,并缓存身份验证令牌和 JSAPI URL

登录

目前,您拥有 JsapiAPi 的对象,所以您需要做的就是调用 doUserLogin 函数,并传递用户名和密码参数,如下例所示

#!swift

func testDoLogin()
    {
        var userDetails=Dictionary<String,String>()
        userDetails["username"] = username
        userDetails["password"] = password
        JsapiAPi.sharedInstance.doUserLogin(userDetails)
        {
        (result:NSDictionary,issuccess:Bool) in
            if(!issuccess)
            {
             // Login Failed
            }else
            {
            // Login Success
            }
        }
 }

登录结果

如果登录成功,您不需要处理登录响应,因为 API正在为您缓存令牌和令牌类型,您可以通过调用 JsapiAPi.sharedInstance.getJsapiToken() 来访问它

#!json
({
  "access_token": "5716a78e-6afe-4ba5-ace7-6ce285545f80",
  "token_type": "bearer",
  "expires_in": 3600,
  "scope": "write read"
})

登录失败

如果登录失败,您需要向用户显示 error_description 消息

#!json

Optional({
  "error": "invalid_grant",
  "error_description": "Bad credentials"
})

注销

您可以通过调用 doUserLogout 函数来清除缓存的令牌和令牌类型,如下例所示

#!swift

func testLogout()
    {
        JsapiAPi.sharedInstance.doUserLogout()
    }

注册

注册新用户 ###

您可以通过将用户名、密码、电子邮件、性别和全名参数传递给 doUserRegistration 函数来注册新用户

#!swift

func testUserRegistration()
    {
        var userDetails=Dictionary<String,String>()
        userDetails["username"]="username"
        userDetails["password"]="password" // plain text
        userDetails["email"]="[email protected]"
        userDetails["gender"]="male"
        userDetails["fullname"]="knetik"
        var regObject = Registration()
        regObject.doUserRegistration(userDetails)
            {
                (registeredUser:RegisteredUser,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println(errormessage)
                }else
                {
                    println(registeredUser.getFullname())
                    // Valid Response
                }
        }
    }

创建访客用户 ###

您可以通过调用 guests 函数来创建一个访客用户,并返回一个随机密码。

#!swift

func testGuestUser()
    {
        var userDetails=Dictionary<String,String>()
        var regObject = Registration()
        regObject.guests(userDetails)
            {
                (guestUser:GuestUser,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println("testUserRegisteration Failed")
                    return;
                }else
                {
                    self.username=guestUser.getUsername() // new user name
                    self.password=guestUser.getPassword() // user password 
                    // Valid Response
                }
                       }
    }

访客升级

要将您的访客账户升级为普通账户,您首先需要使用访客账户 登录,然后调用 guestUpgrade 函数。

#!swift

func testUpdateGuest()
    {
                        var userDetails=Dictionary<String,String>()
                        userDetails["username"]="username"
                        userDetails["password"]="password"
                        userDetails["email"]="[email protected]"
                        userDetails["gender"]="male"
                        userDetails["fullname"]="fullname"
                        var regObject = Registration()

                        regObject.guestUpgrade(userDetails)
                            {
                                (result:AnyObject,errormessage:String,issuccess:Bool) in
                                if(!issuccess)
                                {
                                    println(errormessage)
                                }else
                                {
                                    println("testUserRegisteration PASS")
                                    // Valid Response
                                }
                        }

              }

忘记密码

要重置密码,您需要按照以下步骤操作

1-将用户名和电子邮件发送到 forgotPassword 函数,您将收到一封包含 secrethash 代码的电子邮件

2-按照以下示例再次将用户名、电子邮件、新密码、secrethash 和纯文本发送到 forgotPassword

#!swift

func testForgotPassword()
    {
        var userDetails=Dictionary<String,String>()
        userDetails["username"]="username"  // mandatory for first and second call 
        userDetails["email"]="[email protected]" // mandatory for first and secondcall  
      //  userDetails["newpassword"]="password" // mandatory for second call to set the password    
     //   userDetails["secrethash"]="9d97a5892b0bf1b1af208b53e6c9f35986a0b123" // the secret code sent to your email need to be sent in second call 
     //   userDetails["plaintext"]="true" // second call 
        var regObject = Registration()

        regObject.forgotPassword(userDetails)
            {
                (result:AnyObject,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println("testUserRegisteration Failed")
                }else
                {
                    println("testUserRegisteration PASS")
                    // Valid Response
                }
        }

    }

用户

User 类用于获取和更新用户信息

获取用户信息

您可以通过从 User 对象调用 getUserInfo 函数来获取用户信息

#!swift

func testGetUserInfo()
    {
        var emptyParams=Dictionary<String,String>()
        var userObject = UserService()
        userObject.getUserInfo(emptyParams)
            {
                (user:User,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println("testUserRegisteration Failed")
                    println(errormessage)

                }else
                {
                    println("testUserRegisteration PASS")
                    println(user.getFullname())

                    // Valid Response
                }

    }

更新用户信息

您可以通过将 configName 和 configValue 传递给 updateUserInfo 函数来更新一些用户信息,如下例所示

#!swift

func testUpdateUser()
    {
        var userDetails=Dictionary<String,String>()
        userDetails["configValue"]="knetik"
        userDetails["configName"]="display_name"

        var userObject = User()
        userObject.updateUserInfo(userDetails)
            {
                (result:NSDictionary,issuccess:Bool) in
                if(!issuccess)
                {
                    println("testUpdateUser Failed")
                }else
                {
                    println("testUpdateUser PASS")
                    // Valid Response
                }
                println(result)
        }
    }

*更新配置名称列表 *

1-头像

2-显示名称

3-语言

4-出生日期格式 yyyy-[m]m-[d]d hh:mm:ss

购物车 ##

Cart 类用于执行以下购物车功能

1-创建购物车

2-获取购物车详情

3-购物车结账

4-获取购物车国家

5-更改购物车项目

6-将项目添加到购物车

7-修改配送地址

8-购物车可配送

创建购物车 ###

要创建购物车,您需要调用 createCart 函数,新的购物车号码将作为结果参数返回

#!swift

func testCreateCard()
    {
        var cardDetails=Dictionary<String,String>()
        var cartObject=CartService()
        cartObject.createCart(cardDetails)
            {
                (cartNumber:String,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println("Create Card SKU Failed")
                }else
                {
                    self.cartID=cartNumber
                    self.cartNumber=cartNumber
                    print(cartNumber)
                }


        }

    }

获取购物车详情 ###

您可以通过将购物车号码传递给 getCart 函数来获取完整的购物车详情

#!swift

func testGetCart()
    {
     var params=Dictionary<String,String>()
        var cartObject=CartService()
        cartObject.getCart(params,guidID: self.cartNumber)
            {
                (cartDetails:CartDetails,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println("testgetCart Failed")
                }else
                {
                    println("testgetCart PASS")
                    print(cartDetails.getCart().getCity())

                }


        }

    }

购物车结账

checkout 函数让您关闭购物车并生成发票

#!swift

func testCartCheckout()
    {
      var params=Dictionary<String,String>()
      //  params["cartguid"]=cartNumber
        var cartObject=CartService()
        cartObject.cartCheckout(params,itemID:cartNumber)
            {
                (checkout:Checkout,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    print(errormessage)
                }else
                {
                    print(checkout.getInvoices()[0].getBillingAddress1())
                }

        }
    }

获取购物车国家 ###

获取每个供应商可用的配送国家列表

#!swift

func testCarCountries()
    {
      var params=Dictionary<String,String>()
        var cartObject=CartService()
        cartObject.cartCountries(params,itemID:cartNumber)
            {
                (countries:Array<Country>,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println(errormessage)
                }else
                {
                    print(countries)
                }

        }
    }

将项目添加到购物车

您可以通过将 catalog_id、catalog_sku_id、数量和 cartNumber 参数传递给 addCartItems 函数来将项目添加到购物车,如下例所示

#!swift

func testCartAddItems()
    {
        var params=Dictionary<String,String>()
        params["catalog_id"]="5"
        params["catalog_sku_id"]="5"
        params["quantity"]="0"
        var cartObject=CartService()
        cartObject.addCartItems(params,itemID:cartNumber)
            {
                (result:AnyObject,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println("testCartAddItems Failed")
                }else
                {
                    println("testCartAddItems PASS")
                }
                print(result)

        }


更改购物车项目 ###

您可以通过将 catalog_id、catalog_sku_id、数量和 cartNumber 参数传递给 changeItem 来更改已添加到购物车中的项目的数量

#!swift

func testCartChangeItems()
    {
    var params=Dictionary<String,String>()
           params["catalog_id"]="72"
           params["catalog_sku_id"]="72"
           params["quantity"]="10"
               var cartObject=CartService()
        cartObject.changeItem(params,itemID:cartID)
            {
                (result:AnyObject,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println("testCartChangeItems Failed")
                }else
                {
                    println("testCartChangeItems PASS")
                }
                print(result)

        }

    }

修改配送地址

您可以通过调用 modifyShippingAddress 函数并按照以下示例操作来修改购物车的配送地址

#!swift

func testModifyShippingAddress()
    {
        var params=Dictionary<String,String>()
        params["name_prefix"]="prefix"
        params["first_name"]="Knetik"
        params["last_name"]="Knetik"
        params["shipping_address_line1"]="10"
        params["shipping_address_line2"]="10" // optional
        params["city"]="City"
        params["postal_state_id"]="163"
        params["zip"]="32766"
        params["email"]="[email protected]"
        params["country_id"]="225"
        params["phone_number"]="+11111111"
        params["order_notes"]="notes"

       var cartObject=CartService()
        cartObject.modifyShippingAddress(params,itemID:cartID)
            {
                (result:AnyObject,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    print(errormessage)
                }else
                {
                    print(result)
                }

        }

    }

购物车配送地址

您可以通过调用 checkShippable 函数来检查购物车是否需要配送

#!swift

func testCheckShippable()
    {
  var params=Dictionary<String,String>()
        var cartObject=CartService()
        cartObject.checkShippable(params,itemID:self.cartNumber)
            {
                (shippable:Shippable,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println(errormessage)
                }else
                {
                    print(shippable.getCartId())
                }

        }

    }

评论

添加评论 ###

您可以通过向 addComment 函数传递 itemID 和评论字符串来对某个项目添加评论。

#!swift

func testAddCommentToItem()
    {
       var params=Dictionary<String,String>()
        params["item_id"]="4"
        params["comment"]="hello"

        var comment = CommentService()
        comment.addComment(params)
            {
                (result:AnyObject,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println("testAddCommentToItem Failed")
                    println(errormessage)
                }else
                {
                    println("testAddCommentToItem PASS")
                    // Valid Response
                }
                println(result)
        }


    }

删除评论

您可以通过将评论 ID 传递给 deleteComment 函数来删除您自己的评论。

#!swift

func testDeleteComment()
    {
        var params=Dictionary<String,String>()
        params["id"]=self.comment_id

        var comment = CommentService()
        comment.deleteComment(params)
            {
                (result:AnyObject,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println("testAddCommentToItem Failed")
                }else
                {
                    println("testAddCommentToItem PASS")
                    // Valid Response
                }
                println(result)
        }

    }

评论列表 ###

您可以通过向 commentsList 函数传递项目 ID 来获取给定项目中所有当前附加的评论列表。

#!swift

 func testItemCommentsList()
    {
        var params=Dictionary<String,String>()
        params["id"]="4"
        var comment = CommentService()
        comment.commentsList(params)
            {
                (comments:Array<Comment>,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println("testItemCommentsList Failed")
                    println(errormessage)
                }else
                {
                        if(comments.count>0){
                            var comment=comments[comments.count-1] as Comment
                            self.comment_id=String(comment.getCommentId())
                            println("comment id is "+self.comment_id)
                    }
                    // Valid Response
                }

        }

    }

朋友关系

添加朋友

您可以通过向 addFriend 函数传递目标用户 ID 和您的用户 ID 来将一个朋友添加到您的好友列表。

#!swift

func testAddFriend()
    {
        var params=Dictionary<String,AnyObject>()
        params["target_user_id"]=7224 // your friend ID 
        params["user_id"]=7700  // your user ID you can Get it by calling GetUserID

         var friendShip = FriendshipService()

        friendShip.addFriend(params)
            {
                (result:AnyObject,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println("testAdd Friend Failed")
                }else
                {
                    println("testAdd Friend PASS")
                    // Valid Response
                }
                println(result)
        }

    }

获取朋友 ###

您可以通过向 getFriends 函数传递页面、限制和您的用户 ID 来获取您的好友列表。

#!swift

func testGetFriend()
    {
        var params=Dictionary<String,AnyObject>()
        params["page"]=1
        params["limit"]=20
        params["user_id"]=1

       var friendShip = FriendshipService()

        friendShip.getFriends(params)
            {
                (friends:Friend,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println("testGetFriend Failed")
                }else
                {
                    println("testGetFriend PASS")
                    var friendsList=friends.getFriends()
                    var invitedList=friends.getInvites()

                    // Valid Response
                }
        }

    }

搜索朋友

您可以通过向 searchFriends 传递搜索字符串来搜索一个朋友,如下所示。

#!swift

func testSearchFriend()
    {
        var params=Dictionary<String,AnyObject>()
        params["search"]="search string"
        params["page"]=1
        params["limit"]=20
        params["user_id"]=7700

        var friendShip = FriendshipService()

        friendShip.searchFriends(params)
            {
                (friends:Friend,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println("testGetFriend Failed")
                }else
                {
                    println("testGetFriend PASS")
                    var friendsList=friends.getFriends()
                    var invitedList=friends.getInvites()

                    // Valid Response
                }
        }

    }

删除朋友

您可以通过将目标用户 ID 传递给 removeFriend 函数来删除您的朋友。

#!swift

func testRemoveFriend()
    {
        var params=Dictionary<String,AnyObject>()
        params["target_user_id"]=7224 // Target user ID to be deleted 
        params["user_id"]=7700 // your user ID
        var friendShip = FriendshipService()
         friendShip.removeFriend(params)
            {
                (result:AnyObject,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println("testAddCommentToItem Failed")
                }else
                {
                    println("testAddCommentToItem PASS")
                    // Valid Response
                }
                println(result)
        }

    }

收藏

添加收藏

您可以通过向 addFavoriteItem 函数传递 itemID 来将一个项目添加到您的收藏列表。

#!swift

func testAddFavorite()
    {
        var params=Dictionary<String,AnyObject>()
        params["id"]=1   // item ID should be int value 
        var favorite = FavoriteService()

        favorite.addFavoriteItem(params)
            {
                (result:AnyObject,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println("Test Add Favorite Failed")
                }else
                {
                    println("Test Add Favorite PASS")
                    // Valid Response
                }
                println(errormessage)
        }

    }

删除收藏

您可以通过将 itemID 传递给 deleteFavorite 函数来从收藏列表中删除您的项目。

#!swift

func testDeleteFavorites()
    {
        var params=Dictionary<String,AnyObject>()
        params["id"]=1  // item ID to be Deleted 

         var favorite = FavoriteService()

        favorite.deleteFavorite(params)
            {
                (result:AnyObject,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println("test Delete Favorites Failed")
                }else
                {
                    println("test Delete Favorites PASS")
                    // Valid Response
                }
                println(errormessage)
        }

    }

收藏列表 ###

您可以通过调用 getFavorites 获取您的收藏列表。

#!swift

func testGetFavorites()
    {
        var params=Dictionary<String,AnyObject>()
         var favorite = FavoriteService()
         favorite.getFavorites(params)
            {
                (favorites:Array<Favorite>,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println("test Get Favorites Failed")
                }else
                {
                    var favist=favorites

                    println("test Get Favorites PASS")
                    // Valid Response
                }
                println(errormessage)
        }

    }

商店

您可以通过向 getPage 函数传递 {terms 或相关}、限制和页面参数来获取您的商店页面,如下所示。

#!swift

func testStoreGetPage()
    {
        var params=Dictionary<String,AnyObject>()

        params["terms"]=["test Term_1426094958_462"];  //optional if related provided
        //params["related"]=["b,"a"]  // optional if terms provided 
        params["limit"]=10;
        params["page"]=1; 
        params["useCatalog"]=true; //optional 
        params["fullObject"]=true;  // optional 

       var store = Store()

        store.getPage(params)
            {
                (pages:Array<Page>,errormessage:String,issuccess:Bool) in
                if(!issuccess)
                {
                    println("testStoreGetPage Failed")
                }else
                {
                    var storeArray=pages
                    println(pages)

                    println("testStoreGetPage PASS")
                    // Valid Response
                }
        }

    }