日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php 微信转账,php实现微信公众号企业转账功能

發(fā)布時(shí)間:2025/3/12 php 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 微信转账,php实现微信公众号企业转账功能 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

企業(yè)付款提供由商戶直接付錢至用戶微信零錢的能力,支持平臺(tái)操作及接口調(diào)用兩種方式,資金到賬速度快,使用及查詢方便。主要用來解決合理的商戶對用戶付款需求,比如:保險(xiǎn)理賠、彩票兌換等等。

特點(diǎn)發(fā)起方式靈活,可通過頁面或接口發(fā)起

微信消息觸達(dá),用戶及時(shí)獲知入賬詳情

支持實(shí)名校驗(yàn),判斷收款人真實(shí)身份

通過openid即可實(shí)現(xiàn)付款,無需用戶敏感隱私信息

到賬速度快,在發(fā)起后,用戶可在幾分鐘內(nèi)收到付款

企業(yè)轉(zhuǎn)賬需要到微信商戶平臺(tái)=》產(chǎn)品中心=》企業(yè)付款到零錢,開啟此功能

下面是程序截圖:

第一步:設(shè)置配置參數(shù)$url="https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers";$pars = array();$pars["mch_appid"] =$this->module["config"]["appid"];$pars["mchid"]=$this->module["config"]["mchid"];$pars["nonce_str"] =random(32);$pars["partner_trade_no"] =time().random(3,1);$pars["openid"] =$openid;$pars["check_name"] ="NO_CHECK" ;//$pars["re_user_name"] ="" ;$monet_finall = $price * 100;$pars["amount"] =$monet_finall; //這里是折算成1%的所以要*100$pars["desc"] ="您已成功提現(xiàn) ".$price." 現(xiàn)金";$pars["spbill_create_ip"] =$this->module["config"]["ip"];ksort($pars, SORT_STRING);$string1 = "";foreach ($pars as $k => $v) { $string1 .= "{$k}={$v}&";}$string1 .= "key=".$this->module["config"]["password"];$pars["sign"] = strtoupper(md5($string1));$xml = array2xml($pars);$extras = array();$extras["CURLOPT_CAINFO"] = ATTACHMENT_ROOT . "/withdraw/cert/rootca.pem." . $_W["uniacid"];$extras["CURLOPT_SSLCERT"] = ATTACHMENT_ROOT . "/withdraw/cert/apiclient_cert.pem." . $_W["uniacid"];$extras["CURLOPT_SSLKEY"] = ATTACHMENT_ROOT . "/withdraw/cert/apiclient_key.pem." . $_W["uniacid"];$procResult = null;

第二步:CURL請求微信服務(wù)器load()->func("communication");$resp = ihttp_request($url, $xml, $extras);

