企业支付的前提条件:
不仅要开通微信支付功能,绑定商户号,还要下载商户证书,企业支付文档地址: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'];
}
}