PaycellSDK 0.9.13

PaycellSDK 0.9.13

测试已测试
语言语言 Obj-CObjective C
许可证 Apache-2.0
发布上次发布2019年9月

Batuhan Erdogan 维护。



PaycellSDK 0.9.13

  • Turkcell 和 PaycellSDK 共同提供

Paycell iOS SDK

CocoaPods CocoaPods CocoaPods

当用户在用户应用中的支付步骤中选择“我想要使用 Paycell 进行支付”时,会通过 SDK 将用户导向 Paycell 的界面,允许用户通过已注册的支付方式或添加新的支付方式来完成支付。该 SDK 的目的是通过 Paycell 完成支付过程,并将交易结果信息返回给用户应用程序。

安装

将用于信用卡扫描的相机授权信息文本添加到应用程序的 plist 文件中(NSCameraUsageDescription)。

<key>NSCameraUsageDescription</key>
<string>Kullaniciya gosterilecek aciklama metni</string>

执行 App Transport Security 设置。

  <key>NSAppTransportSecurity</key>
  <dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
    <key>NSExceptionDomains</key>
    <dict>
      <key>services.paycell.com.tr</key>
      <dict>
        <key>NSExceptionAllowsInsecureHTTPLoads</key>
        <true/>
        <key>NSIncludesSubDomains</key>
        <true/>
      </dict>
      <key>omccstb.turkcell.com.tr</key>
      <dict>
        <key>NSExceptionAllowsInsecureHTTPLoads</key>
        <true/>
        <key>NSIncludesSubDomains</key>
        <true/>
      </dict>
    </dict>
  </dict>

然后选择以下两种方法之一来完成集成。

CocoaPods 集成:

可以通过将以下内容添加到 Podfile 中来执行集成。

  pod 'PaycellSDK'
手动集成:

要将Paycell SDK添加到项目中,请将其中的PaycellSDK.framework添加到项目内。

支付流程

应用;
  • 创建支付请求
  • 初始化SDK并将支付请求发送到SDK
  • 等待支付状态
PaycellSDK;
  • 在支付流程中显示UI元素,并获取用户支付信息
  • 将支付结果发送到应用

样例代码

  • 必须设置PaycellPaymentConfigurator。
| ---------------------------------------------------------------------------------------- |
| Parametre adi | Aciklama                                                                 |
| ------------- | ------------------------------------------------------------------------ |
| merchantCode  | Uye isyeri icin paylasilacaktir.                                         |
| terminalCode  | Uye isyeri icin paylasilacaktir.                                         |
| secureCode    | Uye isyeri icin paylasilacaktir.                                         |
| language      | SDK’nin dil degeridir.                                                   |
| hostAccount   | Uye isyeri uygulamasinda odemeyi yapan kullaniciyi ifade eden degerdir.  |
| merchantLogo  | SDK’da kullanilacak logodur.                                             |
| environment   | Demo, Test ve Live ortam parametresi                                     |
| ---------------------------------------------------------------------------------------- |
    [[PaycellPaymentConfigurator sharedConfigurator] setMerchantCode:@”1234”
                                                     andTerminalCode:@”12345”
                                                       andSecureCode:@”12345”
                                                         andLanguage:@”tr”
                                                      andHostAccount:@”[email protected]”
                                                     andMerchantLogo:[UIImage imageNamed:@"merchantLogo"]
                                                      andEnvironment:PaycellEnvironmentTest];
 Not: Uye isyeri uygulamasinda kullanici dogrulamasi mail adresi ile yapiliyorsa -hostAccount- alaninda mail adresi gonderilebilir.
  • 如果创建支付请求之前有针对分期付款或DCB的特殊支付金额,则必须以PaycellInstallment的形式创建它们。
| ----------------------------------------------------------------------------- |
| Parametre adi         | Aciklama                                              |
| --------------------- | ----------------------------------------------------- |
| totalAmount           | Taksit objesinin toplam tutari                        |
| installmentCount      | Taksit objesinin kac taksit olacagi bilgisi           |
| installmentCardBrand  | Taksit objesinin hangi kart tipi icin gecerli oldugu  |
| installmentLineId     | Her bir taksit objesi icin tekil kullanilacak deger   |
| installmentMethodType | Taksit objesinin DCB veya CREDIT_CARD oldugu bilgisi  |
| ----------------------------------------------------------------------------- |
    PaycellInstallment* installment = [[PaycellInstallment alloc] initWithTotalAmount:@"90"
                                                                     installmentCount:2
                                                                 installmentCardBrand:PaycellInstallmentBrand_AXESS
                                                                    installmentLineId:@"1"
                                                                installmentMethodType:@"CREDIT_CARD"];
  • 必须创建PaycellPayment对象。
| ----------------------------------------------------------------------- |
| Parametre adi         | Aciklama                                        |
| --------------------- | ----------------------------------------------- |
| amount                | Odemenin toplam tutari                          |
| currency              | Odemenin para birimi (TL icin 99 gonderilmeli)  |
| securityOption        | Odemenin 3d veya 2d oldugu bilgisi              |
| referenceNumber       | Odemenin referans numarasi                      |
| installmentPlans      | Odemenin destekledi taksitler listesi           |
| ----------------------------------------------------------------------- |
    PaycellPayment* payment = [[PaycellPayment alloc] initWithAmount:AMOUNT
                                                            currency:@”99”
                                                      securityOption:@”NON_THREED_SECURE”
                                                     referenceNumber:REFERENCE_NUMBER
                                                    installmentPlans:@[installment1, installment2, installment3]];
  • 必须在接收支付的应用页面上添加“PaycellPaymentDelegate”作为代理。

  • 通过初始化PaycellPaymentViewController并在屏幕上展示,来显示。

    PaycellPaymentViewController* paycellVC = [[PaycellPaymentViewController alloc] initWithPayment:payment 
                                                                                           delegate:self];

    [self presentViewController:paycellVC
                       animated:Yes
                     completion:nil];
  • 在PaycellPaymentDelegate代理中等待响应,并使用dismissViewControllerAnimated:completion:确保关闭PaycellPaymentViewController。

Paycell错误代码

  • PaycellErrorCodeUserCancelled -> 如果用户在未完成SDK操作时退出,则返回的错误代码
  • PaycellErrorCodeException -> 在SDK内部遇到异常时返回的错误代码
  • PaycellTimeoutCodeException -> 应用程序超时时返回的错误代码
  • PaycellTimeoutAfterPaymentCodeException -> 在支付操作完成后超时时返回的错误代码

附加信息

  • 对于土耳其语,应发送语言参数“tr”。
  • MerchantCode、TerminalCode和SecureCode应每个商家会员共享。
  • 发送InstallmentMethodType时应为“CREDIT_CARD”或“DCB”。
  • LineId应每行唯一使用。
  • 如果希望针对不同支付方式的销售金额使用不同的价格,对于相关的支付方式,在installmentPlan变量中添加count=1的信息。
  • Amount字段中的最后两位数字表示小数部分。
  • 对于15.55里拉,应发送1555。
  • 对于13.00里拉,应发送1300。
  • 发送SecurityOption时应为“THREED_SECURE”或“NON_THREED_SECURE”。
  • 对于里拉(TL)货币,应发送“99”。