توضح هذه المقالة طريقة PHP لتحقيق دفع الأفراد الذين لديهم حسابات WeChat Enterprise. ، التفاصيل كما يلي:
مقدمة: الموزع ، كيفية سحب النقود من WeChat Business؟
ادفع مباشرة مع WeChat.
التنفيذ على النحو التالي:
تكوين دفع WeChat
/*wechat payment*/'pay_weixin' => array ('appid' => 'xxxx' ، 'appsecret' => 'xxxxxx ،' mchid '=>' 1283301801 '، // merchant' key '=>' zhudianbaodiandiandiandianba0527 '، // merchant. => 'conf/cert/apiclient_cert.pem' ، // شهادة التاجر apiclient_cert.pem 'apiclient_key' => 'conf/cert/apiclient_key.pem' ، // شهادة التاجر apiclient_key.pem)arraytoxml
؟ foreach ($ arr as $ key => $ val) {if (is_numeric ($ val)) {$ xml. = "<". $ key. " } else $ xml. = "<". $ key. "> <! } $ xml. = "</xml>" ؛ إرجاع $ xml ؛}استخدم الشهادة لإرسال XML إلى عنوان URL للواجهة المقابلة في المنشور
/*** الوظيفة: استخدم شهادة لإرسال XML إلى عنوان URL للواجهة المقابلة*/وظيفة postxmlsslcurl ($ xml ، $ url ، $ second ، $ cert ، $ key) {$ ch = curl_init () ؛ // timeout time curl_setopt ($ ch ، curlopt_timeout ، $ second؟ $ second: $ this-> timeout) ؛ // قم بتعيين الوكيل هنا ، إذا كان هناك واحد // curl_setopt ($ ch ، curlopt_proxy ، '8.8.8.8') ؛ // curl_setopt ($ ch ، curlopt_proxyport ، 8080) ؛ curl_setopt ($ ch ، curlopt_url ، $ url) ؛ curl_setopt ($ ch ، curlopt_ssl_verifypeer ، false) ؛ curl_setopt ($ ch ، curlopt_ssl_verifyhost ، false) ؛ // set header curl_setopt ($ ch ، curlopt_header ، false) ؛ // قم بتعيين النتيجة كسلسلة وإخراج إلى الشاشة curl_setopt ($ ch ، curlopt_returntransfer ، true) ؛ // قم بتعيين الشهادة // استخدم الشهادة: cert والمفتاح الذي ينتمي إلى ملفين .pem على التوالي // التنسيق الافتراضي هو pem ، يمكنك التعليق على curl_setopt ($ ch ، curlopt_sslcerttype ، 'pem') ؛ curl_setopt ($ ch ، curlopt_sslcert ، $ cert) ؛ // التنسيق الافتراضي هو PEM ، يمكنك التعليق على curl_setopt ($ ch ، curlopt_sslkeytype ، 'pem') ؛ curl_setopt ($ ch ، curlopt_sslkey ، $ key) ؛ // طريقة تقديم post curl_setopt ($ ch ، curlopt_post ، true) ؛ curl_setopt ($ ch ، curlopt_postfields ، $ xml) ؛ $ data = curl_exec ($ ch) ؛ // نتيجة الإرجاع إذا ($ data) {curl_close ($ ch) ؛ إرجاع $ this-> xmltoarray ($ data) ؛ } آخر {$ error = curl_errno ($ ch) ؛ صدى "خطأ حرج ، رمز الخطأ: $ خطأ". "<br>" ؛ curl_close ($ ch) ؛ العودة كاذبة }}الشركات تدفع الأفراد
. // الكشف المطلوبة المعلمات إذا ($ params ["" partner_trade_no "] == NULL) {// exit (" واجهة تطبيق REWND ، المعلمات المطلوبة شريكًا _trade_no! "." <br> ") ؛ } elseif ($ params ["OpenId"] == NULL) {exit ("واجهة تطبيق REWSTRALD ، المعلمات المطلوبة openId!". "<br>") ؛ } elseif ($ params ["" check_name "] == null) {// no_check: لا يوجد اسم حقيقي للتحقق من force_check: التحقق القوي من الاسم الحقيقي (سوف يفشل المستخدمون بدون مصادقة الاسم الحقيقية (لا يمكن للتحقق من ذلك ، لا يمكن نقل المحول). واجهة ، المعلمة المطلوبة check_name مفقودة! "." <br> ") ؛ } elseif (($ params ["check_name"] == 'force_check' أو $ params ["check_name"] == 'OPTION_CHECK') && ($ params ["re_user_name"] == null)) {// الاسم الحقيقي لمستخدم الدفع. الخروج ("واجهة تطبيق المبلغ ، المعلمة المطلوبة re_user_name مفقودة!". "<br>") ؛ } elseif ($ params ["extre"] == null) {exit ("واجهة تطبيق المبلغ ، فإن مبلغ المعلمة المطلوب مفقود!". "<br>") ؛ } elseif ($ params ["desc"] == null) {exit ("واجهة تطبيق المبلغ ، المعلمة المطلوبة desc!". "<br>") ؛ } $ params ["mch_appid"] = $ this-> appid ؛ // معرف الحساب العام $ params ["mchid"] = $ this-> mchid ؛ // number $ $ params ["nonce_str"] = $ this-> createNoncestr () ؛ ؟ '192.127.1.1': $ _server ['remote_addr'] return $ this-> postxmlsslcurl ($ xml ، $ url ، false ، $ ascert_cert ، $ apiclient_key) ؛}