Herkese açık kaynaklar tekrarlanabilir entegrasyon modellerine odaklanır. Kısıtlı SDK'lar, donanım yazılımları ve belgeler onaylı dağıtım kanallarında kalır.
Yöntemleri, sürümleri ve sınırlamaları açıklanmış karşılaştırılabilir cihaz testleri.
- Onaylı bir güvenlik sahibi ve tanımlanmış bir test donanımı veya kart seti.
- Anahtarlar, PIN'ler, APDU verileri, sertifikalar ve ödeme ana makinesi entegrasyonu için net bir sınır.
- Düzenlenmiş günlüklerin bulunduğu ve müşteri kimlik bilgilerinin bulunmadığı özel bir test ortamı.
Yayıncılık standardı
Kurumsal Android entegrasyonlarını sürümlendirilmiş kanıtlarla oluşturun ve doğrulayın.
Herkese açık kaynaklar tekrarlanabilir entegrasyon modellerine odaklanır. Kısıtlı SDK'lar, donanım yazılımları ve belgeler onaylı dağıtım kanallarında kalır.
- 01
Kartı ve güvenlik sınırını adlandırın
ICC, PSAM, PICC, manyetik şerit, PIN ped ve güvenlik öğesi farklı iş akışlarıdır. Her şeyi “kart desteği” olarak adlandırmak yerine, kart türünü, yuvasını, protokolünü, sahibini ve hedef cihazını kaydedin.
- 02
Sırları demo dışında saklayın
Genel modelde opak test tutamaçlarını ve düzeltilmiş sonuçları kullanın. Anahtarlar, PIN bloklar, izleme verileri, KSN değerleri, sertifikalar ve müşteri demirbaşları onaylı özel entegrasyonda kalır.
- 03
Aktivasyonu yapın ve simetrik bırakın
Bir oturumu etkinleştirin, yanıt uzunluğunu ve durumunu doğrulayın, ardından son yolda devre dışı bırakın. Başarısız bir işlem, kartı veya güvenli modülü açık bırakmamalıdır.
- 04
Donanım taleplerinden önce güvenlik incelemesini zorunlu kılın
Yerel SDK örnekleri modül keşfi için faydalıdır ancak uyumluluk, ödeme onayı veya üretim uyumluluğu sağlamaz. Bu iddiaların ayrı bir delil kaydına ihtiyacı var.
Örnek uygulamalar / Kotlin
SDK ve API kalıpları
Bu kasıtlı olarak opak bir test tanıtıcısı kullanır. Bu bir ödeme uygulaması değildir ve anahtar veya kimlik bilgisi içermez.
data class SecureRequest(
val operation: String,
val testHandle: String,
)
sealed interface SecureResult {
data object Accepted : SecureResult
data class Declined(val reason: String) : SecureResult
data class Failed(val reason: String) : SecureResult
}
interface SecurePort {
suspend fun execute(request: SecureRequest): SecureResult
}
suspend fun executeApprovedOperation(port: SecurePort): SecureResult =
runCatching {
port.execute(SecureRequest("approved-test", "fixture-01"))
}.getOrElse {
SecureResult.Failed("secure-operation-failed")
}SDK dağıtımı
Yayın kapısı
Yeniden dağıtım izni ve desteklenen kapsam kaydedilene kadar hiçbir üretici ikili dosyası, API referansı, ürün yazılımı veya kaynak kod örneği yayınlanmaz.
Yanıtı genel iş akışından atın, düzeltilmiş bir hatayı kaydedin ve oturumu serbest bırakın.
Testi durdurun, etkilenen kimlik bilgilerini döndürün ve yapıtı test ortamından kaldırın.
Uyumluluk kaydını bölün ve cihaza özel bir güvenlik incelemesi isteyin.
Kanıt durumları
Yöntemleri, sürümleri ve sınırlamaları açıklanmış karşılaştırılabilir cihaz testleri.
- 01
Onaylanmış test kimlik bilgilerini ve donanımlarını yalnızca özel bir ortamda kullanın.
- 02
Etkinleştirmeyi, başarıyı, zaman aşımını, başarısızlığı ve sürüm yollarını doğrulayın.
- 03
Herhangi bir raporu veya örneği paylaşmadan önce düzeltilmiş günlük taraması yapın.
- 04
Güvenlik sahibini, cihazı, donanım yazılımını, SDK ve onay kapsamını kaydedin.
Kaynaklar
SDK ve API kalıpları
Yeniden dağıtım izni ve desteklenen kapsam kaydedilene kadar hiçbir üretici ikili dosyası, API referansı, ürün yazılımı veya kaynak kod örneği yayınlanmaz.