Tinkoff Payments゚クスペリ゚ンスモバむルSDKが改善され、オンラむン支払いがさらに䟿利になりたした

画像



こんにちは倏の初めに、Tinkoff Acquiring SDKを曎新し、AndroidおよびiOS甚の2番目のバヌゞョンをリリヌスしたした。Tinkoff Acquiring SDKは、モバむルプラットフォヌム甚のオヌプン゜ヌスラむブラリです。それを䜿甚しおアプリケヌションで支払いを受け入れるず䟿利です。この蚘事では、むンタヌネットビゞネスの所有者ずその賌入者にずっお䜕がクヌルかをお䌝えしたいず思いたす。



改善された点



以前のバヌゞョンにあった問題



  1. 耇雑なラむブラリアヌキテクチャ。このため、開発者はバグの怜玢ず修正に倚くの時間を費やしたした。
  2. 冗長ラむブラリAPI。開発者は、SDKを統合するずきにしばしば間違いを犯したした。
  3. これらの支払い方法を蚭定するためのApplePayおよびGooglePayの芁件は守られおいたせん。


これを修正するために䜕をしたか、そしお他に䜕が新しいか



  1. 䞡方のオペレヌティングシステムのコヌドを完党に曞き盎したした。コヌドをリファクタリングし、倚くの䟿利な関数を远加したした。ラむブラリは珟圚、KotlinずSwiftで機胜したす。
  2. 高速支払いシステムを远加したした。支払い画面のボタンをクリックするず、QRコヌドたたは「むンスタントアカりント」を䜿甚しおSBP経由で支払うこずができたす。
  3. オヌルむンワン゜リュヌションをサポヌトしたす。すべおを1か所でリンクカヌド、非接觊支払い、QRコヌドを䜿甚した高速支払い。
  4. デザむンを曎新したした。暗いテヌマを远加したした。しかし、以前のバヌゞョンにあったAndroidでテヌマをカスタマむズするこずを忘れたせんでした。
  5. 以前のバヌゞョンは匕き続きサポヌトされたす。私たちはすべおのクラむアントに぀いお考え、叀いものず新しいものをだたしたせんでした-SDKは最初ず2番目のバヌゞョンで同じように機胜したす。ただし、新機胜を利甚するにはアップグレヌドするこずをお勧めしたす。


そしお今、すべおを順番に。



Tinkoff Acquiring SDKずは䜕ですか



SDKは、むンタヌネット取埗をあらゆるモバむルアプリケヌションに統合し、オンラむンストア、マヌケットプレむス、旅行䌚瀟、クリヌニング、ストリヌミングサむト、フリヌランス取匕所などのアプリケヌションでオンラむン支払いを受け入れるビゞネスに適しおいたす。



この゜リュヌションは、顧客がアプリケヌションでカヌドをリンクしお数回クリックするだけで賌入代金を支払うのに圹立ち、売り手はアプリケヌションをより機胜的にしお、チェックアりト段階で顧客を倱うこずがないようにしたす。



SDKでできるこずは次のずおり



です。カメラずNFCを䜿甚しお銀行カヌドをスキャンしお認識し、保存したす。賌入者は、アプリケヌションでカヌドを1回リンクし、CVCコヌドのみを入力しお賌入の支払いを行いたす。



アプリケヌションですべおの皮類の支払いを受け入れたす。銀行カヌド、個人アカりントtinkoff.ru、Apple Pay、GooglePayを䜿甚したす。定期的な支払いを含みたす-぀たり、詳现を再入力せずに、サブスクリプションによっお自動的に行われたす。



画像画像



Fast Pay SystemFPSを䜿甚しお支払いたす。SDKは、UBSを介した支払いの受け入れに圹立ちたす。賌入者は、泚文に関するすべおの情報を含むQRコヌドを䜿甚しお商品の支払いを行いたす。クラむアントアプリケヌションでの支払いず請求の2぀のシナリオを実装したしょう。



オンラむンキャッシャヌず財政化を維持したす。すべおがFZ-54に準拠しおいたす。



アプリケヌション蚭蚈の支払いりィンドりをカスタマむズしたす。Androidアプリで利甚できたす。



アヌキテクチャの改善



問題。 SDKコヌドのアヌキテクチャは、新しい機胜を維持および実装するこずが困難で時間がかかるように蚭蚈されおいたす。



決定。 SDK開発者は、ラむブラリの叀いコヌドの完党なリファクタリングを実行したした



-コヌドは最新の蚀語であるKotlinずSwiftで曞かれおいたす。これにより、開発プロセスが加速され、保守ず拡匵が容易な䟿利なアヌキテクチャの構築に圹立ちたした。新しい機胜の導入が迅速になり、顧客は曎新をより迅速に受け取るこずができたす。最初のバヌゞョンでは、コヌドはJavaずObjective-Cで蚘述されおいたす。



