【微信支付】小程序之企业支付

原创 2018年04月16日 18:56:38

之前,做过的是公众号发红包的操作,今天我要介绍的是微信支付的企业支付,小程序之内的企业支付。
如果对企业支付不了解的,可以点此链接去看下微信官方的企业支付介绍。

企业支付发送的主体,也是根据微信公众号一样获取的到的openID来发送,不同于红包的操作,这个操作就类似于转账了,不需要接收方在去点击领取。
这里写图片描述


代码实现

    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) {
        $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_SSLCERT,getcwd().'/cert/apiclient_cert.pem'); //这个是证书的位置
        curl_setopt($ch,CURLOPT_SSLKEY,getcwd().'/cert/apiclient_key.pem'); //这个也是证书的位置
        $data = curl_exec($ch);                 //运行curl
        curl_close($ch);
        return $data;
    }  

    public function sendPacket_f(){
        //http://localhost/duocai_bakc_new/api.php?c=wx_api_pay&f=sendPacket
        $time = time();
        $partner_trade_no = 'FA'.time().mt_rand(100,10000);
        $data['mch_appid'] = 'wx499********';//商户的应用appid
        $data['mchid'] = '123******2';//商户ID
        $data['nonce_str'] = $this->unicode();//unicode();//这个据说是唯一的字符串下面有方法
        $data['partner_trade_no'] = $partner_trade_no;//.time();//这个是订单号。
        $data['openid'] = 'osmxp1QUneYkB7OOiNiHtA*****';//这个是授权用户的openid。。这个必须得是用户授权才能用
        $data['check_name'] = 'NO_CHECK';//这个是设置是否检测用户真实姓名的
        //$data['re_user_name']='';//用户的真实名字
        $data['amount'] = 1*100;//提现金额
        $data['desc'] = '有奖采集任务奖励';//订单描述
        $data['spbill_create_ip'] = $_SERVER['SERVER_ADDR'];//这个最烦了,,还得获取服务器的ip
        $secrect_key = '630c84211dd832b6a01*********';///这个就是个API密码。32位的。。随便MD5一下就可以了
        $data = array_filter($data);
        ksort($data);
        $str = '';
        foreach ($data as $k => $v) {
            $str .= $k . '=' . $v . '&';
        }
        $str .= 'key=' . $secrect_key;
        $data['sign'] = md5($str);
        //print_r($data);
        $xml = $this->arraytoxml($data);
        $url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';
        $res = $this->curl($xml, $url);
        $return = $this->xmltoarray($res)
        echo '<pre>';
        var_dump($return);die;
    }

返回值

array(9) {
  ["return_code"]=>
  string(7) "SUCCESS"
  ["return_msg"]=>
  array(0) {
  }
  ["mch_appid"]=>
  string(18) "wx4990e7*******c"
  ["mchid"]=>
  string(10) "12*******"
  ["nonce_str"]=>
  string(32) "f0d6b760961*********4e5e"
  ["result_code"]=>
  string(7) "SUCCESS"
  ["partner_trade_no"]=>
  string(16) "FA15239330796943"
  ["payment_no"]=>
  string(28) "1000018301201804177004322523"
  ["payment_time"]=>
  string(19) "2018-04-17 10:44:40"
}

配置参数的获取

  • 商户id

这里写图片描述

  • app_id 和 secrect_key
    这里写图片描述

tip:微信红包最大额是200,企业支付最大额是200W

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31617637/article/details/79964715

微信小程序中实现微信支付

最近做小程序,涉及到微信支付,看了看微信小程序开发文档,尽管之前做过微信支付,还是有点懵逼,不过好在之前研究过,不然真的是无从下手。对比了一下发现,其实小程序中做支付比公众号支付要省事很多,因为不需要...
  • sinat_35861727
  • sinat_35861727
  • 2017-06-24 17:21:07
  • 11865

【微信支付】小程序之企业支付

之前,做过的是公众号发红包的操作,今天我要介绍的是微信支付的企业支付,小程序之内的企业支付。 如果对企业支付不了解的,可以点此链接去看下微信官方的企业支付介绍。 企业支付发送的主体,也...
  • qq_31617637
  • qq_31617637
  • 2018-04-16 18:56:38
  • 56

<em>微信</em>支付-<em>小程序</em>支付

<em>小程序</em>支付demo 立即下载 上传者: 求败new 时间: 2017-06-25 综合评分: 4 积分/C币:5 <em>微信</em>公众平台(订阅号、服务号、<em>企业</em>号、<em>小程序</em>)、<em>微信</em>开放平台和<em>微</em>...
  • 2018年03月18日 00:00

使用Node.js搭建微信支付后台(一)

第一部分 前期储备 1.1 注册前的概述 从微信公众平台可以获取到公众号的分类如下: 1. 服务号:主要偏于为用户传达资讯(类似报纸杂志),认证前后都是每天只可以群发一条消息;【适用人群】:媒体...
  • bwf_erg
  • bwf_erg
  • 2017-04-24 19:17:51
  • 527

微信支付签名错误解决方法

由于项目需要,需要将微信支付嵌入到java web项目中,开发中一直发现签名错误问题,可是自己的签名算法久经考验,怎么会被这道坎给拦住了。 后来发现原来是在wx.config()和wx.choose...
  • htmlgood
  • htmlgood
  • 2016-09-29 23:32:03
  • 7602

小程序服务端集成微信支付

demo源码已托管到码云:http://git.oschina.net/dotton/lendoo-wx,欢迎下载。 理论上集成微信支付的全部工作可以在小程序端完成,因为小程序js有访问网络的能力,...
  • hj7jay
  • hj7jay
  • 2017-01-13 09:50:32
  • 4540

微信小程序-微信支付

第一次做微信支付,不做不知道,一做吓一跳- - 简直了,找瞎眼!!! 关键的文档 微信小程序开发步骤:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_a...
  • zhaoyazhi2129
  • zhaoyazhi2129
  • 2016-12-30 13:13:43
  • 7397

微信支付之微信小程序支付

今天给大家介绍一下微信小程序是如果实现支付的流程,在开发之前我们首先要获取到商户的appId和mchId最后就是商户的key值了。这些值在商户申请成功之后都会通过邮件的形式发送给商户,所以如果还没有拿...
  • linzhiqiang0316
  • linzhiqiang0316
  • 2018-01-02 21:31:41
  • 662

小程序微信支付遇到的那些坑····

1. 小程序本身没有支付功能,必须要绑定服务号,才具有支付功能。 基本情况:公司有一个公众号订阅号、一个公众号服务号、一个开放平台 订阅号主要用于推送资讯。 服务号主要用于电脑网站扫码、H5微信支...
  • yaozhiwei1019
  • yaozhiwei1019
  • 2017-11-22 08:49:23
  • 1176

从零接入小程序支付

作者:Jeffchen 链接:https://zhuanlan.zhihu.com/p/23594164 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 作者:Je...
  • u013078295
  • u013078295
  • 2017-02-23 17:46:59
  • 1141
收藏助手
不良信息举报
您举报文章:【微信支付】小程序之企业支付
举报原因:
原因补充:

(最多只允许输入30个字)