Rumah pembangunan bahagian belakang tutorial php 微信支付,企业号支付个人,php实现

微信支付,企业号支付个人,php实现

Jun 23, 2016 pm 01:15 PM

导语:分销商,微商提现怎么提?直接用微信支付。

实现如下:

  • 微信支付配置
/*微信支付*/    'PAY_WEIXIN'                => array(        'appid'                 => 'xxx',        'appsecret'             => 'xxxxx',        'mchid'                 => '1283301801',                                                //商户号        'key'                   => 'zhudianbaodiandodozhudianbao0527',                          //商户支付秘钥        'apiclient_cert'        => 'Conf/cert/apiclient_cert.pem',                              //商户证书apiclient_cert.pem        'apiclient_key'         => 'Conf/cert/apiclient_key.pem',                               //商户证书apiclient_key.pem    )
Salin selepas log masuk
  • arrayToXml

    /**   *     array转xml   */  function arrayToXml($arr)  {      $xml = "<xml>";      foreach ($arr as $key=>$val)      {          if (is_numeric($val))          {                 $xml.="<".$key.">".$val."</".$key.">";           }          else          $xml.="<".$key."><![CDATA[".$val."]]></".$key.">";        }      $xml.="</xml>";      return $xml;   }
    Salin selepas log masuk
  • 使用证书,以post方式提交xml到对应的接口url

/**    *     作用:使用证书,以post方式提交xml到对应的接口url    */    function postXmlSSLCurl($xml, $url, $second, $cert, $key)    {        $ch = curl_init();        //超时时间        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);        //设置header        curl_setopt($ch,CURLOPT_HEADER,FALSE);        //要求结果为字符串且输出到屏幕上        curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);        //设置证书        //使用证书:cert 与 key 分别属于两个.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);        //返回结果        if($data){            curl_close($ch);            return $this->xmlToArray($data);        }        else {            $error = curl_errno($ch);            echo "curl出错,错误码:$error"."<br>";             curl_close($ch);            return false;        }    }
Salin selepas log masuk
  • 企业向个人付款
//企业向个人付款    public function payToUser($params, $key, $apicent_cert, $apiclient_key) {        $url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';        //检测必填参数        if($params["partner_trade_no"] == null) {   //            exit("退款申请接口中,缺少必填参数partner_trade_no!"."<br>");        }elseif($params["openid"] == null){            exit("退款申请接口中,缺少必填参数openid!"."<br>");        }elseif($params["check_name"] == null){             //NO_CHECK:不校验真实姓名 FORCE_CHECK:强校验真实姓名(未实名认证的用户会校验失败,无法转账)OPTION_CHECK:针对已实名认证的用户才校验真实姓名(未实名认证用户不校验,可以转账成功)            exit("退款申请接口中,缺少必填参数check_name!"."<br>");        }elseif(($params["check_name"] == 'FORCE_CHECK' or $params["check_name"] == 'OPTION_CHECK') && ($params["re_user_name"] == null)){  //收款用户真实姓名。            exit("退款申请接口中,缺少必填参数re_user_name!"."<br>");        }elseif($params["amount"] == null){            exit("退款申请接口中,缺少必填参数amount!"."<br>");        }elseif($params["desc"] == null){            exit("退款申请接口中,缺少必填参数desc!"."<br>");        }        $params["mch_appid"] = $this->appid;//公众账号ID        $params["mchid"] = $this->mchid;//商户号        $params["nonce_str"] = $this->createNoncestr();//随机字符串        $params['spbill_create_ip'] = $_SERVER['REMOTE_ADDR'] == '::1' ? '192.127.1.1' : $_SERVER['REMOTE_ADDR'];//获取IP        $params["sign"] = $this->getSign($params, $key);//签名        $xml = $this->arrayToXml($params);        return $this->postXmlSSLCurl($xml, $url, false, $apicent_cert, $apiclient_key);    }
Salin selepas log masuk
  • 企业付款
private function _enterprisePay($number, $member_id, $amount, $desc)    {        // 获取openid        $wxuser_id = M('Member')->where(array('id' => $member_id))->getField('wxuser_id');        $openid    = M('Wxuser')->where(array('id' => $wxuser_id))->getField('openid');        $pay = C('PAY_WEIXIN');        import('@.Action.WxDevelop');        $enterprise = new WxEnterprise($pay['appid'], $pay['appsecret'], $pay['mchid']);        $params = array(            'partner_trade_no' => $number,            'openid' => $openid,            'check_name' => 'NO_CHECK',            'amount' => $amount, // 总计            'desc' => $desc,        );        $result = $enterprise->payToUser($params, $pay['key'], $pay['apiclient_cert'], $pay['apiclient_key']);        return $result;    }
Salin selepas log masuk
  • 处理分销商提现
private function _handle($truename, $price) { // 处理分销商提现        $withdrawid = date("ymdHis") . strval(rand(1000, 9999));        $data = array('withdrawid' => $withdrawid, 'store_id' => $this->store_id, 'member_id' => $this->member_id, 'truename' => $truename, 'price' => $price, 'addtime' => time());        //免审核        if ($price >= C('withdraw_uncheck_value')) {            $data['need_check'] = 0;            $data['status'] = 1;            if ($this->withdrawModel->add($data)) {                $result = $this->_enterprisePay($withdrawid, $this->member_id, $price * 100, '分销商(' . $truename . ')提现');                //遇到支付信息出错,转为需审核提现                if ($result['return_code'] != 'SUCCESS') {                    $this->withdrawModel->where(array('withdrawid' => $withdrawid))->save(array('need_check' => 1, 'status' => 0));                    $this->assign('success', 2);                }                else {                    //设置微信交易号                    $this->withdrawModel->where(array('withdrawid' => $withdrawid))->save(array('payment_no' => $result['payment_no']));                    //增加佣金流水,待修复                    $data = array('store_id' => $this->store_id, 'user_type' => 2, 'user_id' => $this->shop_id, 'trade_type' => 2, 'trade_no' => $withdrawid, 'price' => -$price, 'status'=> 1,  'message' => $truename.'提现', 'addtime' => time());                    M('Twitter_log')->add($data);                    //减少相应可提佣金                    M('Member')->where(array('id' => $this->member_id))->setInc('money', -$price);                    $this->assign('success', 1);                    //发送佣金变动消息                    import('@.Action.Tmplmsg');                    $tmplmsg = new Tmplmsg();                    $tmplmsg->send(Tmplmsg::PRICE_CHANGE, $this->member_id, array('token' => $this->token, 'intro' => '分销佣金提现转出', 'price' => $price, 'business' => BUSINESS));                }            }            else {                $this->error('提现信息错误!');            }        }        //需要审核        else {            $this->withdrawModel->add($data);            $this->assign('success' , 2);        }    }
Salin selepas log masuk

提供企业向用户付款的功能,支持企业通过API接口付款,或通过微信支付商户平台网页功能操作付款。

温馨提示:◆ 给同一个实名用户付款,单笔单日限额2W/2W◆ 给同一个非实名用户付款,单笔单日限额2000/2000◆ 一个商户同一日付款总额限额100W◆ 仅支持商户号已绑定的APPID;◆ 针对付款的目标用户,已微信支付实名认证的用户可提供校验真实姓名的功能,未实名认证的用户无法校验,企业可根据自身业务的安全级别选择验证类型;◆ 付款金额必须小于或等于商户当前可用余额的金额;◆ 已付款的记录,企业可通过企业付款查询查看相应数据。

到账 付款资金将进入目标用户的零钱(微信-我-钱包-零钱)。微信支付将做零钱入账消息通知,零钱收支明细会展示相应记录。

温馨提示:针对无零钱账户的历史客户端版本,资金将进入用户的红包账户,微信支付无消息通知用户,企业可选择自行触达用户。

接口链接:https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers

是否需要证书请求需要双向证书。

数据示例:

<xml><mch_appid>wxe062425f740c30d8</mch_appid><mchid>10000098</mchid><nonce_str>3PG2J4ILTKCH16CQ2502SI8ZNMTM67VS</nonce_str><partner_trade_no>100000982014120919616</partner_trade_no><openid>ohO4Gt7wVPxIT1A9GjFaMYMiZY1s</openid><check_name>OPTION_CHECK</check_name><re_user_name>张三</re_user_name><amount>100</amount><desc>节日快乐!</desc><spbill_create_ip>10.2.3.10</spbill_create_ip><sign>C97BDBACF37622775366F38B629F45E3</sign></xml>
Salin selepas log masuk

成功示例:

<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[]]></return_msg><mch_appid><![CDATA[wxec38b8ff840bd989]]></mch_appid><mchid><![CDATA[10013274]]></mchid><device_info><![CDATA[]]></device_info><nonce_str><![CDATA[lxuDzMnRjpcXzxLx0q]]></nonce_str><result_code><![CDATA[SUCCESS]]></result_code><partner_trade_no><![CDATA[10013574201505191526582441]]></partner_trade_no><payment_no><![CDATA[1000018301201505190181489473]]></payment_no><payment_time><![CDATA[2015-05-19 15:26:59]]></payment_time></xml>
Salin selepas log masuk

错误示例:

<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[系统繁忙,请稍后再试.]]></return_msg><result_code><![CDATA[FAIL]]></result_code><err_code><![CDATA[SYSTEMERROR]]></err_code><err_code_des><![CDATA[系统繁忙,请稍后再试.]]></err_code_des></xml>
Salin selepas log masuk

参考资料:https://pay.weixin.qq.com/wiki/doc/api/mch_pay.php?chapter=14_2

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mendapatkan semula kata laluan pembayaran WeChat anda jika anda terlupa Bagaimana untuk mendapatkan semula kata laluan pembayaran WeChat anda jika anda terlupa Feb 23, 2024 pm 09:40 PM

Dalam WeChat, pengguna boleh memasukkan kata laluan pembayaran mereka untuk membuat pembelian, tetapi bagaimanakah mereka mendapatkan kata laluan pembayaran mereka jika mereka terlupa? Pengguna perlu pergi ke My-Services-Dompet-Tetapan Pembayaran-untuk mendapatkan semula kata laluan pembayaran mereka jika mereka terlupa. Pengenalan tentang cara mendapatkan semula kata laluan pembayaran anda jika anda terlupa kata laluan ini akan memberitahu anda kaedah operasi khusus Berikut ialah pengenalan terperinci, jadi sila lihat! Tutorial penggunaan WeChat. Bagaimana untuk mencari kata laluan pembayaran WeChat jika anda terlupa. 2. Klik pada perkhidmatan di dalam. 3. Klik pada dompet di dalam. 4. Cari tetapan pembayaran. 5. Klik Lupa kata laluan pembayaran. 6. Masukkan maklumat anda sendiri untuk pengesahan. 7. Kemudian masukkan kata laluan pembayaran baharu untuk menukarnya.

Apakah yang perlu saya lakukan jika saya terlupa kata laluan pembayaran WeChat saya? Apakah yang perlu saya lakukan jika saya terlupa kata laluan pembayaran WeChat saya? Jan 08, 2024 pm 05:02 PM

Penyelesaian untuk melupakan kata laluan pembayaran WeChat: 1. Buka APP WeChat, klik "I" di sudut kanan bawah untuk memasuki halaman pusat peribadi 2. Dalam halaman pusat peribadi, klik "Bayar" untuk memasuki halaman pembayaran; halaman pembayaran , klik "..." di sudut kanan atas untuk memasuki halaman pengurusan pembayaran; 4. Dalam halaman pengurusan pembayaran, cari dan klik "Terlupa kata laluan pembayaran" 5. Ikuti arahan halaman dan masukkan maklumat peribadi untuk pengesahan identiti Selepas pengesahan berjaya, anda boleh Pilih "Leret wajah anda untuk mendapatkan semula" atau "Sahkan maklumat kad bank untuk mendapatkan semula" untuk mendapatkan kata laluan anda, dsb.

Bagaimana untuk menyediakan pembayaran WeChat untuk Meituan Takeout Bagaimana untuk menyediakan pembayaran WeChat Bagaimana untuk menyediakan pembayaran WeChat untuk Meituan Takeout Bagaimana untuk menyediakan pembayaran WeChat Mar 12, 2024 pm 10:34 PM

Terdapat banyak kedai makanan dan makanan ringan yang disediakan dalam aplikasi bawa pulang Meituan, dan semua pengguna telefon mudah alih log masuk melalui akaun mereka. Tambah alamat penghantaran peribadi anda dan nombor telefon untuk menikmati perkhidmatan bawa pulang yang paling mudah. Buka halaman utama perisian, masukkan kata kunci produk, dan cari dalam talian untuk mencari hasil produk yang sepadan Leret ke atas dan ke bawah untuk memilih dan membuat pesanan Platform ini juga akan mengesyorkan berpuluh-puluh restoran berdekatan dengan ulasan tinggi berdasarkan alamat penghantaran yang diberikan oleh pengguna. Kedai juga boleh menyediakan kaedah pembayaran yang berbeza Anda boleh membuat pesanan dengan satu klik untuk menyelesaikan pesanan dengan serta-merta dan kelajuan penghantaran adalah sangat cepat amaun untuk digunakan Sekarang editor dalam talian secara terperinci untuk pengguna takeout Meituan Kami menunjukkan kepada anda cara untuk menyediakan pembayaran WeChat. 1. Selepas memilih produk, serahkan pesanan dan klik Sekarang

Bagaimana untuk menetapkan susunan potongan untuk pembayaran WeChat Bagaimana untuk menetapkan susunan potongan untuk pembayaran WeChat Sep 06, 2023 am 11:11 AM

Langkah-langkah untuk menetapkan susunan potongan untuk pembayaran WeChat: 1. Buka APP WeChat, klik pada antara muka "Saya", klik pada "Perkhidmatan", dan kemudian klik pada "Resit dan Pembayaran" 2. Klik pada "Utamakan Penggunaan Ini Kaedah Pembayaran" di bawah kod pembayaran pada antara muka pengumpulan dan pembayaran; 3. Pilih kaedah pembayaran pilihan yang anda perlukan.

Bolehkah Xianyu membayar dengan WeChat Bagaimana untuk menukar kepada kaedah pembayaran WeChat? Bolehkah Xianyu membayar dengan WeChat Bagaimana untuk menukar kepada kaedah pembayaran WeChat? Mar 12, 2024 pm 12:19 PM

Apabila semua orang tiada apa-apa untuk dilakukan, mereka akan memilih untuk menyemak imbas platform Xianyu Semua orang boleh mendapati bahawa terdapat sejumlah besar produk pada platform ini, yang membolehkan semua orang melihat pelbagai produk terpakai. produk tangan, sama sekali tidak ada masalah dengan kualiti produk ini, jadi semua orang boleh membelinya dengan yakin Harganya sangat berpatutan, dan mereka masih membenarkan semua orang untuk bersemuka dengan produk ini untuk berkomunikasi dan menjalankan beberapa operasi tawar-menawar harga Selagi semua orang berunding dengan betul, maka anda boleh memilih untuk menjalankan transaksi, dan apabila semua orang membayar di sini, mereka ingin membuat pembayaran WeChat, tetapi nampaknya platform Ia tidak dibenarkan editor untuk mengetahui situasi tertentu. Xianyu

Berkongsi langkah untuk memohon bayaran balik dengan WeChat Pay Berkongsi langkah untuk memohon bayaran balik dengan WeChat Pay Mar 25, 2024 pm 06:31 PM

1. Mula-mula, kita perlu membuka APP WeChat pada telefon mudah alih, dan kemudian klik untuk log masuk ke akaun WeChat, supaya kita memasuki halaman utama WeChat. 2. Klik butang [Saya] di penjuru kanan sebelah bawah halaman utama WeChat, kemudian pilih pilihan [Pembayaran] Kami klik untuk memasuki halaman pembayaran. 3. Selepas memasuki halaman [Pembayaran], klik pilihan [Dompet] untuk masuk dan klik [Bil] di penjuru kanan sebelah atas halaman [Dompet].

Cara membayar dengan WeChat di Alibaba_Cara membayar dengan WeChat di Alibaba 1688 Cara membayar dengan WeChat di Alibaba_Cara membayar dengan WeChat di Alibaba 1688 Mar 20, 2024 pm 05:51 PM

Alibaba 1688 ialah laman web pembelian dan borong, dan barangan di sana jauh lebih murah daripada Taobao. Jadi bagaimana Alibaba menggunakan pembayaran WeChat? Editor telah menyusun beberapa kandungan yang relevan untuk dikongsi dengan anda Rakan yang memerlukan boleh datang dan melihat. Bagaimana Alibaba menggunakan pembayaran WeChat? Jawapan: Pembayaran WeChat tidak boleh digunakan buat masa ini; kepada [Alipay, bayaran berperingkat] , juruwang] boleh dipilih;

Bolehkah pembayaran WeChat dibatalkan serta-merta selepas pembayaran berjaya? Bolehkah pembayaran WeChat dibatalkan serta-merta selepas pembayaran berjaya? Nov 29, 2023 pm 02:19 PM

Pembayaran WeChat tidak boleh dibatalkan serta-merta selepas pembayaran berjaya. Bayaran balik biasanya perlu memenuhi syarat-syarat berikut: 1. Dasar bayaran balik peniaga Peniaga akan merumuskan polisi bayaran baliknya sendiri, termasuk tetingkap masa bayaran balik, jumlah bayaran balik dan kaedah bayaran balik 2. Masa pembayaran, bayaran balik biasanya memerlukan Memohon dalam masa tertentu bingkai, dan bayaran balik mungkin tidak boleh dilakukan melebihi tempoh masa ini; proses, dsb.

See all articles