精华内容
下载资源
问答
  • PHP微信提现

    2020-05-27 16:18:37
    1、微信提现到零钱功能既是商户号中"企业付款到零钱"功能,开通链接https://pay.weixin.qq.com/index.php/public/product/detail?pid=5&productType=0 2、微信提现文档:...

    1、微信提现到零钱功能既是商户号中"企业付款到零钱"功能,开通链接https://pay.weixin.qq.com/index.php/public/product/detail?pid=5&productType=0
    2、微信提现文档:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2
    3、在提现文档中有个参数为appid,如果你是通过微信开放平台授权获得的openid,那么在参数中appid为开放平台应用的appid,如果你是通过微信公众号授权获得的openid,那么参数中appid为公众号的appid。需要自己在代码中做判断。如果不一致,会报错“appid与openid不匹配”。
    提现代码如下(TP5):

    public function wx_withdrawal(){
    	header('content-type:text/html;charset=utf-8');
    	$mch_appid = "**************";   #appid
        $key = "**********************************";     #商户key
        $mchid = "***********";    #商户号
        $desc='提现';
        $openid='********************';
        $check_name='NO_CHECK';     #此参数为不验证真实姓名,如果需要验证真实姓名,请参考微信文档,注意参数排序,否则将报错->签名错误
        #$re_user_name='';        #微信真实姓名
        
        $nonce_str = strtoupper(md5(time()));
        $partner_trade_no = time().rand(100,999);   #订单号
        $amount = 0.3 * 100;     #总金额   最小0.3,最大5000,以分为单位,金额*100
        $spbill_create_ip = $_SERVER['REMOTE_ADDR'];
        $www_url = $_SERVER['HTTP_HOST'];
        $stringA = "amount={$amount}&check_name={$check_name}&desc={$desc}&mch_appid={$mch_appid}&mchid={$mchid}&nonce_str={$nonce_str}&openid={$openid}&partner_trade_no={$partner_trade_no}&spbill_create_ip={$spbill_create_ip}";
        $stringSignTemp = $stringA."&key=".$key;
        $sign=strtoupper(md5($stringSignTemp));
        $postData =
            "<xml>
        <amount>{$amount}</amount>
        <check_name>{$check_name}</check_name>
        <desc>{$desc}</desc>
        <mch_appid>{$mch_appid}</mch_appid>
        <mchid>{$mchid}</mchid>
        <nonce_str>{$nonce_str}</nonce_str>
        <openid>{$openid}</openid>
        <partner_trade_no>{$partner_trade_no}</partner_trade_no>
        <spbill_create_ip>{$spbill_create_ip}</spbill_create_ip>
        <sign>{$sign}</sign>
        </xml>";
        $url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';
        $dataxml = postCertXmlCurl($url,$postData);   #在这里post请求是要带证书,方法如下
        if($dataxml['return_code'] == 'SUCCESS' && $dataxml['result_code'] == 'SUCCESS'){
        	#执行提现到账后的逻辑
        }else{
        	$this->error($dataxml['err_code_des']);
        }
    }
    
    function postCertXmlCurl($url,$xml)
    {
    
        $ch = curl_init();
        curl_setopt($ch,CURLOPT_URL, $url);
        curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);//严格校验
        //设置header
        curl_setopt($ch, CURLOPT_HEADER, FALSE);
        //要求结果为字符串且输出到屏幕上
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    
        curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,1);//证书检查
        curl_setopt($ch,CURLOPT_SSLCERTTYPE,'pem');
        curl_setopt($ch,CURLOPT_SSLCERT,$_SERVER['DOCUMENT_ROOT'].'/wxcert/apiclient_cert.pem');
        curl_setopt($ch,CURLOPT_SSLCERTTYPE,'pem');
        curl_setopt($ch,CURLOPT_SSLKEY,$_SERVER['DOCUMENT_ROOT'].'/wxcert/apiclient_key.pem');
        //    curl_setopt($ch,CURLOPT_SSLCERTTYPE,'pem');
        //    curl_setopt($ch,CURLOPT_CAINFO,dirname(__FILE__).'/cert/rootca.pem');
    
        //post提交方式
        curl_setopt($ch, CURLOPT_POST, TRUE);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
        //运行curl
        $data = curl_exec($ch);
        $objectxml = (array)simplexml_load_string($data, 'SimpleXMLElement', LIBXML_NOCDATA);
        //         $data = $this->xml_to_json($data);
        return $objectxml;
        //         dump($objectxml);die;
    }
    
    展开全文
  • 有的商户号的产品中心是没有这个功能的,不过,该功能的pid(product id)是5,只要随便进去某...用户提现代码://用户微信提现private function withdrawals_weixin($id){$falg = M('withdrawals')->where(['id'=...

    怎么开通企业付款到零钱?

    有的商户号的产品中心是没有这个功能的,不过,该功能的pid(product id)是5,只要随便进去某一个产品,在地址栏把pid改为5。

    即可进入该功能页面,进行开通,不过要满足条件。

    用户提现代码:

    //用户微信提现

    private function withdrawals_weixin($id){

    $falg = M('withdrawals')->where(['id'=>$id])->find();

    $openid = M('users')->where('user_id', $falg['user_id'])->value('openid');

    $data['openid'] = $openid;

    $data['pay_code'] = $falg['id'].$falg['user_id'];

    $data['desc'] = '提现ID'.$falg['id'];

    if($falg['taxfee'] >= $falg['money']){

    return array('status'=>1, 'msg'=>"提现额度必须大于手续费!" );

    }else{

    $data['money'] = bcsub($falg['money'], $falg['taxfee'], 2);

    }

    include_once PLUGIN_PATH . "payment/weixin/weixin.class.php";

    $weixin_obj = new \weixin();

    $result = $weixin_obj->transfer($data);

    return $result;

    }

    其中pay_code在商户号的提现功能是唯一的,所以为了防重放攻击,这个值千万不能用随机数,最好用ID,具有提现记录唯一。

    提现逻辑代码:

    // 微信提现转账

    function transfer($data){

    header("Content-type: text/html; charset=utf-8");

    //CA证书及支付信息

    $wxchat['appid'] = WxPayConfig::$appid;

    $wxchat['mchid'] = WxPayConfig::$mchid;

    $wxchat['api_cert'] = PLUGIN_PATH.'/payment/weixin/cert/apiclient_cert.pem';

    $wxchat['api_key'] = PLUGIN_PATH.'/payment/weixin/cert/apiclient_key.pem';

    // $wxchat['api_ca'] = '/plugins/payment/weixin/cert/rootca.pem';

    $webdata = array(

    'mch_appid' => $wxchat['appid'],

    'mchid' => $wxchat['mchid'],

    'nonce_str' => md5(time()),

    //'device_info' => '1000',

    'partner_trade_no'=> $data['pay_code'], //商户订单号,需要唯一

    'openid' => $data['openid'],//转账用户的openid

    'check_name'=> 'NO_CHECK', //OPTION_CHECK不强制校验真实姓名, FORCE_CHECK:强制 NO_CHECK:

    //'re_user_name' => 'jorsh', //收款人用户姓名

    'amount' => $data['money'] * 100, //付款金额单位为分

    'desc' => $data['desc'],

    'spbill_create_ip' => request()->ip(),

    );

    foreach ($webdata as $k => $v) {

    $tarr[] =$k.'='.$v;

    }

    sort($tarr);

    $sign = implode($tarr, '&');

    $sign .= '&key='.WxPayConfig::$key;

    $webdata['sign']=strtoupper(md5($sign));

    $wget = $this->array2xml($webdata);

    $pay_url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';

    $res = $this->http_post($pay_url, $wget, $wxchat);

    if(!$res){

    return array('status'=>1, 'msg'=>"Can't connect the server" );

    }

    $content = simplexml_load_string($res, 'SimpleXMLElement', LIBXML_NOCDATA);

    if(strval($content->return_code) == 'FAIL'){

    return array('status'=>1, 'msg'=>strval($content->return_msg));

    }

    if(strval($content->result_code) == 'FAIL'){

    return array('status'=>1, 'msg'=>strval($content->err_code),':'.strval($content->err_code_des));

    }

    $rdata = array(

    'mch_appid' => strval($content->mch_appid),

    'mchid' => strval($content->mchid),

    'device_info' => strval($content->device_info),

    'nonce_str' => strval($content->nonce_str),

    'result_code' => strval($content->result_code),

    'partner_trade_no' => strval($content->partner_trade_no),

    'payment_no' => strval($content->payment_no),

    'payment_time' => strval($content->payment_time),

    );

    return $rdata;

    }

    其中PLUGIN_PATH 是一个常量

    define('PLUGIN_PATH', __DIR__ . '/plugins/');

    定义插件目录

    /**

    * 将一个数组转换为 XML 结构的字符串

    * @param array $arr 要转换的数组

    * @param int $level 节点层级, 1 为 Root.

    * @return string XML 结构的字符串

    */

    function array2xml($arr, $level = 1) {

    $s = $level == 1 ? "" : '';

    foreach($arr as $tagname => $value) {

    if (is_numeric($tagname)) {

    $tagname = $value['TagName'];

    unset($value['TagName']);

    }

    if(!is_array($value)) {

    $s .= "".(!is_numeric($value) ? '' : '')."{$tagname}>";

    } else {

    $s .= "" . $this->array2xml($value, $level + 1)."{$tagname}>";

    }

    }

    $s = preg_replace("/([\x01-\x08\x0b-\x0c\x0e-\x1f])+/", ' ', $s);

    return $level == 1 ? $s."" : $s;

    }

    function http_post($url, $param, $wxchat) {

    $oCurl = curl_init();

    if (stripos($url, "https://") !== FALSE) {

    curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);

    curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE);

    }

    if (is_string($param)) {

    $strPOST = $param;

    } else {

    $aPOST = array();

    foreach ($param as $key => $val) {

    $aPOST[] = $key . "=" . urlencode($val);

    }

    $strPOST = join("&", $aPOST);

    }

    curl_setopt($oCurl, CURLOPT_URL, $url);

    curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt($oCurl, CURLOPT_POST, true);

    curl_setopt($oCurl, CURLOPT_POSTFIELDS, $strPOST);

    if($wxchat){

    curl_setopt($oCurl,CURLOPT_SSLCERT,$wxchat['api_cert']);

    curl_setopt($oCurl,CURLOPT_SSLKEY,$wxchat['api_key']);

    curl_setopt($oCurl,CURLOPT_CAINFO,$wxchat['api_ca']);

    }

    $sContent = curl_exec($oCurl);

    $aStatus = curl_getinfo($oCurl);

    curl_close($oCurl);

    if (intval($aStatus["http_code"]) == 200) {

    return $sContent;

    } else {

    return false;

    }

    }

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。 ad51e517755f8fd6a7ec83ced4ecfaf3.png

    展开全文
  • ThinkPHP简易微信公众号零钱提现实例namespace app\common\library;class Cash{public function wxcash($openId,$money){$pub = config('keys.payConfig');$appid = $pub['app_id'];//商户账号appid$mch_id = $pub['...

    ThinkPHP简易微信公众号零钱提现实例

    namespace app\common\library;

    class Cash

    {

    public function wxcash($openId,$money)

    {

    $pub = config('keys.payConfig');

    $appid = $pub['app_id'];//商户账号appid

    $mch_id = $pub['mch_id'];//商户号

    $key = $pub['key'];

    $openid = $openId;//授权用户openid

    $arr = array();

    $arr['mch_appid'] = $appid;

    $arr['mchid'] = $mch_id;

    $arr['nonce_str'] = md5(uniqid(microtime(true),true));//随机字符串,不长于32位

    $arr['partner_trade_no'] = '123456789' . date("Ymd") . rand(10000, 90000) . rand(10000, 90000);//商户订单号

    $arr['openid'] = $openid;

    $arr['check_name'] = 'NO_CHECK';//是否验证用户真实姓名,这里不验证

    $arr['amount'] = $money * 100;//付款金额,单位为分

    $arr['desc'] = "零钱提现";//描述信息

    $arr['spbill_create_ip'] = 'xx.xx.xx.xx';//获取服务器的ip

    //封装的关于签名的算法

    $arr['sign'] = $this->makeSign($arr,$key);//签名

    $var = $this->arrayToXml($arr);

    // dump($arr['sign'] );exit;

    $xml = $this->curl_post_ssl('https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers',$var,30);

    libxml_disable_entity_loader(true);

    $rdata = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)),true);

    eblog('cash_xmldata',$rdata);

    // dump($rdata);exit;

    $return_code = trim(strtoupper($rdata['return_code']));

    $result_code = trim(strtoupper($rdata['result_code']));

    if ($return_code == 'SUCCESS' && $result_code == 'SUCCESS') {

    $isrr = array(

    'status'=>1,

    'msg' => '',

    );

    } else {

    // $returnmsg = $rdata['return_msg'];

    $err_code_des = $rdata['err_code_des'];

    $isrr = array(

    'status' => 0,

    'msg' => $err_code_des,

    );

    }

    return $isrr;

    }

    protected function makesign($data,$key)

    {

    //获取微信支付秘钥

    $data = array_filter($data);

    //签名步骤一:按字典序排序参数

    ksort($data);

    $string_a = http_build_query($data);

    $string_a = urldecode($string_a);

    //签名步骤二:在string后加入KEY

    //$config=$this->config;

    $string_sign_temp = $string_a."&key=".$key;

    //签名步骤三:MD5加密

    $sign = md5($string_sign_temp);

    // 签名步骤四:所有字符转为大写

    $result = strtoupper($sign);

    // $result = strtoupper(hash_hmac("sha256",$string_sign_temp,$key));

    return $result;

    }

    protected function arraytoxml($data){

    $str='';

    foreach($data as $k=>$v) {

    $str.=''.$v.''.$k.'>';

    }

    $str.='';

    return $str;

    }

    protected function curl_post_ssl($url, $vars, $second = 30, $aHeader = array())

    {

    $isdir = APP_PATH."/common/library/php_sdk/lib/";//证书位置

    $ch = curl_init();//初始化curl

    curl_setopt($ch, CURLOPT_TIMEOUT, $second);//设置执行最长秒数

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上

    curl_setopt($ch, CURLOPT_URL, $url);//抓取指定网页

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// 终止从服务端进行验证

    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//

    curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');//证书类型

    curl_setopt($ch, CURLOPT_SSLCERT, $isdir . 'apiclient_cert.pem');//证书位置

    curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM');//CURLOPT_SSLKEY中规定的私钥的加密类型

    curl_setopt($ch, CURLOPT_SSLKEY, $isdir . 'apiclient_key.pem');//证书位置

    curl_setopt($ch, CURLOPT_CAINFO, 'PEM');

    curl_setopt($ch, CURLOPT_CAINFO, $isdir . 'rootca.pem');

    if (count($aHeader) >= 1) {

    curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);//设置头部

    }

    curl_setopt($ch, CURLOPT_POST, 1);//post提交方式

    curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);//全部数据使用HTTP协议中的"POST"操作来发送

    $data = curl_exec($ch);//执行回话

    if ($data) {

    curl_close($ch);

    return $data;

    } else {

    $error = curl_errno($ch);

    echo "call faild, errorCode:$error\n";

    curl_close($ch);

    return false;

    }

    }

    }

    ©著作权归作者所有:来自51CTO博客作者取什么昵称的原创作品,如需转载,请注明出处,否则将追究法律责任

    展开全文
  • 注意:微信提现之前需要接入微信登录,因为需要用到微信用户的openID,还需要在微信开放平台申请自己的app获得到Appid 一 提现前的准备工作 确认自己的企业资质查看是否符合开通微信企业付款到微信个人用户,...

    注意:微信提现之前需要接入微信登录,因为需要用到微信用户的openID,还需要在微信开放平台申请自己的app获得到Appid

     

    一 提现前的准备工作

    确认自己的企业资质查看是否符合开通微信企业付款到微信个人用户,查看地址中的场景简绍:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_1

     

     

    Api明确要求我们必须在微信商户平台开通企业付款到个人

    二 准备开发相关配置

    1. 准备请求时要用的证书

    (1)证书的准备:java开发需要用到:apiclient_cert.p12证书,PHP的话需要用到apiclient_cert.pem和(apiclient_key.pem) 在微信商户平台(pay.weixin.qq.com)–>账户设置–>API安全–>证书中下载的 。

    (2)如果是刚开通的是没有直接下载证书的按钮,下载的这个位置为申请证书需要自己手动申请证书申请的时候会让下载一个证书生成工具如下图

    然后通过网页上的证书请求串和软件上的证书串就可以申请到证书文件。

    (3)下载到的证书为一个压缩包,其中包含了java需要的证书,php需要的证书,还有都需要用的的密钥。

    (4)什么时候会用到证书?与支付不一样,企业支付功能在发送post请求的时候,需要加载自己的一个证书之后,带着证书去请求提现才可以。

    (5)证书简绍

    2设置密钥(必须)

    在账户中心。Api安全点击设置密钥进行设置,设置的密钥为32位包含数字和字母,密钥是自己填写的和密码一样用什么密码自己决定。

    3设置请求用到的我们自己服务器的IP地址(必须)

    这个ip地址一定是要你发送请求的公网ip地址,无论客户端或者服务端。
    我的理解是如果前端直接发送请求到微信后台接口,就要用客户端的公网ip,
    如果是服务端直接发送请求到微信后台接口,就需要用服务端的公网ip。
    而且这个ip地址必需先添加到商户白名单。
    添加ip白名单的流程如下:
    1.先登陆商户平台
    https://pay.weixin.qq.com/index.php
    2.到产品中心=》我的产品

    3.找到企业付款到零钱点进去

    4.进入产品设置

    5.API接口发起添加公网ip

     

    如果没有添加合适的ip白名单,申请提现就会返回如下结果

    <err_code><![CDATA[NO_AUTH]]></err_code>
    <err_code_des><![CDATA[此IP地址不允许调用接口,如有需要请登录微信支付商户平台更改配置]]></err_code_des>

    注:微信企业付款到银行卡同样要添加ip白名单,只是请求参数不需要写明ip地址。

    三 处理PHP逻辑

    (1)注意事项

    (2)请求提现的地址

    (3)必填参数的简绍

    (4)PHP代码

    Php的下半部分根据自己的开发需求修改即可,具体请求之后的错误码相关的参考该链接:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2  到此所有的工作就做完了剩下的就是调试了。

    下边附上PHP源码:

    <?php
    
    //企业付款到微信零钱,PHP接口调用方法
    define("APPID", "appid"); // 商户账号appid
    define("MCHID", "商户号"); 		// 商户号
    define("SECRECT_KEY", "支付密钥签名");  //支付密钥签名
    define("IP", "192.168.1.1");   //IP
     
    function createNoncestr($length =32) 
    {
     
    	$chars = "abcdefghijklmnopqrstuvwxyz0123456789";  
     
    	$str ="";
     
    	for ( $i = 0; $i < $length; $i++ )  {  
     
    		$str.= substr($chars, mt_rand(0, strlen($chars)-1), 1);  
     
    	}  
    	return $str;
    }
     
    	
    function unicode() {
    	$str = uniqid(mt_rand(),1);
    	$str=sha1($str);
    	return md5($str);
    }
    function arraytoxml($data){
    	$str='<xml>';
    	foreach($data as $k=>$v) {
    		$str.='<'.$k.'>'.$v.'</'.$k.'>';
    	}
    	$str.='</xml>';
    	return $str;
    }
    function xmltoarray($xml) { 
    	//禁止引用外部xml实体 
    	libxml_disable_entity_loader(true); 
    	$xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA); 
    	$val = json_decode(json_encode($xmlstring),true); 
    	return $val;
    } 
     
    function curl($param="",$url) {
    	$isdir = $_SERVER['DOCUMENT_ROOT']."/config/";//证书位置;绝对路径
    	$postUrl = $url;
    	$curlPost = $param;
    	$ch = curl_init();                                      //初始化curl
    	curl_setopt($ch, CURLOPT_URL,$postUrl);        	         //抓取指定网页
    	curl_setopt($ch, CURLOPT_HEADER, 0);                    //设置header
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);            //要求结果为字符串且输出到屏幕上
    	curl_setopt($ch, CURLOPT_POST, 1);                      //post提交方式
    	curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);           // 增加 HTTP Header(头)里的字段 
    	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);        // 终止从服务端进行验证
    	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    	curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');//证书类型
    	curl_setopt($ch, CURLOPT_SSLCERT, $isdir . 'apiclient_cert.pem');//证书位置
    	curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM');//CURLOPT_SSLKEY中规定的私钥的加密类型
    	curl_setopt($ch, CURLOPT_SSLKEY, $isdir . 'apiclient_key.pem');//证书位置
    	curl_setopt($ch, CURLOPT_CAINFO, 'PEM');
    	$data = curl_exec($ch);                                 //运行curl
    	curl_close($ch);
    	return $data;
    }
    	
    /*
    $amount 发送的金额(分)目前发送金额不能少于1元
    $re_openid, 发送人的 openid
    $desc  //  企业付款描述信息 (必填)
    $check_name    收款用户姓名 (选填)
    */
    function sendMoney($amount,$re_openid,$desc,$check_name){
    	
    	$total_amount = (100) * $amount;
    	
    	$data=array(
            'mch_appid'=>APPID,//商户账号appid
            'mchid'=> MCHID,//商户号
            'nonce_str'=>createNoncestr(),//随机字符串
            'partner_trade_no'=> date('YmdHis').rand(1000, 9999),//商户订单号
            'openid'=> $re_openid,//用户openid
            'check_name'=>'NO_CHECK',//校验用户姓名选项,
            're_user_name'=> $check_name,//收款用户姓名
            'amount'=>$total_amount,//金额
            'desc'=> $desc,//企业付款描述信息
            'spbill_create_ip'=> IP,//Ip地址
        );
        $secrect_key=SECRECT_KEY;///这个就是个API密码。MD5 32位。
        $data=array_filter($data);
        ksort($data);
        $str='';
        foreach($data as $k=>$v) {
           $str.=$k.'='.$v.'&';
        }
        $str.='key='.$secrect_key;
        $data['sign']=md5($str);
        $xml=arraytoxml($data);
      
        $url='https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers'; //调用接口
        $res=curl($xml,$url);
        $return=xmltoarray($res);
        
        error_log("sdk_log ===== ".toString($return),0);
    	
        if(!array_key_exists("return_code", $return) || $return["return_code"] === "FAIL") {//通信失败
            return FALSE;
        }
     
    //     print_r($return);
    	//返回来的结果
    	// [return_code] => SUCCESS [return_msg] => Array ( ) [mch_appid] => wxd44b890e61f72c63 [mchid] => 1493475512 [nonce_str] => 616615516 [result_code] => SUCCESS [partner_trade_no] => 20186505080216815 
    	// [payment_no] => 1000018361251805057502564679 [payment_time] => 2018-05-15 15:29:50
    	
    	
    // 	$responseObj = simplexml_load_string($res, 'SimpleXMLElement', LIBXML_NOCDATA);
    // 	echo $res= $responseObj->return_code;  //SUCCESS  如果返回来SUCCESS,则发生成功,处理自己的逻辑
    	
    	return $return["result_code"] === "SUCCESS";
    }
    
    /** 优雅输出  */
    function toString($array) {
        $res = "";
        foreach ($array as $key => $value) {
            $res = $res .$key." = ".$value." \n";
        }
        return $res;
    }
    
    
    return 'WeChatWithdraw.php';
    ?>

    (5)到账截图

    四 其他

    微信支付接口签名校验工具:

    https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=20_1

     

    企业付款到个人账户官方文档:

    https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2         

     

    微信登录官方文档:

    https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_Login/Authorized_API_call_UnionID.html

    展开全文
  • @H_404_1@有的商户号的产品中心是没有这个功能的,不过,该功能的pid(product id)是5,只要随便进去某一个产品,在...@H_404_1@用户提现代码:@H_404_1@1 //用户微信提现2 private function withdrawals_weixin($i...
  • PHP实现微信提现功能

    2020-10-17 22:25:24
    主要为大家详细介绍了PHP实现微信提现功能,企业付款到用户零钱,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要介绍了PHP实现微信提现功能,此类功能在微信商城中经常会用到,今天小编通过实例代码给大家讲解,需要的朋友可以参考下
  • 主要为大家详细介绍了PHP APP微信提现接口代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 微信提现

    2019-07-11 19:51:05
    微信商户平台:微信提现文档https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_1
  • 提现必须得用双向证书、所以大家一定要在微信的商户平台找到相应的地方去设置、因为做这个提现已经有一段时间了、所以设置微信商户平台的那几个地方没有图的情况、也说不清楚、下次再做提现的时候、给大家分享如何...
  • 本文实例为大家分享了PHP实现微信提现功能的具体代码,供大家参考,具体内容如下一、实现功能这几天在小程序里要实现用户从系统中提现到零钱的功能,查了一下文档可以使用 企业付款到用户零钱 来实现;官方文档注意...
  • 微信企业付款微信提现源码 这几天在小程序里要实现用户从系统中提现到零钱的功能,查了一下文档可以使用 企业付款到用户零钱 来实现;  官方文档:...
  • PHP-微信提现到零钱

    2019-03-28 09:09:06
    PHP-微信提现到零钱 哈喽大家好,在原来做的微信支付的各种接口里总会不经意的就踩个地雷,虽然都是小问题,但是还是会浪费一些时间,于是乎,今儿个心血来潮就写一个关于微信提现到零钱【俗称企业付款到零钱】互相...
  • 主要为大家详细介绍了PHP实现微信提现,企业付款到零钱,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 本文实例为大家分享了PHP实现微信提现功能的具体代码,供大家参考,具体内容如下一、实现功能这几天在小程序里要实现用户从系统中提现到零钱的功能,查了一下文档可以使用 企业付款到用户零钱 来实现;官方文档注意...
  • PHP实现微信提现功能来源:中文源码网浏览: 次日期:2019年11月5日【下载文档:PHP实现微信提现功能.txt】(友情提示:右键点上行txt文档名->目标另存为)PHP实现微信提现功能本文实例为大家分享了PHP实现微信提现...
  • 哈喽大家好,在原来做的微信支付的各种接口里总会不经意的就踩个地雷,虽然都是小问题,但是还是会浪费一些时间,于是乎,今儿个心血来潮就写一个关于微信提现到零钱【俗称企业付款到零钱】互相探讨,大佬轻喷哈一....
  • 本此发布的课程讲解微信企业付款到用户零钱账户,间接实现用户提现的需求,可以实现企业资金流向用户。课程讲除了解了微信企业付款到用户的零钱之外还讲解了付款到用户的银行卡中,并且在课程中讲解了获取api公钥的...
  • 有的商户号的产品中心是没有这个功能的,不过,该功能的pid(product id)是5,只要随便进去某...用户提现代码://用户微信提现private function withdrawals_weixin($id){$falg = M('withdrawals')->where(['id'=...
  • 原来的项目新增了从系统中提现到银行卡的功能,根据微信官方文档提示,首先要去微信商户平台开通企业付款这一功能,如果没有开通,或者不会开通的,可以参照我上一篇文章,官方文档 二、加载SDK 1.微信所提供的官方...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 201
精华内容 80
关键字:

php微信提现