นี่คือไลบรารี PHP สำหรับการบูรณาการกับ UNiDAYS สิ่งนี้จะใช้สำหรับการบูรณาการแบบมีโค้ดและไม่มีโค้ด เอกสารประกอบต่อไปนี้ให้คำอธิบายการใช้งานและตัวอย่าง
วิธีใช้รหัสนี้?
การติดตามโดยตรง
การตรวจสอบแบบไม่มีรหัส
มีส่วนร่วม
นี่คือคำอธิบายของพารามิเตอร์ที่มีอยู่ทั้งหมด สิ่งใดที่คุณมอบให้เราจะขึ้นอยู่กับสัญญาที่ตกลงกันไว้
พารามิเตอร์ | คำอธิบาย | ประเภทข้อมูล | ตัวอย่าง |
---|---|---|---|
รหัสพันธมิตร | PartnerId ของคุณตามที่ UNiDAYS ระบุไว้ หากคุณดำเนินงานในภูมิภาคทางภูมิศาสตร์หลายแห่ง คุณอาจมี PartnerId ที่แตกต่างกันสำหรับแต่ละภูมิภาค | คู่มือการเข้ารหัส Base64 | XaxptFh0sK8Co6pI== |
รหัสธุรกรรม | ID เฉพาะสำหรับธุรกรรมในระบบของคุณ | สตริง | สั่งซื้อ123 |
สกุลเงิน | รหัสสกุลเงิน ISO 4217 | สตริง | ปอนด์ |
การมี รหัส หรือ MemberID เป็นพารามิเตอร์ก็เป็นสิ่งจำเป็นเช่นกัน:
พารามิเตอร์ | คำอธิบาย | ประเภทข้อมูล | ตัวอย่าง |
---|---|---|---|
รหัส | รหัสส่วนลด UNiDAYS ที่ใช้ | สตริง | เอบีซี123 |
รหัสสมาชิก | จะได้รับเฉพาะเมื่อคุณใช้การผสานการทำงานแบบไร้โค้ดเท่านั้น | คู่มือการเข้ารหัส Base64 | 0LTio6iVNaKj861RM9azJQ== |
โปรดทราบว่าควรละเว้นคุณสมบัติใดๆ ต่อไปนี้ซึ่งไม่ทราบค่าในการเรียก ค่าใดต่อไปนี้ที่คุณให้กับเราจะขึ้นอยู่กับสัญญาที่คุณตกลงไว้
พารามิเตอร์ | คำอธิบาย | ประเภทข้อมูล | ตัวอย่าง |
---|---|---|---|
การสั่งซื้อทั้งหมด | จำนวนเงินที่ชำระทั้งหมด มีรูปแบบทศนิยม 2 ตำแหน่ง | ทศนิยม | 209.00 |
รายการUNiDAYSส่วนลด | จำนวนเงินรวมของส่วนลด UNiDAYS ที่ใช้กับมูลค่าสินค้ารวม ItemsGross โดยจัดรูปแบบเป็นทศนิยม 2 ตำแหน่ง | ทศนิยม | 13.00 น |
รายการภาษี | จำนวนเงินภาษีทั้งหมดที่ใช้กับสินค้า โดยมีรูปแบบทศนิยม 2 ตำแหน่ง | ทศนิยม | 34.50 |
การจัดส่งสินค้ารวม | จำนวนเงินรวมของค่าจัดส่ง ก่อนส่วนลดการจัดส่งหรือภาษีใดๆ ที่นำไปใช้ โดยจัดรูปแบบเป็นทศนิยม 2 ตำแหน่ง | ทศนิยม | 5.00 น |
ส่วนลดค่าจัดส่ง | จำนวนเงินรวมของส่วนลดค่าจัดส่ง (UNiDAYS หรืออย่างอื่น) ที่ใช้กับคำสั่งซื้อ โดยจัดรูปแบบเป็นทศนิยม 2 ตำแหน่ง | ทศนิยม | 03.00 น |
รายการรวม | จำนวนเงินรวมของสินค้ารวมภาษี ก่อนที่จะใช้ส่วนลดใดๆ โดยจัดรูปแบบเป็นทศนิยม 2 ตำแหน่ง | ทศนิยม | 230.00 |
รายการอื่นๆส่วนลด | จำนวนเงินรวมของส่วนลดที่ไม่ใช่ของ UNiDAYS ทั้งหมดที่ใช้กับ ItemsGross โดยจัดรูปแบบเป็นทศนิยม 2 ตำแหน่ง | ทศนิยม | 10.00 น |
UNiDAYSเปอร์เซ็นต์ส่วนลด | ส่วนลด UNiDAYS ใช้เป็นเปอร์เซ็นต์ โดยจัดรูปแบบเป็นทศนิยม 2 ตำแหน่ง | ทศนิยม | 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 น | |||||
ส่วนลดค่าจัดส่ง | 03.00 น | |||||
ยอดสั่งซื้อ | 209.00 |
ด้านล่างนี้คือสามตัวเลือกสำหรับการนำการผสานรวมของคุณไปใช้ ตัวอย่างเหล่านี้ครอบคลุมทั้งการผสานรวมที่ใช้โค้ดและไม่มีโค้ด (ดูรายละเอียด PDF การวิเคราะห์แบบเรียลไทม์) และรวมพารามิเตอร์ทางเลือกทั้งหมด มีวัตถุประสงค์เพื่อเป็นแนวทางในการดำเนินการ
เมธอดนี้ส่งคืน URL ที่คุณสามารถใช้เพื่อเรียก API
เป็นข้อกำหนดบังคับที่ URL เซิร์ฟเวอร์ทั้งหมดจะต้องลงนาม ซึ่งหมายความว่าคุณจะต้องส่งคีย์การลงนามที่ UNiDAYS มอบให้เป็นหนึ่งในข้อโต้แย้ง คีย์การลงนามคือ GUID ที่เข้ารหัส Base64 ตำแหน่งข้อมูลนี้ยอมรับทั้งคำขอ GET
และ POST
วิธีการรับ URL เพื่อสร้างคำขอแบบเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์คือ create_server_url($key)
หากต้องการใช้วิธีนี้ คุณต้องใช้ DirectTrackingDetailsBuilder
เพื่อสร้างออบเจ็กต์การติดตามโดยตรงพร้อมคุณสมบัติที่คุณต้องการส่งให้เรา รายละเอียดเพิ่มเติมเกี่ยวกับเครื่องมือสร้างนี้สามารถพบได้ที่นี่
เมื่อสร้างออบเจ็กต์ที่มีรายละเอียดที่คุณต้องการส่งถึงเราแล้ว ให้สร้างตัวช่วยการติดตามโดยระบุรายละเอียดเหล่านั้นเป็นอาร์กิวเมนต์ new TrackingHelper($directTrackingDetails)
และโทร ->create_server_url($key)
โดยที่ $key
คือคีย์ที่มอบให้คุณโดย ยูนิเดย์ส
URL จะถูกส่งกลับมาให้คุณ ซึ่งสามารถใช้เพื่อเรียก API ของเราได้ หากสำเร็จการตอบกลับด้วยรหัสสถานะ 204 จะไม่มีการส่งกลับเนื้อหา สิ่งนี้จะใช้ได้กับทั้งคำขอ 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 );
สิ่งนี้เรียกอีกอย่างว่าการบูรณาการระหว่างไคลเอนต์กับเซิร์ฟเวอร์ของเรา วิธีนี้จะส่งคืน URL ที่สามารถวางไว้ภายในองค์ประกอบสคริปต์บนหน้าหลังการชำระเงิน/สั่งซื้อสำเร็จเพื่อเรียกใช้ API
เป็นตัวเลือกในการสร้าง URL ที่ลงนามสำหรับคำขอสคริปต์ของคุณ ในการดำเนินการนี้ คุณจะต้องส่งรหัสการลงนามที่ UNiDAYS มอบให้มาให้เราเป็นหนึ่งในข้อโต้แย้งสำหรับวิธีการลงนาม
$url = $helper->create_signed_script_url($key);
แทน
$url = $helper->create_script_url();
วิธีการรับ URL เพื่อสร้างคำขอแบบไคลเอ็นต์ต่อเซิร์ฟเวอร์คือ create_script_url()
หรือ create_signed_script_url($key)
หากคุณเลือกที่จะให้ URL ที่ลงชื่อส่งคืน หากต้องการใช้วิธีนี้ คุณต้องใช้ DirectTrackingDetailsBuilder
เพื่อสร้างออบเจ็กต์การติดตามโดยตรงพร้อมคุณสมบัติที่คุณต้องการส่งให้เรา รายละเอียดเพิ่มเติมเกี่ยวกับเครื่องมือสร้างนี้สามารถพบได้ที่นี่
เมื่อสร้างออบเจ็กต์ที่มีรายละเอียดที่คุณต้องการส่งถึงเราแล้ว ให้สร้างตัวช่วยการติดตาม โดยระบุรายละเอียดเหล่านั้นเป็นอาร์กิวเมนต์ new TrackingHelper($directTrackingDetails)
และเรียก ->create_script_url()
สำหรับ 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 ();
การเรียกไปยังไคลเอ็นต์การติดตามนั้นคล้ายคลึงกับการสร้าง URL ของเซิร์ฟเวอร์ แต่แทนที่จะส่งคืน URL UNiDAYS จะส่งคำขอและส่งคืนการตอบกลับ
เป็นข้อกำหนดบังคับที่การโทรติดตามลูกค้าทั้งหมดจะต้องมีรหัส เนื่องจากการร้องขอที่ส่ง UNiDAYS ได้รับการลงนาม
หากต้องการใช้วิธีนี้ คุณต้องใช้ DirectTrackingDetailsBuilder
เพื่อสร้างออบเจ็กต์การติดตามโดยตรงพร้อมคุณสมบัติที่คุณต้องการส่งให้เรา รายละเอียดเพิ่มเติมเกี่ยวกับเครื่องมือสร้างนี้สามารถพบได้ที่นี่
เมื่อสร้างออบเจ็กต์ที่มีรายละเอียดที่คุณต้องการส่งถึงเราแล้ว ให้สร้างอินสแตนซ์ของไคลเอ็นต์การติดตาม โดยระบุรายละเอียดเหล่านั้นเป็นพารามิเตอร์ พร้อมด้วยคีย์การลงนาม UNiDAYS ที่ให้ new TrackingClient($directTrackingDetails, $key)
และการโทร ->sendRequest()
.
HttpResponseMessage ถูกส่งกลับ หากสำเร็จ การตอบกลับควรมีรหัสสถานะ 204 ไม่มีเนื้อหา
ตัวอย่างด้านล่างจะตั้งค่ารายละเอียดการติดตามโดยตรง เรียกใช้ 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 ที่กำหนดค่าในโหมดทดสอบ จะเพิ่มพารามิเตอร์พิเศษ ( &Test=True
) ให้กับ URL ที่ส่งคืนให้คุณหรือส่งให้คุณ
<?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 ควบคู่ไปกับการติดตามโดยตรง คุณจะต้องใช้ 'Codeless API' ซึ่งจะช่วยคุณในการแยกวิเคราะห์และตรวจสอบการรับส่งข้อมูลที่เซ็นชื่อซึ่งเราส่งตรงไปยังไซต์ของคุณ
ขั้นแรก ให้เรียก CodelessUrlVerifier ด้วยคีย์ที่ UNiDAYS new CodelessUrlVerifier($key)
มอบให้กับคุณ จากนั้นเรียกเมธอด verify_url_params($ud_s, $ud_t, $ud_h)
โดยมีค่า ud_s, ud_t และ ud_h เป็นอาร์กิวเมนต์
พารามิเตอร์ | คำอธิบาย | ประเภทข้อมูล | ความยาวสูงสุด | ตัวอย่าง |
---|---|---|---|---|
ud_s | บัตรประจำตัวนักศึกษาที่ตรวจสอบแล้วของ UNiDAYS | สตริง | 256 ตัวอักษร | ทำ/faqh330SGgCnn4t3X4g== |
ud_t | การประทับเวลาสำหรับการร้องขอ | สตริง | 64 บิต | 1395741712 |
ud_h | ลายเซ็นแฮชของพารามิเตอร์อีกสองตัว | สตริง Base64 | 256 ตัวอักษร | o9Cg3q2eVElZxYlJsEAQ== |
หากวิธีการตรวจสอบแฮชของคำขอที่เข้ามาสำเร็จ DateTime สำหรับคำขอจะถูกส่งกลับ มิฉะนั้นจะถูกส่งกลับเป็นโมฆะ
<?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 );
โปรเจ็กต์นี้ถูกตั้งค่าเป็นโปรเจ็กต์โอเพ่นซอร์ส ดังนั้น หากมีข้อเสนอแนะใดๆ ที่คุณมีเกี่ยวกับฟีเจอร์ต่างๆ เพื่อปรับปรุงโค้ด หรือคุณประสบปัญหาใดๆ คุณสามารถยกระดับและ/หรือเสนอแนะการเปลี่ยนแปลงในการนำไปปฏิบัติได้
หากคุณสนใจที่จะมีส่วนร่วมใน codebase นี้ โปรดปฏิบัติตามหลักเกณฑ์ในการสนับสนุน ข้อมูลนี้มีคำแนะนำเกี่ยวกับการมีส่วนร่วมโดยตรงและการเพิ่มคำขอคุณสมบัติหรือรายงานข้อผิดพลาด โปรดปฏิบัติตามจรรยาบรรณของเราเมื่อดำเนินการใดๆ ข้างต้น