مستندات نزهة
اسم | بوابة | إجراءات الدعم | دعم رد الاتصال | ملاحظة |
---|---|---|---|---|
alipay_app | الدفع عبر تطبيق Alipay | الاستعلام عن الدفع/الدفع/استرداد الأموال | يدفع | |
alipay_qr | دفع رمز المسح Alipay | الاستعلام عن الدفع/الدفع/استرداد الأموال | يدفع | |
alipay_wap | الدفع عبر موقع Alipay عبر الهاتف المحمول | الاستعلام عن الدفع/الدفع/استرداد الأموال | يدفع | |
alipay_web | الدفع عبر موقع Alipay للكمبيوتر الشخصي | الاستعلام عن الدفع/الدفع/استرداد الأموال | يدفع | |
wechat_app | الدفع عبر تطبيق WeChat | استعلام عن الدفع/الدفع/استرداد الأموال/استرداد الأموال | إشعار الدفع/إشعار استرداد الأموال | |
wechat_h5 | الدفع عبر WeChat H5 | استعلام عن الدفع/الدفع/استرداد الأموال/استرداد الأموال | إشعار الدفع/إشعار استرداد الأموال | وظيفة مدمجة للاستيلاء على روابط الدفع |
wechat_mina | الدفع لبرنامج WeChat Mini | استعلام عن الدفع/الدفع/استرداد الأموال/استرداد الأموال | إشعار الدفع/إشعار استرداد الأموال | |
wechat_official | الدفع عبر حساب WeChat الرسمي | استعلام عن الدفع/الدفع/استرداد الأموال/استرداد الأموال | إشعار الدفع/إشعار استرداد الأموال | |
wechat_qr | دفع رمز مسح WeChat | استعلام عن الدفع/الدفع/استرداد الأموال/استرداد الأموال | إشعار الدفع/إشعار استرداد الأموال | |
union_web | الدفع عبر الويب UnionPay | الاستعلام عن الدفع/الدفع | إشعار الدفع | النسخة الأقدم |
union_app | الدفع عبر الويب UnionPay | يدفع | إشعار الدفع | النسخة الأقدم |
paypal_express_checkout | باي بال اكسبرس الخروج | الاستعلام عن الدفع/الدفع | إشعار الدفع | غير مستقر |
pingan_wechat_h5 | دفع Ping An Bank WeChat H5 | الاستعلام عن الدفع/الدفع/استرداد الأموال | يدفع | |
wechatoversea_official | الدفع عبر الحساب العام عبر WeChat | الاستعلام عن الدفع/الدفع/استرداد الأموال | يدفع |
عند الاتصال بمدفوعات طرف ثالث، خاصة عند الاتصال بمدفوعات طرف ثالث متعددة، تحتاج إلى قراءة مستندات الطرف الثالث وقضاء الكثير من الوقت في تجميع المعلمات وتصحيح الأخطاء، على سبيل المثال، الاتصال بطرف ثالث لتقديم طلب و قم بإنشاء دفعة. إذا كنت بحاجة إلى الاتصال بـ WeChat و Alipay في نفس الوقت، فأنت بحاجة إلى جمع المستندات، وهو ما يمكن أن يكون مزعجًا للغاية (في الواقع، لا بأس... ههه...).
يوفر هذا المكون ثلاثة أجزاء للتواصل مع الأطراف الثالثة:
وينقسم كل جزء إلى إجراءات مختلفة، ويرتبط كل إجراء بنموذج ثابت (Form)، ويكون محتوى كل نموذج ثابتًا.
على سبيل المثال، عند الاتصال بطرف ثالث لتقديم طلب وإنشاء دفعة (ChargeRequest)، فإن النموذج الذي يستخدمه هو ChargeRequestForm
. بعد ملء النموذج وتمرير المكون، يمكن للمكون معالجة المعلمات واستدعاء الطرف الثالث - دفع الحفلة .
بهذه الطريقة، ما عليك سوى فهم محتوى نموذج المكون للاتصال بمدفوعات خارجية متعددة مرة واحدة وإلى الأبد (hhh غير موجود).
هنا نأخذ الدفع على موقع Alipay PC كمثال. إذا كنت بحاجة إلى استخدام بوابات دفع أخرى، فأنت تحتاج فقط إلى تعديل $gateway
التي تم تمريرها عند إنشاء مثيل Cashier
.
لاحظ أن وحدة العملة الأساسية التي يستخدمها المكون هي السنتات.
<?php
use Runner NezhaCashier Cashier ;
// 按格式组装好配置
$ config = [
' app_id ' => ' xxxx ' ,
' app_private_key ' => ' xxxxx ' ,
' alipay_public_key ' => ' xxxxx ' ,
];
// 创建实例, 传入要使用的 Gateway
$ cashier = new Cashier ( ' alipay_web ' , $ config );
إنشاء الدفع
<?php
// 组装 ChargeRequestForm
$ data = [
' order_id ' => ' 151627101400000071 ' ,
' subject ' => ' testing ' ,
' amount ' => 1 ,
' currency ' => ' CNY ' ,
' description ' => ' testing description ' ,
' return_url ' => ' https://www.baidu.com ' ,
' expired_at ' => ' 2018-01-23 19:00:00 ' ,
];
$ form = $ cashier -> charge ( $ data );
// 以 laravel 为例
return redirect ( $ form -> get ( ' charge_url ' ));
التحقق من الدفع
<?php
$ form = $ cashier -> query ([
' order_id ' => ' 151627101400000071 ' ,
]);
var_dump ( ' paid ' === $ form -> get ( ' status ' ));
تلقي الإخطارات
<?php
$ form = $ cashier -> notify ( ' charge ' );
var_dump ( ' paid ' === $ form -> get ( ' status ' ));
var_dump ( $ form -> get ( ' trade_sn ' )); // 取得第三方交易号
استرداد
<?php
$ form = $ cashier -> refund ([
' order_id ' => ' 151627101400000071 ' ,
' refund_id ' => ' 3151627101400000071 ' ,
' total_amount ' => 1 ,
' refund_amount ' => 1 ,
]);
اسم الحقل | هل هو ضروري | وصف المجال | ملاحظة |
---|---|---|---|
order_id | نعم | رقم الطلب | |
موضوع | نعم | عنوان الطلب | |
كمية | نعم | مبلغ الطلب | يرجى ملاحظة أن بعض قنوات الدفع لديها حد أعلى للمبلغ. |
عملة | نعم | طلب العملة | انتبه إلى قنوات الدفع |
وصف | نعم | وصف الطلب | سيكون لقنوات الدفع حدود طول مختلفة |
user_ip | لا | عنوان IP الخاص بالمستخدم | |
return_url | لا | عنوان رد الاتصال | يجب ملء قناة الدفع الخاصة بنوع الويب |
show_url | لا | عنوان العرض | |
جسم | لا | تفاصيل الطلب | يجب أن أحذف هذه المعلمة |
انتهت صلاحيتها | لا | وقت انتهاء الصلاحية | الطابع الزمني لينكس |
create_at | لا | وقت الخلق | الطابع الزمني لنظام Unix، لا يمكنك أن تصدق أنك بحاجة إلى هذا أصلاً؟؟ |
ولا يزال يتعين إضافة آخرين..
س : ما هي المزايا مقارنة بحزم SDK الأخرى؟
ج : بغض النظر عن مدى أناقة SDK أو سهولة استخدامها، فإن معظمها يتطلب منك تمرير المعلمات وفقًا لأسماء معلمات الطرف الثالث، ثم يتعين عليك قراءة الوثائق وإجراء الكثير من المعالجة في ملف ما أريده هو أنه بعد جلب الطلب من قاعدة البيانات، يمكن معالجته مرة واحدة للوصول إلى دفعات متعددة.
س : هل من الضروري قراءة مستندات الدفع الخاصة بطرف ثالث؟
ج : لا، أقترح أنك لا تزال بحاجة إلى إلقاء نظرة عليه، وبعض المدفوعات في المكون (مثل حساب WeChat الرسمي) تحتاج إلى تمرير بعض المعلمات الخاصة. يساعدك المكون فقط على حل مشكلة الاتصال المزعجة.
معهد ماساتشوستس للتكنولوجيا