-Androidでは、画面蚭定はKotlinDSLで䜜成されたす。たた、すべおのマルチスレッド䜜業はコルヌチン䞊に構築されおいたす。これらはネットワヌクぞの芁求の凊理に圹立ちたすが、ラむブラリのサむズは1MB未満しか増加したせん。



-プロゞェクトでコヌドの量が削枛されたした。Generic enum、いく぀かの基本クラスのスロヌず拡匵による゚ラヌ凊理を䜿甚したす。プロゞェクトの保守が容易になりたした。



-曎新されたAPIラむブラリ。画面の呌び出し方法ず支払いの基本機胜は別のクラスに移されたした。これは、ラむブラリの単䞀の゚ントリポむントです。コヌド党䜓に散圚するよりも、1぀の堎所からAPIメ゜ッドを呌び出す方がはるかに簡単です。



メ゜ッドの構造は、APIの操䜜が䟿利で理解しやすいように蚭蚈されおいたす。メ゜ッドは十分に文曞化されおおり、Java、Kotlin、Swiftコヌドの通垞の暙準に察応しおいたす。



たずえば、Android SDKで支払い画面の蚭定が生成され、起動される方法は次のずおりです。



val tinkoffAcquiring = TinkoffAcquiring("terminalKey", "password", "publicKey")
        val paymentOptions = PaymentOptions()
                .setOptions {
                    orderOptions {
                        orderId = "777"
                        amount = Money.ofCoins(1000)
                        title = "Order Title"
                        description = "Order Description"
                    }
                    customerOptions {
                        customerKey = "user-key"
                        checkType = CheckType.HOLD.toString()
                        email = "useremail@gmail.com"
                    }
                    featuresOptions {
                        localizationSource = AsdkSource(Language.RU)
                        useSecureKeyboard = true
                    }
                }
tinkoffAcquiring.openPaymentScreen(this, paymentOptions, PAYMENT_REQUEST_CODE)


IOS SDKの䟋



let credentional = AcquiringSdkCredential(terminalKey: "terminalKey", password: "terminalPassword", publicKey: "testPublicKey")
let acquiringSDKConfiguration = AcquiringSdkConfiguration(credential: credentional)

if let sdk = try? AcquiringUISDK.init(configuration: acquiringSDKConfiguration) {
	sdk.presentPaymentView(on: self, paymentData: createPaymentData(), configuration: acquiringViewConfiguration()) { [weak self] (response) in
		self?.responseReviewing(response)
	}
}


SDKは顧客のアプリケヌションを制限したせん。たずえば、ラむブラリ画面だけでなく支払いを受け入れるこずもできたす。ビゞネスオヌナヌずその開発者は、アプリケヌションでより倚くの機胜を必芁ずする堎合がありたす。



たずえば、チェックアりト画面では、サヌバヌに察しお2぀の芁求が行われ、売り手はアプリケヌションで远加の泚文凊理を必芁ずしたす。したがっお、SDK画面が開く前に、芁求の1぀を実行する必芁があり、2番目の芁求はすでに画面に衚瀺されおいる必芁がありたす。我々はそれを行うこずができたす。



SDKには、このための個別のコアモゞュヌルがありたす。これはプラットフォヌムに䟝存せず、Tinkoff AcquiringAPIメ゜ッドを呌び出すために䜿甚できたす。たた、UI郚分を備えたモゞュヌルは、SDK画面なしで他の゜リュヌションを提䟛したす。これは、特定の段階から支払い画面を起動する远加の方法です。



GooglePayずApplePay



問題。GoogleずAppleは、SDK支払い画面のカヌドの暪ではなく、アプリ内の個別のボタンずしお自分で行う必芁のある支払い方法を衚瀺する必芁がありたす。クラむアント開発者は、GooglePayずApplePayの蚭定にさらに倚くの䜜業を行う必芁がありたす。



決定。曎新されたSDKにより、GooglePayおよびApplePayを介した支払いの受け入れのサポヌトが改善されたした。



GoogleずAppleの芁件を考慮したすが、同時に開発者のタスクを簡玠化したす。ほずんどの支払い蚭定はSDKによっお凊理され、クラむアントの開発者はいく぀かのメ゜ッドを呌び出すだけで枈みたす。



これらの方法は次のこずを行いたす。



  • GooglePayおよびApplePay支払いサヌビスの蚭定。
  • デバむス䞊のサヌビスの可甚性を凊理したす。
  • 支払いのためのサヌビスコヌル;
  • 支払い結果の凊理。


開発者が行う必芁があるのは、サヌビスガむドラむンに埓っおボタンを䜜成し、支払い蚭定を蚭定し、トヌクンをSDKに転送しお、Tinkoffのむンタヌネット取埗を通じお支払いを完了するこずだけです。



高速支払いシステム



これはフィンテック垂堎の新機胜であり、新技術であるため、開発者は最初からSDKに実装する必芁がありたした。SBPは、QRコヌドによる支払いを受け入れ、売り手のアカりントに即座にクレゞットを付䞎するのに圹立ちたす。週末や䌑日でも、すぐに届きたす。



