だから、初めに少し理論。 かつてこれは小さな発見であったため、支払いカードの種類から始めましょう。 そのため、次の種類のカードがあります。
- デビットカード (デビットカード)-ほとんどの場合、給与カードの形で会います
- 当座借越が許可されているカードはほぼ同じデビットカードですが、固定資産がなくなったときに「クレジットで」と言って、お金を引き出す可能性があります
- クレジットカード
- プリペイドカード(プリペイドカード)-プリペイド額以内の商品またはサービスの支払いに使用されるプリペイドカード。 それらについてもう少し低くなります。
- ローカルカード-ローカル(国内)支払いシステムのカード
- 国際カード-Visa(Visa Electron、Visa Classic、Visa Gold、Visa Platinum)、MasterCard(Cirrus、Maestro、MasterCard Standard、MasterCard Gold、MasterCard Platinum)、Diners Club、American Express、JCB、China Unionpay
- 仮想カード-有形メディアのない銀行プリペイドカード
だから、プリペイドカードについて。 アメリカでは非常に人気があり、ウォルマート、T-Mobile、または他の主要店で購入できます。 使用方法。 好きなhaveがいて、彼の誕生日に彼にお金をあげるとします。 しかし、キャッシュを提供するのはファッショナブルではなく、部族はたとえばAmazonで何かを買っているので、そのようなカードをたとえば50ドルで購入します。 この後、彼女のneはインターネット上で彼女をアクティブにし、準備ができている、彼は50ドルのカードを持っています。 また、補充可能なプリペイドカードの亜種もあります。 一番下の行は、これらのカードは、あなたがインターネット上であなたの個人的なカードを輝かせないようにするので、米国で人気があります。 なんてプラス。 ただし、たとえば、サービスの全額をすぐに引き出さない(前払いで請求する)企業の観点からすると、これは大きなリスクです。お金を引き出せない場合、そのようなカードには何も表示できません。 より正確には、できることであり、これには特別な手順さえありますが、それだけの価値がない場合もあります。 カードの最初の6桁(ビン番号)とそのようなサービスを使用して、使用しているカードの種類を理解できます 。 ところで、 リンクは、支払いカードの番号が何を意味するかについての良いインフォグラフィックです。
支払いシステムでの作業を開始するときに間違いなく遭遇する2番目の素晴らしいことは、エラーメッセージです。 より正確にその説明。 なんで? ほとんどの銀行にはこのコードまたはそのコードの意味が明確に規定されていないため、サービスがエラーを受け取って認識できない場合、「支払いが拒否されました」と表示されます。驚き、積極的に「注文する」ボタンを押し続けると、何も機能せず、気分を害し、永遠に去ります。 彼はカードに陳腐なお金がないかもしれませんが。 これに備え、エラーの詳細な説明を提供する必要があります。
次に、支払いサービスについて少し説明します。つまり、優れた支払いサービスに必要な機能について説明します。
一般的な要件:
- ポリシーを明確に使用して、Braintreeがかつて私たちにしたように、突然切断されないようにします(気にする人-私はあなたに直接話すことができます)
- プログラマーだけでなくカスタマーサービスでも使用できるようにする、シンプルでわかりやすいダッシュボード。
- 接続に関する最も透過的なドキュメントと、次の点を明確に綴る必要があります。
- はじめに
- APIドキュメント
- テスト中
- 2つのサイト-テスト/本番
- トラブルシューティング
- ウィジェットの使用(ある場合)
- 適切なサポート。
機能要件:
- ユーザー、カード、および追加データを処理します。
- データ検証;
- 支払いをする;
- サブスクリプション
- 割引クーポン
- 請求書を使用します。
- 会計。
言うまでもなく、これらすべてに理解可能なREST APIが必要です。これは、追加のジェスチャーなしで使用できます。 追加の動きの例-あらゆる種類のUSPS、FedEx、およびその他のサービスと統合できるサービスstamps.comがあります。 APIにアクセスするには、すべての開発者のIPを含むリクエストを送信して、これらのIPがホワイトリストに追加されるようにする必要があります。 それから2〜3日待って、幸せがあります。 企業はそのような企業です。
実際、最初にリストしたサービスを比較します。 私たちは積極的に使用しているStripeが勝ちます。 理由:
- 私が今まで読んだ中で最も理解しやすいドキュメント-それ以上グーグルで検索したことはありません。
- 接続するだけ-同じドキュメントからほぼコピーアンドペースト。
- 非常に即応性の高いサポート、そして実際に顧客を重視する会社の例(興味があれば、直接お話しします);
- 個人アカウントの最もシンプルなインターフェイス-直感的に、どこにあるのか。
同じブレインツリーは、ボトルなしで接続することは不可能であるという事実のために失われ、私は彼らの文書については黙っています。 例として、幸運を祈って、サンドボックスでテスト用のカード番号を見つけてみてください。
ペイパルについて。 Paypalは、電子商品またはサービスを販売する場合に適しています。 それ以外の場合は、忘れてください。 なんで? 統合方法の簡単な図を以下に示します。
ちなみに、Paypalは少し前にBraintreeを買収しましたが、今では開発のためにあらゆる種類の新しいものを提供しています。
ストライプの接続方法。 ステップ1はjavascriptです。
// Stripe.setPublishableKey('{stripe.publish_key}'); // Stripe , // stripeResponseHandler Stripe.card.createToken({ number: $('#cardnumber').val(), cvc: $('#cvc').val(), exp_month: $('#expdate_mm').val(), exp_year: $('#expdate_yy').val(), name: $("#cardholdername").val(), address_line1: $("#street1").val()), address_line2: $("#street2").val(), address_city: $("#city").val(), address_state: $("#region_id").val(), address_zip: $("#postcode").val(), address_country: 'US' }, stripeResponseHandler); // var stripeResponseHandler = function (status, response) { var $form = $('#payment-form'); if (response.error) { // Stripe, , / } else { $.post(url, $form.serialize(), function (data) { // });
サーバーコードはそのままです-grails / java
// Stripe.apiKey = stripe.secret_key // Map<String, Object> customerParams = new HashMap<String, Object>() customerParams.put("email",email) customer = Customer.create(customerParams) // , Map<String, Object> cardParams = new HashMap<String, Object>() cardParams.put("card", token) customer.createCard(cardParams) // Map<String, Object> chargeParams = new HashMap<String, Object>() chargeParams.put("amount", amount) chargeParams.put("currency", "usd") chargeParams.put("description", "Charge") chargeParams.put("customer", customer.id) chargeParams.put("card", card.id) Charge.create(chargeParams)
実際、すべてを支払いました。 たとえばBraintreeの同じコードは、2.5倍長くなります。
おそらくそれだけです。 コメントで質問してください。このトピックは興味深いもので、十分なレーキを集めました。