微信小程序之企业付款

 企业支付的前提条件:

不仅要开通微信支付功能,绑定商户号,还要下载商户证书,企业支付文档地址:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2

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

    public function Wx_Pay_B2C(){
            $sMch_appid =    AppID;//申请商户号的appid或商户号绑定的appid【自己填写】
            $sMch_id =       MCH_ID;//微信支付分配的商户号【自己填写】
            $sNonce_str =    $this->nonce_str();//随机字符串
            $sPartner_trade_no = $arrParam['sOrder'];//商户订单号,需保持唯一性【自己填写】
            $sOpenid =       $arrParam['sOpenId'];//商户appid下,某用户的openid【自己填写】
            $sCheck_name=    'NO_CHECK';//NO_CHECK:不校验真实姓名;FORCE_CHECK:强校验真实姓名
            //$sRe_user_name=  '云天河';//收款用户真实姓名。如果check_name设置为FORCE_CHECK,则必填用户真实姓名
            $nAmount=        $arrOrder['sku_price']*$arrOrder['numb']*100;//企业付款金额,单位为分
            $sDesc=          '消费订单结算';//企业付款备注

            //请求参数
            $arrPost['mch_appid'] = $sMch_appid;
            $arrPost['mch_id'] = $sMch_id;
            $arrPost['nonce_str'] = $sNonce_str;
            $arrPost['partner_trade_no'] = $sPartner_trade_no;
            $arrPost['openid'] = $sOpenid;
            $arrPost['check_name'] = $sCheck_name;
            //$arrPost['re_user_name'] = $sRe_user_name;
            $arrPost['amount'] = $nAmount;
            $arrPost['desc'] = $sDesc;
            $sSign = $this->sign($arrPost);//签名
            //print_r($arrPost);
            $arrPost_xml = "<xml> 
                            <mch_appid>$sMch_appid</mch_appid> 
                            <mchid>$sMch_id</mchid> 
                            <nonce_str>$sNonce_str</nonce_str> 
                            <partner_trade_no>$sPartner_trade_no</partner_trade_no> 
                            <openid>$sOpenid</openid> 
                            <check_name>$sCheck_name</check_name> 
                            <amount>$nAmount</amount> 
                            <desc>$sDesc</desc> 
                            <sign>$sSign</sign> 
                            </xml>";
            //企业支付接口
            $sUrl = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';
            $sXml = $this->http_request($sUrl,$arrPost_xml);
            $arrResponse = $this->xml($sXml);//全要大写
            //print_r($arrResponse);die;
            if($arrResponse['RETURN_CODE'] == 'SUCCESS' && $arrResponse['RESULT_CODE'] == 'SUCCESS'){
                //if($arrResponse['RETURN_CODE'] == 'SUCCESS'){
                //支付信息入库
                $sPartner_trade_no=$arrResponse['partner_trade_no'];//商户订单号,需保持历史全局唯一性(只能是字母或者数字,不能包含有其它字符)
                $sPayment_no=$arrResponse['payment_no'];//企业付款成功,返回的微信付款单号
                $sPayment_time=$arrResponse['payment_time'];//企业付款成功时间
//                $sPayment_no='234234';//企业付款成功,返回的微信付款单号
//                $sPayment_time='23423';//企业付款成功时间
                $arrData['dingdanhao']=$sPartner_trade_no;
                $arrData['payment_no']=$sPayment_no;
                $arrData['payment_time']=$sPayment_time;
                $arrData['openid']=$sOpenid;
                //$arrData['re_user_name']=$sRe_user_name;
                $arrData['amount'] = $nAmount;
                $arrData['desc'] = $sDesc;
                //微信订单数据插入数据库
                $this->wxpay->add_pay_info($arrData,'boc_wx_pay_b2c');
                //修改订单状态
                $this->wxpay->update(array('status'=>4),array('dingdanhao'=>$sPartner_trade_no),'boc_order_detail');

                $arrAjaxReturn['status'] = 1;
                $arrAjaxReturn['sMsg'] = "成功";
            }else{
                $arrAjaxReturn['status'] = 0;
                $arrAjaxReturn['sMsg'] = "错误";
                $arrData['RETURN_CODE'] = $arrResponse['RETURN_CODE'];
                $arrData['RETURN_MSG'] = $arrResponse['RETURN_MSG'];
            }
    
    }

猜你喜欢

转载自blog.csdn.net/zyj_15067066062/article/details/106761189