Recommended PrestShop Version

Thanks for choosing Agile.
For customers using our Agile Multiple Seller module and its accessry modules, we highly recommend to use PrestaShop 1.6x or 1.7.5 or lower. PrestaShop has made some changes in versions higher than 1.7.6 that makes it possible or very difficult to implement some of features via hooks, or override, since required hooks or override is not available.

Sept. 05, 2019

מדריך שילוב מודול תשלום

מצב אוסף של תשלום ואינטגרציה

לפני אנחנו מציגים שילוב מודול תשלום, אנחנו צריכים להבין מה קורה מצב התשלום אוסף modul זריז המוכר מרובים. בעת שימוש זריז המוכר מרובים ומודולים אביזר שלה כפתרון שוק מקוון, עליך לשלב/התאמה אישית של מודול תשלום שלך לתוך זריז הסביבה המוכר מרובים. זה תלוי מצב אוסף התשלום של שלך זריז המוכר מרובים, שבשימושך, דרישות של מודול תשלום הוא קצת שונה.

חנות אוספת התשלום

אתה לא צריך לשלב או להתאים אישית את מודול תשלום, אתה יכול להשתמש כל מודול תשלום המפלגה השלישית במצב זה אוסף התשלום. אבל מודול תשלום לציית בעקבות הצעדים בתהליך התשלום וליצור הזמנות
= > Proess התשלום הראשון (כל. עגלת הקניות)
= > ואז ליצור הזמנות על-ידי הקורא valiateOrder() של PaymentModule מחלקה או עקיפה שלה

המוכר אוסף תשלומים
 

יהיה עליך לשלב מודול התשלום שלך.

גם המוכר וגם חנות לאסוף תשלום 

אתה צריך לשלב /להתאים אישית מודול תשלום.


תנאים של מודול תשלום המפלגה השלישית יוכלו להשתלב עם מודול זריז המוכר מרובים.

א תהליך התשלום בתוך חנות
מודול תשלום לסיים את תהליך התשלום בתוך PrestaShop בלי מחדש את המשתמשים לאתר שער התשלום יאשר תשלום. סוג זה של מודול תשלום להשתמש בדרך כלל תשלום gateway API או שירות אינטרנט כדי לשלוח הקונה תשלום פרטי כדי תשלום gateway והחזרה התוצאה התשלום בצד השרת, הקונה אינו חייב להיות ניתן לניתוב מחדש אל אתר האינטרנט של החברה התשלום יאשר תשלום. רוב מודולים התשלום בכרטיס אשראי להשתמש בדרך זו.

B. תהליך התשלום לפני יצירת הזמנות
מודול התשלום עליך לעבד את התשלום לפני יצירת הזמנות. . זה רק כאשר התשלום עיבוד בהצלחה, ואז השיחה PaymentModule -> validateOrder() כדי ליצור סדר. ValidateOrder() יכול להיות שיטת העקיפה של מודול התשלום.

צעדים כדי לשלב מודול המפלגה השלישית שלך עם המוכר מרובים - זריז המוכר מרובים 3.2.0.1 או מעל
בבקשה להתמקד בשורות קוד כחול - קוד לשילוב.

1. להגדיר מצב אוסף של תשלום כדי לתמוך
הוסף בעקבות קו לשיעור מודול התשלום להגדיר מה מצב אוסף של תשלום מודול אתה תתמוך

מחלקה AgilePaypalParallel משתרע PaymentModule
{
הציבור $PaymentCollectionMode סטטי = (מערך
1 = > ///seller אמת אוספת התשלום - תשלומי הקונה יפוצל חשבון מוכרי
, 2 = > חנות אמיתית ///both, המוכר לאסוף את התשלום - הקונה התשלום תתחלק בחשבון store(commission) ומוכרים
, 3 = > ///store אמת אוספת את התשלום מן הקונים
   );
   ................
}

2. תשלום מודול בקרת הזמינות.
הוסף בעקבות שורות קוד בתחילת hookDisplayPayment() שיטה לשליטה מתאימות תענינה את מודול

אם מודול תשלום זה אינו תומך זרם מצב אוסף של המוכר תשלום מרובים ולאחר מכן החזרה שווא - אינם מופיעים
$paymode = (int)Configuration::get('AGILE_MS_PAYMENT_MODE');
if(Module::isInstalled('agilemultipleseller') & &! עצמית:: $PaymentCollectionMode [$paymode]) יש להחזיר false;


