php实现微信中的企业付款到零钱的完整教程
public function index(){
$transfer['payment_id'] = '201803221552123458';//订单号,可以自定义,但不能重复使用
$transfer['open_id'] = session('login_weixin');//用户的open_id
$transfer['real_name'] ='张三';//用户的真实姓名
$transfer['amount'] = 0.3;//要付款的金额;
$this->dotransfer($transfer);//调用接口
}
/*
* 付款给用户的接口(直接调用即可完成付款)
* */
public function dotransfer($transfer,&$msg=''){
$url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers";
$parameters = array(
'mch_appid' => C('APPID'),//绑定支付的APPID
'mchid' => C('MCHID'),//商户号
'nonce_str' => $this->create_noncestr(32), //生成32位的随机字符串,见图1
'partner_trade_no' => $transfer['payment_id'], //商户订单号,不能重复使用
'openid' => $transfer['open_id'],//用户的open_id
'check_name' => 'OPTION_CHECK',//是否检查姓名
're_user_name' => $transfer['real_name'], //真实姓名
'amount' => bcmul($transfer['amount'],100,0), //企业付款金额,单位为分 最低1元
'desc' => '分销提现',//备注
'spbill_create_ip' => strval($_SERVER['SERVER_ADDR']),//服务器IP
);
$parameters['sign'] = $this->getSign($parameters, C('KEY'));//getSign函数见图2,C('KEY'):商户支付密钥
$xml = $this->arrayToXml($parameters);//函数见图3
$response = $this->postXmlCurl($xml, $url,true);//函数见图4
$result = $this->xmlToArray($response);//函数见图片5
if($result['return_code']=='SUCCESS'){
if($result['result_code']=='SUCCESS'){
$this->success($transfer['payment_id'].'=payment_id 付款成功');
return true;
}else{
$this->error($result['err_code_des'].' 付款失败');
return false;
}
}else{
$this->error('付款失败,微信接口出现异常');
return false;
}
}
图1
图2
图3
图4
图5
图6
作者:优加网络陈应信
优加网络致力于为客户定制互联网解决方案,可以根据客户需求定制系统功能,包括网站、小程序、APP等。