如何在Android POS上正确集成Clover SDK并完成模拟交易
解决Clover POS Android应用开发的商户/开发者环节问题
一、先搞定开发者账号与商户绑定
- 注册完Clover开发者账号后,必须关联测试商户(绝对不能用生产商户搞开发,会触发真实交易)。操作:登录开发者后台,找到"Test Merchants"板块,要么新建一个测试商户,要么关联已有的,同时得确保这个测试商户绑定了测试设备——没有实体机就用Clover官方模拟器。
- 权限不能漏:在开发者后台的应用设置里,一定要勾选交易相关权限,比如
com.clover.permission.ACCESS_PAYMENT、com.clover.permission.TRANSACTION,没这些权限根本没法发起交易。 - 签名必须对:开发时必须用开发者后台生成的签名密钥给APK签名,不然你的应用在Clover设备/模拟器上连权限都拿不到,白忙活。
二、SDK集成的基础步骤
- 依赖配置:在Module级别的
build.gradle里加Clover的Maven仓库和SDK依赖:
repositories { maven { url "https://maven.clover.com/releases/" } } dependencies { implementation 'com.clover.sdk:clover-android-sdk:latest.release' implementation 'com.clover.sdk:clover-android-sdk-extras:latest.release' }
- 初始化Clover客户端:代码里先拿到Clover实例,确认设备已经绑定商户:
CloverSdk cloverSdk = CloverSdk.initialize(context); Account account = cloverSdk.getAccount(); if (account == null) { // 直接提示用户设备没关联商户,得先完成绑定 }
三、模拟交易的实操流程
- 搞测试支付令牌:去测试商户后台生成测试支付令牌(Test Payment Tokens),用这个就能模拟卡支付,不用真实银行卡。
- 发起交易请求:用
PaymentConnector来发起模拟交易:
PaymentConnector paymentConnector = new PaymentConnector(context, account, new PaymentConnector.PaymentCallback() { @Override public void onAcceptPayment(Payment payment, String paymentId) { // 交易成了,这里处理后续逻辑 } @Override public void onError(int errorCode, String errorMessage) { // 交易崩了,看错误码排查问题 } }); // 举个例子,发起10美元的交易(单位是分,所以写1000) Charge charge = new Charge(); charge.setAmount(1000); charge.setCurrency("USD"); paymentConnector.charge(charge, null);
- 模拟器调试注意点:用Clover模拟器的话,得在开发者选项里开"允许模拟位置",还要在模拟器设置里绑定测试商户账号,不然连不上商户。
四、常见坑点排查
- 商户关联失败:检查测试商户是不是激活状态,设备有没有完成初始化(首次开机必须绑定商户才能用)。
- 权限被拒:先看APK签名是不是用了开发者后台的密钥,再检查开发者后台有没有给应用开交易权限,最后确认设备上的应用已经授予了所有必要权限。
- 交易失败:看看测试支付令牌是不是有效,交易金额有没有超过测试商户的单笔上限(有些测试商户有限制)。
内容的提问来源于stack exchange,提问作者Shahvez Ali
相关产品推荐
相关产品推荐

