Как использовать Simplify Commerce Payment API в Android?

Я пытаюсь создать платеж с токена карты в моей программе Android, как показано в ссылке ниже:

Пример использования платежа api

Я не могу создать объект «Оплата» с помощью Simplify Commerce Android SDK, поэтому я включил SDK для java-платежей, добавив эту строку в мою структуру gradle

compile 'com.simplify:payments-sdk-java:1.3.0' 

После добавления этой строки я могу импортировать пакет «com.simplify.payments» и создать объект оплаты, но на этот раз моя сборка Android не удалась (я использую java sdk?).

  Information:Gradle tasks [:app:assembleDebug] Warning:Dependency org.apache.httpcomponents:httpclient:4.2.1 is ignored for debug as it may be conflicting with the internal version provided by Android. In case of problem, please repackage it with jarjar to change the class packages Warning:Dependency org.apache.httpcomponents:httpclient:4.2.1 is ignored for debug as it may be conflicting with the internal version provided by Android. In case of problem, please repackage it with jarjar to change the class packages Warning:Dependency commons-logging:commons-logging:1.1.1 is ignored for debug as it may be conflicting with the internal version provided by Android. In case of problem, please repackage it with jarjar to change the class packages Warning:Dependency org.apache.httpcomponents:httpclient:4.2.1 is ignored for release as it may be conflicting with the internal version provided by Android. In case of problem, please repackage it with jarjar to change the class packages Warning:Dependency org.apache.httpcomponents:httpclient:4.2.1 is ignored for release as it may be conflicting with the internal version provided by Android. In case of problem, please repackage it with jarjar to change the class packages Warning:Dependency commons-logging:commons-logging:1.1.1 is ignored for release as it may be conflicting with the internal version provided by Android. In case of problem, please repackage it with jarjar to change the class packages :app:preBuild UP-TO-DATE :app:preDebugBuild UP-TO-DATE :app:checkDebugManifest :app:preReleaseBuild UP-TO-DATE :app:prepareComAndroidSupportAppcompatV72220Library UP-TO-DATE :app:prepareComAndroidSupportSupportV42220Library UP-TO-DATE :app:prepareComSimplifySdkAndroid103Library UP-TO-DATE :app:prepareDebugDependencies :app:compileDebugAidl UP-TO-DATE :app:compileDebugRenderscript UP-TO-DATE :app:generateDebugBuildConfig UP-TO-DATE :app:generateDebugAssets UP-TO-DATE :app:mergeDebugAssets UP-TO-DATE :app:generateDebugResValues UP-TO-DATE :app:generateDebugResources UP-TO-DATE :app:mergeDebugResources UP-TO-DATE :app:processDebugManifest UP-TO-DATE :app:processDebugResources UP-TO-DATE :app:generateDebugSources UP-TO-DATE :app:processDebugJavaRes UP-TO-DATE :app:compileDebugJavaWithJavac UP-TO-DATE :app:compileDebugNdk UP-TO-DATE :app:compileDebugSources UP-TO-DATE :app:preDexDebug UP-TO-DATE :app:dexDebug UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Lorg/hamcrest/Description; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) at com.android.dx.merge.DexMerger.merge(DexMerger.java:189) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334) at com.android.dx.command.dexer.Main.run(Main.java:277) at com.android.dx.command.dexer.Main.main(Main.java:245) at com.android.dx.command.Main.main(Main.java:106) Error:Execution failed for task ':app:dexDebug'. > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_60\bin\java.exe'' finished with non-zero exit value 2 Information:BUILD FAILED 

Как я могу использовать упрощенную транзакцию api в моей программе Android?

Github Ссылка на мой проект

Полное раскрытие: это не отвечает на вопрос о том, как включить API платежей в ваше приложение, а скорее укажет вам в правильном направлении для использования Simplify для сбора платежей в вашем приложении.

Вы определенно не должны пытаться использовать java sdk платежей в своем приложении для Android. Для этого требуется, чтобы вы предоставили свой частный ключ API и внесете серьезные проблемы с безопасностью. См .: https://github.com/simplifycom/simplify-android-sample/wiki/Simplify-Android-SDK-Tutorial#process-a-payment

Дружелюбное напоминание: НЕ НАРУШАЙТЕ ВАШУ ЧАСТНЫЙ КЛЮЧ В ВАШЕМ ПРИЛОЖЕНИИ!

Ваши личные ключи считаются священными и могут использоваться для обработки платежей, выдачи возмещений и т. Д. Общей ошибкой развития является простое включение Java SDK в приложение и использование закрытого ключа для завершения жизненного цикла транзакции без привлечения сервера. Хотя это может показаться простым способом интеграции платежей, распространение вашего закрытого ключа в приложении оставляет его уязвимым с помощью простой обратной инженерии. После взлома злоумышленник может использовать ваш ключ для выполнения почти каждой операции, предлагаемой через наши API. Это плохая практика безопасности. Кроме того, поскольку ключи могут быть отменены на странице API Keys, они также считаются изменчивыми. Если закрытый ключ отменяется, любое приложение, использующее его, будет разорвано до тех пор, пока обновление не будет выпущено новым ключом. Суть в том, что: Не делайте этого. Мы найдем тебя. 🙂

Хорошей новостью является то, что Simplify предоставляет Android SDK, который вы можете использовать для сбора и маркировки информации о карте в своем приложении. Просто включите его в следующую строку:

 compile 'com.simplify:simplify-android:2.0.3' 

И справочную документацию и пример приложения здесь: https://github.com/simplifycom/simplify-android-sample

Intereting Posts