3. רישום וו להודיע מודול המוכר מרובים להשתלב
בתוך מודול שלך להתקין את השיטה, הוספת קו לרשום וו actionAgilePaymentModuleIntegrate להודיע זריז מודול המוכר מרובים לשלב מודול תשלום זה.


פונקציה ציבורית uninstall()
{
כזב החזרה if(!parent::uninstall());
אם (! האב:: install()
או! $this -> registerHook('actionAgilePaymentModuleIntegrate')
. או! Configuration::updateValue ('AGILE_PAYPALPL_BUSINESS', '[email protected]')
. או! Configuration::updateValue ('AGILE_PAYPALPL_SANDBOX', 1)
או! $this -> registerHook('displayPayment')
או! $this -> registerHook('displayPaymentReturn')
) יש להחזיר false;
    .............

}

4. מכינים בשיטה וו כדי להחזיר את המידע הנדרש אינטגרציה
ליצור בעקבות שיטת התשלום מודול ליבה הכיתה, אז זה ייקרא על ידי מודול המוכר מרובים כדי לאחזר שילוב מידע הקשור.

פונקציה ציבורית hookActionAgilePaymentModuleIntegrate($params)
{
להחזיר מערך (
'שם' = > $this -> שם,
'יורד' = > $this -> displayName.
'מצב' = > עצמית:: $PaymentCollectionMode,
'elinks' = > מערך (
(מערך
'תווית' = > $this -> l ('לאשר פס חיבור')
, 'כתובת url' = > 'https://connect.stripe.com/oauth/authorize'
, 'תיאור' = > $this -> l ("לחץ כאן כדי לאשר או לאשר מחדש את חשבונך פס להתחבר עם הפלטפורמה בשוק')
             ),
      ),

'info1' = > array ('תווית' = > $this -> l ('API מזהה כניסה'), 'is_unique' = > 1, 'is_readonly' = > 0, 'תיאור' = > $this -> l ('הסבר של fiels ')),
'info2' = > array ('תווית' = > $this -> l ('עסקת מפתח'), 'is_unique' = > 1, 'is_readonly' = > 1, 'תיאור' = > $this -> l ('הסבר של fiels')),
'info3' = > array ('תווית' = > 'מסוג', 'is_unique' = > 0,'is_readonly' = > 0, 'תיאור' = > '),

'info4' = > array ('תווית' = > 'מסוג', 'is_unique' = > 0,'is_readonly' = > 0, 'תיאור' = > '),
'info5' = > array ('תווית' = > 'מסוג', 'is_unique' = > 0,'is_readonly' = > 0, 'תיאור' = > '),
'info6' = > array ('תווית' = > 'מסוג', 'is_unique' = > 0,'is_readonly' = > 0, 'תיאור' = > '),
'info7' = > array ('תווית' = > 'מסוג', 'is_unique' = > 0,'is_readonly' = > 0, 'תיאור' = > '),
'info8' = > array ('תווית' = > 'מסוג', 'is_unique' = > 0,'is_readonly' = > 0, 'תיאור' = > '),
    );
}

seller payment setting screen - integrated module

ב מעל שיטה הוק, אתה תספק בעקבות מידע זריז מודול המוכר מרובים.
-שם של המודול (שם פנימי)
-תיאור של המודול (שם התצוגה של המודול)
-מצב אוסף של התשלום הזמינות שלך מודול יתמוך
-פרטי התשלום המוכר הזה צריך לספק לגבות תשלום מן הקונים באמצעות מודול זה. בדרך כלל תצורת השדות של מודולים שלך. יש maximium 8 שדות זמינים לשימוש. מספר השדות הנדרשים תלויים שלך מודול תשלום.

ברוב המקרים את שדות פרטי requited החנות הראשית שונה מן המוכרים, אבל מתישהו הם זהים. לדוגמה, Authorize.NET גמיש המודול יהיה בעקבות 2 שדות כפי שמתואר לעיל דוגמאות קוד.
-יומן API ID
-תנועה

אתה צריך להגדיר את תווית השדה גם לציין אם השדה הוא חלק שדות ייחודיים כדי לאמת כאשר המוכר הוספת פרטי התשלום החדש. המודול ישתמש השדות עם הערך is_unique 1 כדי לבדוק אם פרטי התשלום הוא זהה עם אחרים המוכרים כדי למנוע כפילות.

הערה
תמשיך בבקשה את הקוד ככה, רק לשנות את הערך כך התווית יהיו מסוגלים לתמוך בשפות מרובות, ניתן יהיה לתרגם את שם השדה לשפות שונות על הכרטיסיה תנועות משרד אחורי - הגרסא המקומית-

5. מכינים תשלום פרטי שדה המאמת (אופציונלי)
כל המוכר יהיה עליך להזין את פרטי התשלום עבור קבלת תשלום מן הקונים (או מהחנות). אולי צריך לאמת כל שדה המוכר הזה מזין נתונים חוקי. לדוגמה, אם זה מודול Paypal, ברצונך לאמת את השדה הראשון "info1" את המוכר נכנס הוא כתובת דוא ל חוקית.

הנה דוגמא של validator במודול התשלום שלך

פונקציה ציבורית validatePaymentInfoFields($paymentinfo)
{
$errors = array();
   
[] if(empty($paymentinfo)) $errors = $this -> l ("מידע לא חוקי התשלום");

$info1 = (is_array($paymentinfo)? $paymentinfo ['info1']: $paymentinfo -> info1);
אם (!. [] Validate::isEmail($info1)) $errors = $this -> שם. ":" . $this -> l ('כתובת דואר אלקטרוני Paypl'). $this -> l ('אינו חוקי.");

החזרה $errors;
}


6. תהליך התשלום של validateOrder() - ליצור סדר
כדי לשלב את מודול תשלום, מודול תשלום שלך עליך בצע את השלבים סטנדרטי PrestaShop הוצאה והסדר עיבוד הליך הקשור התשלום. הנה התהליך הקשור עם התשלום.

= = > פרטי התשלום לאחזר א = = > B. לבצע תשלום = = > ValidateOrder(Create Order data) ג

אחזר נתונים התשלום

יהיה עליך להתקשר בעקבות השיטה של מודול המוכר Mulltiple Agiile כדי לקבל את הנתונים התשלום.

$payments = AgileMultipleSeller::get_payment_info_from_cart();

המודול יחזיר מערך עם נתוני התשלום בהתבסס על מצב אוסף התשלום. כל רכיב של המערך יכיל הבאים מידע-

-$id_seller כמפתח של מערך
-"דואר אלקטרוני": נמען (המוכר) דוא ל כתובת (המוכר או החנות), לדוגמה, [email protected]
-'סכום': הסכום של הנמען צריך לקבל, למשל, $230.00
-'עמלה': הנציבות המוכר לשלם או לחנות כדי לקבל

הערה
: הסכום הוא מטבע עגלת קניות, יהיה עליך להמיר מטבע specificed שלך מודול התשלום לפני לשלוח getway התשלום.

מתחת יש הקוד לדוגמה כדי להציג את נתוני התשלום עבור מודול התשלום שלך.

$payments = AgileMultipleSeller::get_payment_info_from_cart();
foreach ($payments $id_seller = > $payment)
{
. התשלום עיבוד קוד
}

$this -> validateOrder(...)
 

הקוד עבור עיבוד התשלום יהיה שונה עבור מודולים תשלום אחרת. אנחנו נעזוב אותך לקבוע כיצד ליישם את התשלום. אנחנו נעזוב גם את התשלום בשגיאות להתמודד. לדוגמה, אם המוכר מרובים בעגלת הקניות אחת, יהיה עליך לטפל אם התשלום המוכר כמה נכשל. קצת קרדיט עגלה התשלום תומך 2 שלבים - לאשר את התשלום הראשון ולאחר מכן ללכוד את הסכום כדי לסיים את אחת תשלומים, אנו מציעים אישרת תשלום המוכרים כל קודם ואז validateOrder(), ואז השיחה "ללכוד" כדי לסיים את התשלומים.

הערה:

בהתאם שער התשלום, ייתכן שתצטרך של המוכר פרטי התשלום כגון API אישורים במקום של החנות שלך אם הנמען התשלום הוא המוכר. באפשרותך להשתמש בעקבות קוד כדי לקבל את התשלום המוכר מידע (כגון אישורים API) עבור מודול התשלום שלך.

include_once (_PS_ROOT_DIR_. "/ modules/agilemultipleseller/AgileSellerPaymentInfo.php");
$paymentinfo = AgileSellerPaymentInfo::getForSellerByModuleName ($זה -> שם, $id_seller);




להשתעשע עם השילוב.