CieloSilentOrderPost 1.0.4

CieloSilentOrderPost 1.0.4

Braspag维护。



Silent Order Post SDK iOS

Introdução

Silent Order Post SDK 是 Cielo 为商家提供的一种集成方式,用于安全地传输支付数据,并保持对结账体验的完全控制。

此方法可以将您的客户的支付数据以安全的方式直接发送到我们的系统。支付数据,例如卡号和有效期,将存储在符合 PCI DSS 3.2 认证的 Cielo 环境中。

功能

  • 通过 SDK 在您的结账页面定义的字段直接捕获支付数据到 Cielo 系统中。
  • 兼容 Gateway Pagador 提供的所有支付方式(国内和国际)
  • 减少 PCI DSS 范围
  • 保持对结账体验的完全控制,同时保持您的品牌的外观和感觉

集成

1. 获取AccessToken

为了使用SDK,需要从Cielo的认证API(oAuth)生成AccessToken。

这是通过向以下端点发送POST请求来完成的:

https://transactionsandbox.pagador.com.br/post/api/public/v1/accesstoken?merchantid={mid}

在这里,需要将{mid}替换成你在平台 Pagador da Cielo 上的 商店 MerchantID

示例

https://transactionsandbox.pagador.com.br/post/api/public/v1/accesstoken?merchantid=00000000-0000-0000-0000-000000000000

请求

POST /v1/accesstoken?merchantid={mid}
属性 描述 类型 大小 必填
mid Pagador上的商店标识符 Guid 36

响应

作为响应,商店会收到一个json(HTTP 201 Created),其中包含了一些信息,如凭证(AccessToken)

属性 描述 类型 大小 格式
MerchantId Pagador上的商店标识符 Guid 36 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
AccessToken 访问令牌。出于安全考虑,此凭证将允许商店在一个默认设置在响应中的时间范围内(默认为20分钟)内保存一张卡片,通过ExpiresIn属性。哪个先发生将使同一凭证失效,以用于未来使用。 文本 NjBhMjY1ODktNDk3YS00NGJkLWI5YTQtYmNmNTYxYzhlNjdiLTQwMzgxMjAzMQ==
Issued 生成时间和日期 文本 AAAA-MM-DDTHH:MM:SS
ExpiresIn 过期日期和时间 文本 - AAAA-MM-DDTHH:MM:SS
Por questões de segurança, será requerido obrigatoriamente o cadastro de um IP válido do estabelecimento na Cielo. Caso contrário a requisição não será autorizada (HTTP 401 NotAuthorized). Por favor, identifique qual será o IP de saída que acessará a API e na sequência solicitar o cadastro do mesmo através do canal de atendimento Cielo

2. 使用SDK和发送卡片数据

一旦获得AccessToken后,需要实例化SDK并发送卡片数据。

要使用SDK,需要将SilentOrderPost.framework库包含到您的项目中。

2.1 安装

CocoaPods是一个用于Xcode项目的依赖性管理器。有关其使用和安装的更多信息,请访问官方网站。

要在项目中使用CocoaPods的Silent Order Post SDK,请将以下代码添加到您的项目的Podfile中:

pod 'CieloSilentOrderPost'

在将Silent Order Post添加到Podfile后,只需在项目目录的终端中运行以下命令:pod install

完成这些步骤后,我们可以继续进行使用示例。

3. 如何使用

3.1 导入

import CieloSilentOrderPost

3.2 - 实例化SDK

private var sdk: SilentOrderPostProtocol!

override func viewDidLoad() {
    super.viewDidLoad()
    
    sdk = SilentOrderPost.createInstance(environment: .production)
}

需要指定想要使用的环境 - 沙盒(开发)或生产。

环境 枚举
沙盒(开发) Environment.sandbox
生产 Environment.production

2.3 - 提供AccessToken

获取AccessToken后,是时候发送卡片数据了。发送卡片数据时,使用方法sendCardData

sdk.sendCardData(
    accessToken: accessToken
    cardHolderName: "Cliente Cielo",
    cardNumber: "4000000000001091",
    cardExpirationDate: "10/2029",
    cardCvv: "621",
    enableBinQuery: true
    onValidation: { (results) -> Void? in 
        // tratar o retorno da validação aqui
    },
    onSuccess: { (result) in 
        // manipular o paymentToken recebido aqui
    },
    onEror: { (error) -> Void? in
        // manipular o erro aqui
    }
)

注意:您还可以启用binQuery(默认为false)。

2.4 - 发送卡片数据

属性 描述
cardHolderName 信用卡持卡人姓名
cardNumber 信用卡/借记卡号
cardExpirationDate 信用卡/借记卡有效期(DD/YYYY)
cardCvv 信用卡/借记卡安全码
onError 用于处理错误情况的回调。将返回错误代码和描述
onSuccess 用于成功情况的回调。将返回PaymentToken,如果请求卡验证,还将返回卡信息。出于安全原因,此PaymentToken仅可用于授权。处理后将失效。
onValidation 用于验证的回调(数据错误)。将返回错误字段的详细信息。

2.5 - 回调返回详情

onValidation

public class ValidationResults: NSObject, Codable {
    public var field, message: String
    
    @objc init(field: String, message: String) {
        self.field = field
        self.message = message
    }
}

如果发生,此回调将返回一个包含ValidationResults类型对象的列表。

onError

public class ErrorResult: NSObject, Codable {
    public var errorCode, errorMessage: String
    
    init(errorCode: String, errorMessage: String) {
        self.errorCode = errorCode
        self.errorMessage = errorMessage
    }
}

如果发生,此回调将返回一个ErrorResult类型的对象。

onSuccess

public class SuccessResult: NSObject, Codable {
    public var paymentToken,
                brand,
                foreignCard,
                binQueryReturnCode,
                binQueryReturnMessage: String?
    
    init(paymentToken: String,
         brand: String,
         foreignCard: String,
         binQueryReturnCode: String,
         binQueryReturnMessage: String) {
        
        self.paymentToken = paymentToken
        self.brand = brand
        self.foreignCard = foreignCard
        self.binQueryReturnCode = binQueryReturnCode
        self.binQueryReturnMessage = binQueryReturnMessage
    }
}

如果发生,此回调将返回一个SuccessResult类型的对象。