본문 바로가기
개발/삼성 블록체인 플랫폼 SDK

삼성 블록체인 플랫폼 SDK 사용하기 (4) Payment

by 손너잘 2020. 2. 11.
Payment
 
블록체인 SDK를 이용한 payment는 더욱더 간단하다. 소스를 보면서 이해하자.
 
CoinNetworkInfo coinNetworkInfo = new CoinNetworkInfo(
        CoinType.ETH,                   //코인 종류
        EthereumNetworkType.ROPSTEN,    //네트워크 종류
        rpcAddress                    //노드 정보
);
 
 
EthereumService ethereumService = (EthereumService) CoinServiceFactory.getCoinService(this, coinNetworkInfo);
 
 
List<Account> lists = mSblockchain.getAccountManager()
        .getAccounts(wallet.getWalletId(), CoinType.ETH, EthereumNetworkType.ROPSTEN);
 
 
Intent intent = ethereumService.createEthereumPaymentSheetActivityIntent(
        this,                                               //context
        wallet,                                             //hardwareWallet,
        (EthereumAccount) lists.get(0),                     //from Account
        "0x7CF8a8656Ff85B78F5efC75Efa0d7f107B7915B4",       //to whare
        new BigInteger("1000000000000000"),                 //wei
        null, 
        null
);
 
 
startActivityForResult(intent, 0);
 
payment는 위와 같은 소스로 실행된다.
위 소스는 테스트를 위한 코드이기 때문에 서비스에 맞게 변경해 주어야 한다.
 
CoinServiceFactory는 코인에 대한 행위를 하기 위한 기능들을 저장해 놓은 클래스라고 생각하면 된다. 우리는 이더리움을 사용하며 sdk도 이더리움만 제공되고 있으므로 EthereumService 클래스로 캐스팅 하여 사용도록 한다.
파라메터는 context와 CoinNetworkInfo 정보이다.
 
ethereumService.createEthereumPaymentSheetActivityIntent를 통해 이더리움 전송을 할 수 있는 intent를 생성할 수 있다. 이는 알맞는 파라메터만 전송한다면 삼성 sdk에서 자동으로 생성해 준다.
파라메터는 차례대로 다음과 같다. 
  • 현재 context
  • 위에서 가져온 하드웨어 월렛의 인스턴스
  • 전송할 계좌,
  • 전송 받을 계좌,
  • 보낼 이더리움 양(wei 단위)
뒤에 2개의 파라메터는 스마트컨트랙트를 실행하기 위한 파라메터 이므로 현재 코인 전송에서는 null값으로 두도록 한다.
 
 
정상적으로 코딩이 되었다면, 결제 페이지가 위와같이 뜰 것이다. 이 페이지는 우리가 제작하는것이 아니라 sdk에서 자동으로 만들어주는 intent이기 때문에 이 이후의 작업은 상관하지 않아도 된다.
계좌 정보를 보면 아까 메타마스트를 통해 보낸 4이더이움이 정상적으로 들어와 있는것을 볼 수 있다. (사진은 이미 테스트를 한번 한 상태여서 조금 빠져나가 있다)
이 어플을 통해 본인의 다른 계좌(필자같은 경우는 메타마스크 account)로 전송을 진행해 보면.
 
위와 같이 정상적으로 입금이 된것을 확인할 수 있다.
 

 

 

 

 

to be continue;

댓글