Androidアプリ内にてPAY.JPのカードトークン作成

AndroidアプリにPAY.JPのカードトークン取得機能を組み込む必要があったのですが、PAY.JP側のライブラリではAndroidに対応していませんでした。

Java用ライブラリは用意されているのですが、下記ランタイムエラーが発生するためAndroidでは利用できません。
Caused by: java.lang.NoClassDefFoundError: javax.xml.bind.DatatypeConverter
at jp.pay.net.LivePayjpResponseGetter.getHeaders(LivePayjpResponseGetter.java:85)

既存プロジェクトではvolleyを使っていたので、直接PAY.JPのRestAPIにリクエストを投げることで対応するに至りました。

以下サンプルとなります。

ポイントはオーバーライドしているpublic Map<String, String> getHeadersで、コロン(:)を追加したapiキーをBase64でエンコードし、HttpリクエストヘッダーのAuthorizationとして追加するところ。

 

ちなみにJsonObjectRequestHashMapPostはその名の通り、HashMapをPostするためにRequestを拡張したクラスです。こちらも参考までに。

参考

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です