Yandex.Money APIを操作するためのJavaライブラリ

Yandex.Money API Yandex.Money APIでの作業のトピックを続けます。 Javaで記述されたWebサイト/ポータル/アプリケーションをお持ちの場合は、役に立つ可能性のある機能をいくつか紹介します。 たとえアプリケーションを持っていなくても、自分にとって役立つもの、つまり4funをすばやく書くことができます。 このカットでは、OAuth認証を簡単かつ迅速に渡す方法、Yandex.Money APIにリクエストを行う方法、およびJava SDKを使用して携帯電話に支払う方法を説明します。



おまけとして、APIを使用せずに作業する簡単で便利な方法(たとえば、誰かのアカウントに送金するための1回限りの支払いリンクの作成)と、寄付やクラウドファンディングのための既製のツールについて説明します。





Java Yandex.Money API SDK



Yandex.Money APIを使用して作業を簡素化するライブラリを作成しました。 彼女はAPIでOAuth承認を渡し、主な機能を呼び出します(アカウントに関する情報、取引履歴とそれらの詳細情報、他のユーザーへの送金、店舗への支払い)。 SDKはGsonライブラリを使用して、jsonおよびApache HTTPクライアントバージョン4で動作しますが、それらについて説明します。 ライブラリは、Java 6で開発および起動されました。



例として、モバイルオペレーターMegafonの承認と支払いの可能性を検討し、残りは自分で収集するか、 githubのソースからmavenを使用して自分でインストールし、詳細に検討します。 あなたが理解し、何かが理解できない場合は、APIでマニュアルを調べるか、 クラブで質問の答えを探すことをお勧めします。



受信トークン


最初に、OAuth認証を見てみましょう。 Twitterの開発中にブレインクックによって発明されました。 デビッドブレインではないのは良いことですが、それはストリートマジックの特別な仕様になるでしょう。 そのため、この認証方法は、アプリケーションでサービスを使用するために作成されましたが、このサービスからログインとパスワードを入力および保存することはありません。 アプリケーションはサービスへの権限を要求するユーザーを送信し、ユーザーはそこにログインし、アプリケーションによるサービスの使用を承認し、サービスはその機能にアクセストークンを発行します。 簡単ですが、初心者の開発者にとっては、このような承認は通常障害になります。 ライブラリでは、これはいくつかの行の問題です。



YandexMoney ym = new YandexMoneyImpl(Consts.CLIENT_ID); //       //      Collection<Permission> scope = new LinkedList<Permission>(); scope.add(new AccountInfo()); scope.add(new OperationHistory()); codeReqUri = ym.authorizeUri(scope, Consts.REDIRECT_URI); response.sendRedirect(codeReqUri);
      
      







ymオブジェクトを作成すると、アプリケーション識別子が渡されます(通常、アプリケーション定数に書き込まれます)。 次に、スコープの権利のリストを書き留め、結果のURIを呼び出します。 次に、リダイレクトページで、一定のアクセストークンのタイムコードを交換します。



  String code = request.getParameter("code"); ReceiveOAuthTokenResponse resp = ym.receiveOAuthToken(code, Consts.REDIRECT_URI); if (resp.isSuccess()) { out.println(": " + resp.getAccessToken()); }
      
      







モバイル決済