其中ihttp_request函數(shù)內(nèi)容是:function ihttp_request($url, $post = "", $extra = array(), $timeout = 60) { $urlset = parse_url($url); if (empty($urlset["path"])) { $urlset["path"] = "/"; } if (!empty($urlset["query"])) { $urlset["query"] = "?{$urlset["query"]}"; } if (empty($urlset["port"])) { } if (strexists($url, "https://") && !extension_loaded("openssl")) { if (!extension_loaded("openssl")) { message("請開啟您PHP環(huán)境的openssl"); } } if (function_exists("curl_init") && function_exists("curl_exec")) { $ch = curl_init(); if (!empty($extra["ip"])) { $extra["Host"] = $urlset["host"]; $urlset["host"] = $extra["ip"]; unset($extra["ip"]); } curl_setopt($ch, CURLOPT_URL, $urlset["scheme"] . "://" . $urlset["host"] . ($urlset["port"] == "80" || empty($urlset["port"]) ? "" : ":" . $urlset["port"]) . $urlset["path"] . $urlset["query"]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_HEADER, 1); @curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); if ($post) { if (is_array($post)) { $filepost = false; foreach ($post as $name => &$value) { if (version_compare(phpversion(), "5.6") >= 0 && substr($value, 0, 1) == "@") { $value = new CURLFile(ltrim($value, "@")); } if ((is_string($value) && substr($value, 0, 1) == "@") || (class_exists("CURLFile") && $value instanceof CURLFile)) { $filepost = true; } } if (!$filepost) { $post = http_build_query($post); } } curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); } if (!empty($GLOBALS["_W"]["config"]["setting"]["proxy"])) { $urls = parse_url($GLOBALS["_W"]["config"]["setting"]["proxy"]["host"]); if (!empty($urls["host"])) { curl_setopt($ch, CURLOPT_PROXY, "{$urls["host"]}:{$urls["port"]}"); $proxytype = "CURLPROXY_" . strtoupper($urls["scheme"]); if (!empty($urls["scheme"]) && defined($proxytype)) { curl_setopt($ch, CURLOPT_PROXYTYPE, constant($proxytype)); } else { curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); } if (!empty($GLOBALS["_W"]["config"]["setting"]["proxy"]["auth"])) { curl_setopt($ch, CURLOPT_PROXYUSERPWD, $GLOBALS["_W"]["config"]["setting"]["proxy"]["auth"]); } } } curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSLVERSION, 1); if (defined("CURL_SSLVERSION_TLSv1")) { curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1); } curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1"); if (!empty($extra) && is_array($extra)) { $headers = array(); foreach ($extra as $opt => $value) { if (strexists($opt, "CURLOPT_")) { curl_setopt($ch, constant($opt), $value); } elseif (is_numeric($opt)) { curl_setopt($ch, $opt, $value); } else { $headers[] = "{$opt}: {$value}"; } } if (!empty($headers)) { curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); } } $data = curl_exec($ch); $status = curl_getinfo($ch); $errno = curl_errno($ch); $error = curl_error($ch); curl_close($ch); if ($errno || empty($data)) { return error(1, $error); } else { return ihttp_response_parse($data); } } $method = empty($post) ? "GET" : "POST"; $fdata = "{$method} {$urlset["path"]}{$urlset["query"]} HTTP/1.1"; $fdata .= "Host: {$urlset["host"]}"; if (function_exists("gzdecode")) { $fdata .= "Accept-Encoding: gzip, deflate"; } $fdata .= "Connection: close"; if (!empty($extra) && is_array($extra)) { foreach ($extra as $opt => $value) { if (!strexists($opt, "CURLOPT_")) { $fdata .= "{$opt}: {$value}"; } } } $body = ""; if ($post) { if (is_array($post)) { $body = http_build_query($post); } else { $body = urlencode($post); } $fdata .= "Content-Length: " . strlen($body) . "{$body}"; } else { $fdata .= ""; } if ($urlset["scheme"] == "https") { $fp = fsockopen("ssl://" . $urlset["host"], $urlset["port"], $errno, $error); } else { $fp = fsockopen($urlset["host"], $urlset["port"], $errno, $error); } stream_set_blocking($fp, true); stream_set_timeout($fp, $timeout); if (!$fp) { return error(1, $error); } else { fwrite($fp, $fdata); $content = ""; while (!feof($fp)) $content .= fgets($fp, 512); fclose($fp); return ihttp_response_parse($content, true); }}

第三步:解析分析微信服務(wù)器返回值并返回。if (is_error($resp)) { $procResult = $resp;} else { $arr=json_decode(json_encode((array) simplexml_load_string($resp["content"])), true); $xml = "<?xml version="1.0" encoding="utf-8"?>" . $resp["content"]; $dom = new DOMDocument(); if ($dom->loadXML($xml)) { $xpath = new DOMXPath($dom); $code = $xpath->evaluate("string(//xml/return_code)"); $ret = $xpath->evaluate("string(//xml/result_code)"); if (strtolower($code) == "success" && strtolower($ret) == "success") { $procResult = array("errno"=>0,"error"=>"success");; } else { $error = $xpath->evaluate("string(//xml/err_code_des)"); $procResult = array("errno"=>-2,"error"=>$error); } } else { $procResult = array("errno"=>-1,"error"=>"未知錯(cuò)誤"); }}return $procResult;

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持網(wǎng)頁設(shè)計(jì)。

總結(jié)

以上是生活随笔為你收集整理的php 微信转账,php实现微信公众号企业转账功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。