UNiDAYSと連携するためのPHPライブラリです。これは、コード化された統合とコードレスの統合に使用されます。次のドキュメントでは、実装と例について説明します。
このコードの使い方は?
ダイレクトトラッキング
コードレス検証
貢献する
ここでは、使用可能なすべてのパラメータについて説明します。これらのうちどれを当社に提供するかは、合意された契約によって異なります。
パラメータ | 説明 | データ型 | 例 |
---|---|---|---|
パートナーID | UNiDAYS によって提供されるパートナー ID。複数の地理的地域で事業を展開している場合は、地域ごとに異なる PartnerId を持つことができます。 | Base64 エンコードされた GUID | XaxptFh0sK8Co6pI== |
トランザクションID | システム内のトランザクションの一意の ID | 弦 | 注文123 |
通貨 | ISO 4217 通貨コード | 弦 | 英ポンド |
CodeまたはMemberID をパラメータとして指定することも必須です。
パラメータ | 説明 | データ型 | 例 |
---|---|---|---|
コード | 使用したUNiDAYS割引コード | 弦 | ABC123 |
メンバーID | コードレス統合を使用している場合にのみ提供されます | Base64 エンコードされた GUID | 0LTio6iVNaKj861RM9azJQ== |
値が不明な以下のプロパティは呼び出しから省略する必要があることに注意してください。次のいずれの値を当社に提供するかは、合意された契約によって異なります。
パラメータ | 説明 | データ型 | 例 |
---|---|---|---|
注文合計 | 支払われた合計金額 (小数点以下 2 桁で表示) | 10進数 | 209.00 |
アイテムUNiDAYS割引 | 品目総額ItemsGross に適用される UNiDAYS 割引の合計金額 (小数点以下 2 桁でフォーマット) | 10進数 | 13.00 |
品目税金 | 品目に適用される税の合計金額 (小数点以下 2 桁で表示) | 10進数 | 34.50 |
送料総額 | 送料割引または税金が適用される前の、小数点第 2 位でフォーマットされた送料の合計金額 | 10進数 | 5.00 |
送料割引 | 注文に適用された配送割引 (UNiDAYS またはその他) の合計金額 (小数点以下 2 桁で表示) | 10進数 | 3.00 |
項目総額 | 割引が適用される前の税込み商品の合計金額 (小数点以下 2 桁で表示) | 10進数 | 230.00 |
アイテムその他割引 | ItemsGross に適用される UNiDAYS 以外のすべての割引の合計金額 (小数点以下 2 桁でフォーマット) | 10進数 | 10.00 |
UNIDAYS割引率 | 適用される UNiDAYS 割引をパーセンテージで表示し、小数点以下 2 桁で表示します。 | 10進数 | 10.00 |
新規顧客 | ユーザーはあなたにとって新規 (またはリピート) 顧客ですか? | ブール値 | 真か偽か |
これは、UNiDAYS 追跡パラメータに関連するフィールドを含むバスケットの例です。
アイテム | きもい | UNIDAYS割引 | その他の割引 | 税 | 純合計 | 行合計 |
---|---|---|---|---|---|---|
靴 | 100.00 | 0.00 | 0.00 | 16.67 | 83.33 | 100.00 |
シャツ | 50.00 | 5.00 | 0.00 | 7.50 | 37.50 | 45.00 |
ジーンズ | 80.00 | 8.00 | 10.00 | 10.33 | 51.67 | 62.00 |
合計 | 230.00 | 13.00 | 10.00 | 34.50 | 172.50 | 207.00 |
配送 | 5.00 | |||||
送料割引 | 3.00 | |||||
注文合計 | 209.00 |
以下に、統合を実装するための 3 つのオプションを示します。これらの例は、コード化された統合とコードレスの統合の両方をカバーしており (詳細については、ライブ分析 PDF を参照してください)、すべてのオプションのパラメーターが含まれています。これらは実装のガイドラインとして意図されています。
このメソッドは、API の呼び出しに使用できる URL を返します。
すべてのサーバー URL が署名されていることが必須の要件です。これは、UNiDAYS が引数の 1 つとして提供する署名キーを渡す必要があることを意味します。署名キーは Base64 でエンコードされた GUID です。このエンドポイントは、 GET
とPOST
リクエストの両方を受け入れます。
サーバー間リクエストを行うための URL を取得するメソッドは、 create_server_url($key)
です。このメソッドを実装するには、まずDirectTrackingDetailsBuilder
使用して、送信するプロパティを含むダイレクト トラッキング オブジェクトを作成する必要があります。このビルダーの詳細については、こちらをご覧ください。
送信する必要がある詳細を含むオブジェクトが作成されたら、トラッキング ヘルパーを作成し、それらの詳細を引数new TrackingHelper($directTrackingDetails)
として指定し、 ->create_server_url($key)
を呼び出します。ここで、 $key
は、によって提供されるキーです。ユニデイズ。
URL が返されます。これを使用して API を呼び出すことができます。成功すると、ステータス コード 204 No Content の応答が返されます。これは、 POST
とGET
リクエストの両方で機能します。
<?php
use Unidays ;
// UNiDAYS will provide your partnerId and key
$ partnerId = " somePartnerId " ;
$ key = " someSigningKey " ;
$ details = new DirectTrackingDetailsBuilder ( $ partnerId , ' order123 ' , ' GBP ' );
$ details -> withOrderTotal ( 209.00 );
$ details -> withItemsUnidaysDiscount ( 13.00 );
$ details -> withCode ( ' UNI123 ' );
$ details -> withItemsTax ( 34.50 );
$ details -> withShippingGross ( 5.00 );
$ details -> withShippingDiscount ( 3.00 );
$ details -> withItemsGross ( 230.00 );
$ details -> withItemsOtherDiscount ( 10.00 );
$ details -> withUnidaysDiscountPercentage ( 10.00 );
$ details -> withNewCustomer ( true );
$ directTrackingDetails = $ details -> build ();
$ helper = new TrackingHelper ( $ directTrackingDetails );
$ url = $ helper -> create_server_url ( $ key );
これは、クライアントとサーバーの統合とも呼ばれます。このメソッドは、支払い後/注文成功ページのスクリプト要素内に配置して API を呼び出すことができる URL を返します。
これは、スクリプト リクエストの署名付き URL を作成するオプションです。これを行うには、UNiDAYS が署名付きメソッドの引数の 1 つとして提供する署名キーを送信する必要があります。
$url = $helper->create_signed_script_url($key);
の代わりに
$url = $helper->create_script_url();
クライアントからサーバーへのリクエストを行うための URL を取得するメソッドはcreate_script_url()
か、署名付き URL を返すことを選択した場合はcreate_signed_script_url($key)
です。このメソッドを実装するには、まずDirectTrackingDetailsBuilder
使用して、送信するプロパティを含むダイレクト トラッキング オブジェクトを作成する必要があります。このビルダーの詳細については、こちらをご覧ください。
送信する必要がある詳細を含むオブジェクトが作成されたら、トラッキング ヘルパーを作成し、それらの詳細を引数new TrackingHelper($directTrackingDetails)
として指定し、署名されていない URL の場合は->create_script_url()
を呼び出すか、 ->create_signed_script_url($key)
、 $key
UNiDAYS から提供されるキーです。
URL が返されます。これを支払い後/注文成功ページのスクリプト要素内に配置して API を呼び出すことができます。成功すると、ステータス コード 200 OK の応答が返されます。これはGET
リクエストに対してのみ機能します。
以下の例は、署名されていないスクリプト URL のリクエストです。
<?php
use Unidays ;
// UNiDAYS will provide your partnerId and key
$ partnerId = " somePartnerId " ;
$ details = new DirectTrackingDetailsBuilder ( $ partnerId , ' order123 ' , ' GBP ' );
$ details -> withOrderTotal ( 209.00 );
$ details -> withItemsUnidaysDiscount ( 13.00 );
$ details -> withCode ( ' UNI123 ' );
$ details -> withItemsTax ( 34.50 );
$ details -> withShippingGross ( 5.00 );
$ details -> withShippingDiscount ( 3.00 );
$ details -> withItemsGross ( 230.00 );
$ details -> withItemsOtherDiscount ( 10.00 );
$ details -> withUnidaysDiscountPercentage ( 10.00 );
$ details -> withNewCustomer ( true );
$ directTrackingDetails = $ details -> build ();
$ helper = new TrackingHelper ( $ directTrackingDetails );
$ url = $ helper -> create_script_url ();
Tracking Client への呼び出しはサーバー URL の作成に似ていますが、UNiDAYS は URL を返すのではなく、リクエストを送信して応答を返します。
UNiDAYS が送信するリクエストは署名されているため、すべての追跡クライアント呼び出しにキーが提供されることは必須の要件です。
このメソッドを実装するには、まずDirectTrackingDetailsBuilder
使用して、送信するプロパティを含むダイレクト トラッキング オブジェクトを作成する必要があります。このビルダーの詳細については、こちらをご覧ください。
送信する必要がある詳細を含むオブジェクトが作成されたら、追跡クライアントのインスタンスを作成し、それらの詳細をパラメーターとして指定し、UNiDAYS が提供するnew TrackingClient($directTrackingDetails, $key)
の署名キーを使用して、次のように呼び出します->sendRequest()
。
HttpResponseMessage が返されます。成功した場合、応答にはステータス コード 204 No Content が含まれます。
以下の例では、直接追跡の詳細をいくつか設定し、クライアントで sendRequest を呼び出し、応答コードをコンソールにエコーします。
<?php
use Unidays ;
// UNiDAYS will provide your partnerId and key
$ partnerId = " somePartnerId " ;
$ key = " someSigningKey " ;
$ details = new DirectTrackingDetailsBuilder ( $ partnerId , ' order123 ' , ' GBP ' );
$ details -> withOrderTotal ( 209.00 );
$ details -> withItemsUnidaysDiscount ( 13.00 );
$ details -> withCode ( ' UNI123 ' );
$ details -> withItemsTax ( 34.50 );
$ details -> withShippingGross ( 5.00 );
$ details -> withShippingDiscount ( 3.00 );
$ details -> withItemsGross ( 230.00 );
$ details -> withItemsOtherDiscount ( 10.00 );
$ details -> withUnidaysDiscountPercentage ( 10.00 );
$ details -> withNewCustomer ( true );
$ directTrackingDetails = $ details -> build ();
$ client = new TrackingClient ( $ directTrackingDetails , $ key );
$ response = $ client -> sendRequest ();
echo $ response -> code ;
UNiDAYS は、 TrackingHelper
オブジェクトのテスト エンドポイント構成を提供します。
テスト モードで構成された TrackingHelper オブジェクトは、返される URL または送信される URL に追加のパラメーター ( &Test=True
) を追加します。
<?php
use Unidays ;
// UNiDAYS will provide your partnerId and key
$ partnerId = " somePartnerId " ;
$ key = " someSigningKey " ;
$ details = new DirectTrackingDetailsBuilder ( $ partnerId , ' order123 ' , ' GBP ' );
$ details -> withOrderTotal ( 209.00 );
$ details -> withItemsUnidaysDiscount ( 13.00 );
$ details -> withCode ( ' UNI123 ' );
$ details -> withItemsTax ( 34.50 );
$ details -> withShippingGross ( 5.00 );
$ details -> withShippingDiscount ( 3.00 );
$ details -> withItemsGross ( 230.00 );
$ details -> withItemsOtherDiscount ( 10.00 );
$ details -> withUnidaysDiscountPercentage ( 10.00 );
$ details -> withNewCustomer ( true );
$ directTrackingDetails = $ details -> build ();
// Pass in an aditional argument of true to instantiate the TrackingHelper object in test mode
$ helper = new TrackingHelper ( $ directTrackingDetails , true );
// The url generated will now contain the appended $Test=True parameter, this url will call our test endpoint
$ url = $ helper -> create_server_url ( $ key );
ビルダーの目的は、UNiDAYS への追跡リクエストを作成する際に、それをシンプルかつ直感的に行うことです。
ビルダーの引数は必須パラメータです。
$directTrackingDetails = new DirectTrackingDetailsBuilder($partnerId, $currency, $transactionId)
送信したい情報を構築するために利用できるさまざまな方法があり、例に従って連鎖させることができます。これらは、このドキュメントの冒頭にあるパラメータと一致します。
base64 encoded guid
)string
)decimal
)decimal
)decimal
)decimal
)decimal
)decimal
)decimal
)decimal
)bool
)提供することに契約上同意した値のみをチェーンします。すべての方法を使用する必要はありません。
連鎖される最後の呼び出しは、オブジェクトを作成する->build()
です。
<?php
use Unidays ;
$ details = new DirectTrackingDetailsBuilder ( ' somePartnerId ' , ' order123 ' , ' GBP ' );
$ details -> withOrderTotal ( 209.00 );
$ details -> withItemsUnidaysDiscount ( 13.00 );
$ details -> withCode ( ' UNI123 ' );
$ details -> withItemsTax ( 34.50 );
$ details -> withShippingGross ( 5.00 );
$ details -> withShippingDiscount ( 3.00 );
$ details -> withItemsGross ( 230.00 );
$ details -> withItemsOtherDiscount ( 10.00 );
$ details -> withUnidaysDiscountPercentage ( 10.00 );
$ details -> withNewCustomer ( true );
$ directTrackingDetails = $ details -> build ();
UNiDAYS メンバーにコードレス エクスペリエンスを提供することに同意した場合は、直接追跡と並行して、サイトに向けて送信される署名付きトラフィックの解析と検証を支援する「コードレス API」も実装する必要があります。
まず、UNiDAYS new CodelessUrlVerifier($key)
によって提供されたキーを使用して CodelessUrlVerifier を呼び出します。次に、ud_s、ud_t、および ud_h の値を引数として使用して、 verify_url_params($ud_s, $ud_t, $ud_h)
メソッドを呼び出します。
パラメータ | 説明 | データ型 | 最大長さ | 例 |
---|---|---|---|---|
ud_s | UNiDAYS認証済み学生証 | 弦 | 256文字 | Do/faqh330SGgCnn4t3X4g== |
うだ_t | リクエストのタイムスタンプ | 弦 | 64ビット | 1395741712 |
ud_h | 他の 2 つのパラメータのハッシュ署名 | Base64文字列 | 256文字 | o9Cg3q2eVElZxYlJsEAQ== |
メソッドが受信リクエストのハッシュを正常に検証すると、リクエストの DateTime が返されます。それ以外の場合は null が返されます。
<?php
use Unidays ;
// Your key as provided by UNiDAYS
$ key = " someSigningKey " ;
// Obtain parameters from the query string. Be sure to URL Decode them
$ ud_s = " Do/faqh330SGgCnn4t3X4g== " ;
$ ud_t = " 1395741712 " ;
$ ud_h = " i38dJdX+XLKuE4F5tv+Knpl5NPtu5zrdsjnqBQliJEJE4NkMmfurVnUaT46WluRYoD1/f5spAqU36YgeTMCNeg== " ;
$ verifier = new CodelessUrlVerifier ( $ key );
$ verifiedAt = $ verifier -> verify_url_params ( $ ud_s , $ ud_t , $ ud_h );
このプロジェクトはオープンソース プロジェクトとして設定されています。そのため、機能やコード自体の改善に関する提案がある場合、または問題に遭遇した場合は、問題を提起したり、実装の変更を提案したりできます。
このコードベースに貢献することに興味がある場合は、貢献ガイドラインに従ってください。これには、直接貢献する方法と、機能リクエストやバグ レポートを作成する方法の両方に関するガイドが含まれています。上記のいずれかを行う場合は、当社の行動規範に従ってください。