モバイル通信事業者のメガホンの支払い方法を示します。 以前は、OAuth認証中に、ユーザーはストアに支払うために必要な権限を指定する必要がありました。 次に、同じ方法でオブジェクトを作成し、メソッドを呼び出してユーザートークンを渡します。



  YandexMoney ym = new YandexMoneyImpl(Consts.CLIENT_ID); try { Map<String, String> map = new HashMap<String, String>(); map.put("PROPERTY1", "921"); map.put("PROPERTY2", "302"); map.put("sum", "2.50"); YandexMoneyImpl ym = new YandexMoneyImpl(Consts.CLIENT_ID); String token = (String) session.getAttribute("token"); try { RequestPaymentResponse resp = ym.requestPaymentShop(token, "337", map); if (resp.isSuccess()) { out.println(" : " + resp.getPaymentId()); //       //(processPaymentByWallet  processPaymentByCard) ProcessPaymentResponse paymentResp = ym.processPaymentByWallet(token, resp.getPaymentId()); ... } } catch (Exception e) { out.println("   : " + e.getMessage()); }
      
      







支払いをリクエストする際、支払いを行うユーザーのトークン、支払いテンプレート( pattern_id



)、およびこのストアに定義されているMap



パラメーターを転送します。 したがって、たとえば、定期的なバランスの補充やその他の有用なことを整理することができます。 状況は他の課題と似ています。 大きな4つの演算子を使用したより完全な例は、 githubweb / mobile / index.jspファイル 、および他の呼び出しで表示できます。



使用済みライブラリ



SDKはGsonライブラリを使用して、jsonおよびApache HTTPクライアントバージョン4で動作します。



Yandex.Moneyサーバーに要求を送信して応答を受信するには、Apache HTTPクライアントが必要です。 また、リモートホスト証明書の検証も保証します。 デフォルトでは、クライアントはBrowserCompatHostnameVerifier



モードで動作します。このモードでは、アクセスしているドメインのホストが信頼できるかどうかを確認できます。 Yandex.Money証明書チェーンのルート証明書(GTE Cyber​​Trust Global Root)はJavaプラットフォームに組み込まれているため、信頼できる証明書を個別に登録する必要はありません。



JSON応答を解析するために、Gsonライブラリを使用しました。 便利な機能がいくつかあります。 json文字列から同等のJavaオブジェクトを簡単かつ迅速に作成できます。 さらに、オブジェクトのネストを相互に使用できます。 また、javaスタイルで記述されたフィールドをjsonスタイルのフィールドにロードしたり、その逆を行ったりすることもできます。 たとえば、 sampleFieldNameInJava



フィールドは、オブジェクトの作成時に選択した名前ポリシーに応じて、jsonのsample_field_name_in_java



またはSampleFieldNameInJava



変換できます。 リフレクションを通じてすべてをロードします。 使いやすく便利なライブラリ。



ボーナス



プログラミングを気にしない人のために、APIを使用せずに簡単で便利なツールを紹介します。



直接請求リンク


プロジェクトの目的でAPIを使用する必要がない場合は、直接支払いリンクを作成できます。クリックすると、ユーザーは事前に入力された送金フォームのあるページに移動します。 多くの人がYandex.Moneyクラブでそれについて涙を流します。この機能は役に立つかもしれません。 ただし、これは文書化された機能よりもライフハックであり、自分の責任とリスクで使用する必要があることに留意してください。 この例は、同様のリンクを作成する方法を示しています( web / simple / index.jspファイルを参照)。タイトル、コメント、および金額を担当する5つの主要なパラメーターがあります。 残りは公式であり、それらを詳しく調べることはできません。 その結果、リンクをクリックした後、Yandex.MoneyのWebサイトにアクセスし、送金するには、支払いパスワードを入力するだけで十分です。



また、編集可能な翻訳リクエストを作成することもできます。 これを行うには、単にリンクすることができます
 https://money.yandex.ru/direct-payment.xml
      
      



指定された5つのパラメーター(合計、受信機など)の希望を追加します。 例えば
 https://money.yandex.ru/direct-payment.xml?sum=10&receiver=mdv00&destination=my%20comment
      
      



受信者として、アカウント番号とYandexのアカウントの両方を指定できます。



クラウドファンディングと寄付


誰もが知っているわけではない寄付を集めるための特別なツールがあります。 それらは、「資金調達」セクションのYandex.Moneyメインページの「サービス」タブにあります。 さらに、はるかに便利なものがありますが、トピックについて詳しく見てみましょう。



今日は以上です。ご清聴ありがとうございました。 この情報がお役に立てば幸いです。 いつものように、質問、建設的な提案、プルリクエストは大歓迎です。



All Articles