Paycell iOS SDK
当用户在用户应用中的支付步骤中选择“我想要使用 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”。