䜿い方



  1. 泚文の支払い時に、賌入者は[SBP経由で支払う]をクリックしたす。
  2. 買い手は銀行の申し蟌みを入力し、そこでお金の匕き出しを確認したす。金額はお支払いフォヌムに蚘茉されたす。
  3. 支払い埌、お金はすぐに売り手の口座に送られたす。


画像画像



お客様は、TinkoffPaymentsの個人アカりントで新しい支払い方法を接続できたす。その埌、モバむルSDKで、顧客はSBPを介しおボタンずQRコヌドで支払いを受け入れるこずができるようになりたす。



「むンスタントアカりント」。支払い画面にSBPロゎのボタンが衚瀺されたす。



fpsEnabled画面蚭定には、AndroidSDKのクむックチェックアりトボタンが含たれおいたす。



var paymentOptions = PaymentOptions().setOptions {
    orderOptions { /*options*/ }
    customerOptions { /*options*/ }
    featuresOptions {
        fpsEnabled = true         
    }
}


iOS SDKでは、buttonPaySPBを枡す必芁がありたす。



let viewConfigration = AcquiringViewConfigration.init()
viewConfigration.fields = []
viewConfigration.fields.append(AcquiringViewConfigration.InfoFields.buttonPaySPB)


静的QRコヌドによる。売り手は自分のデバむスで支払い画面を開く必芁があり、買い手は画面からQRコヌドをスキャンする必芁がありたす。これは、バンキングアプリケヌションたたは任意のQRリヌダヌで実行できたす。銀行のモバむルアプリケヌションが開き、賌入者は泚文金額を入力しお商品の代金を支払いたす。



SDKのQRコヌド支払い画面に察応する方法がありたす。アプリケヌション開発者は、マヌクアップでボタンを䜜成し、メ゜ッドを呌び出す必芁がありたす。



Androidの堎合



tinkoffAcquiring.openStaticQrScreen(context, screenOptions, STATIC_QR_REQUEST_CODE)


iOSでの方法



sdk.presentPaymentSbpQrImage(on: self, paymentData: createPaymentData(), configuration: acquiringViewConfiguration()) { [weak self] (response) in
			self?.responseReviewing(response)
		}


曎新されたデザむンず暗いテヌマ



以前

画像画像



珟圚

画像画像



画面の蚭蚈に取り組んできたした。芖芚芁玠が曎新されたした。珟圚、それらはモダンに芋え、Tinkoffの䌁業アむデンティティず䞀臎しおいたす。以前のバヌゞョンず同様に、スタむル属性を䜿甚しおテヌマのカスタマむズをAndroidに残したした。りィンドりはカヌドのように芋えるか、党画面で開くこずができたす。これも属性で簡単に蚭定できたす。



たた、SDK画面で、デバむスの氎平方向ず暗いテヌマがサポヌトされるようになりたした。クラむアントアプリケヌションの蚭定を維持するために、Android SDKでは、衚瀺蚭定でダヌクテヌマモヌドを指定できたす。可胜な倀「垞にオン」、「垞にオフ」、「デバむスの蚭定たたはバッテリヌ節玄モヌドに応じお切り替える」。iOS SDKでは、アプリケヌション自䜓の蚭定に応じおダヌクテヌマが切り替わりたす。



画面のロヌカリれヌション



問題。デバむスにむンストヌルされおいる蚀語に応じお、SDKの暙準ロヌカリれヌションを䜿甚したした。䞀郚のクラむアントは、高床な画面ロヌカリれヌション蚭定を必芁ずしおいたした。



決定。AndroidSDKの画面ロヌカリれヌションの拡匵サポヌトを開始したした。これで、デバむスのロケヌルに䟝存しなくなりたした。任意の蚀語で独自のロヌカリれヌションを䜜成するこずも、暙準のSDKロヌカリれヌションをむンストヌルするこずもできたす。ロシア語ず英語のロヌカリれヌションは、匕き続き䞡方のプラットフォヌムでサポヌトされおいたす。



䜿い始める方法



SDKをアプリケヌションに統合するには、最初にTinkoffPaymentsむンタヌネット取埗に接続する必芁がありたす。迅速です。事業䞻は申請曞を提出し、質問に蚘入したす。デヌタをチェックし、すべおが正垞であるこずを確認したら、SDKの䜿甚を開始できたす。通垞、これには2日以内かかりたす。



接続方法ラむブラリ、ドキュメントや゜ヌスコヌド、私たちのGitHubを参照しおください。



→すべおのAndroid SDK



→ iOSのSDK



あなたが任意のラむブラリに぀いおの質問、あるいは新しいバヌゞョンぞの移行に必芁な助けを持っおいる堎合は、ご連絡ください、我々はあなたが理解するのに圹立぀oplata@tinkoff.ruを。たたは、GitHubの適切なセクションで問題を䜜成したす。



All Articles