PHPマイクロチャンネル商人の決済会社は、機能を変更するために支払います

我々は最初のマイクロチャネルプラットフォームで設定しなければならない条件の開口部。

そこには、以下のマイクロチャネルの文書、私はここよ、おそらくもっと重要なのいくつかを総なめにしました。

資金の支払い

ファンド事業番号の資金のバランスを変更するには、企業の支払い。

 

ケースを開くために商人の口座番号によると、リアルマネーアカウントには違いがあります:

デフォルトでは◆下では、企業はビジネスの変化の基本的な口座番号(または口座の残高)のバランスを使用することを支払います。事業活動として動作口座に資金の使用を変更するには口座番号、支払業務を開設しました。

◆基本的なアカウント(または、そのような他の分配勘定)資金源は、アカウントの再充電に決済資金(基本口座のみ)、または資金を取引することができます。お金が口座残高未満の場合、支払いはバランスと支払いの故障の不足が原因となります。

支払ルール

支払い

◆サポートAPIインタフェースまたはWeb操作、ターゲットユーザーへの支払い。

債権指定されたユーザ識別情報

◆APPID + OpenIDのユーザ指定されたコレクションによります。

◆APPIDときAPPID番号商人の申請、またはビジネスの番号との結合関係を持っている必要があります。

◆OpenIDの取得モードに参照することができます。https://mp.weixin.qq.com/wikiトン=リソース/ res_main&ID = mp1421140839?

支払金額

◆お金を戦うために非実名のユーザーをサポートしていません。

実名ユーザーへ◆は2W / 2Wのと同じ、単一の毎日の限界を支払います

同じ日◆商船100W総支払い限度額

 

注:上記のルールは、完全に正確な値、なぜなら計算ルールとリスク管理戦略の参照だけのための量を2ワット、100ワットのない制限、システムを扱うこのお金に頼らないでくださいインターフェイスに基づいており、実際の戻りクエリ結果が優先されなければなりません、知っていてください。

債権ユーザID認証

◆対象ユーザの支払いは、機能の検証本当の名前を提供します

クエリの支払い

◆レコード会社は、企業の支払いクエリを介してデータを表示することができ支払った、または水を流す資金の商人の数を照会します。

支払頻度

◆同じユーザーに1日10回の支払いまでのデフォルトでは、セキュリティビジネスプラットフォームで設定することができ--API

その他の考慮事項

◆お支払い金額は、商人の現在の利用可能残高の金額と同額またはそれ以下でなければなりません。

 

二つのインターフェイスアドレス

インターフェイスリンクします。https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers

リクエストパラメータ:

公式業務支払ドキュメントの開発を特に参照

PHP代码示例调用,这里是写在一个文件里,看每个方法就知道是干嘛用的咯。

 

<?php
//企业付款到微信零钱,PHP接口调用方法
define("APPID", "wx875439864"); //商户账号appid
define("MCHID", "190023450990"); // 商户号
define("SECRECT_KEY", "145535866885");  //支付密钥签名
define("IP", "120.178.12.52");   //IP

function createNoncestr($length =32) 
{
    $chars = "abcdefghijklmnopqrstuvwxyz0123456789";  
    $str ="";
    for ( $i = 0; $i < $length; $i++ )  {  
        $str.= substr($chars, mt_rand(0, strlen($chars)-1), 1);  
    }  
    return $str;
}

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,ROOT_PATH .'/wxpay/cacert/apiclient_cert.pem'); //这个是证书的位置绝对路径
    curl_setopt($ch,CURLOPT_SSLKEY,ROOT_PATH .'/wxpay/cacert/apiclient_key.pem'); //这个也是证书的位置绝对路径
    $data = curl_exec($ch);                                 //运行curl
    curl_close($ch);
    return $data;
}

/*
$amount 发送的金额(分)目前发送金额不能少于1元
$re_openid, 发送人的 openid
$desc  //  企业付款描述信息 (必填)
$check_name    收款用户姓名 (选填)
*/
function sendMoney($amount,$re_openid,$desc='测试',$check_name=''){

    $total_amount = (100) * $amount;

    $data=array(
        'mch_appid'=>APPID,//商户账号appid
        'mchid'=> MCHID,//商户号
        'nonce_str'=>createNoncestr(),//随机字符串
        'partner_trade_no'=> date('YmdHis').rand(1000, 9999),//商户订单号
        'openid'=> $re_openid,//用户openid
        'check_name'=>'NO_CHECK',//校验用户姓名选项,
        're_user_name'=> $check_name,//收款用户姓名
        'amount'=>$total_amount,//金额
        'desc'=> $desc,//企业付款描述信息
        'spbill_create_ip'=> IP,//Ip地址
    );
    $secrect_key=SECRECT_KEY;///这个就是个API密码。MD5 32位。
    $data=array_filter($data);
    ksort($data);
    $str='';
    foreach($data as $k=>$v) {
       $str.=$k.'='.$v.'&';
    }
    $str.='key='.$secrect_key;
    $data['sign']=md5($str);
    $xml=arraytoxml($data);

    $url='https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers'; //调用接口
    $res=curl($xml,$url);
    $return=xmltoarray($res);


    print_r($return);
    //返回来的结果
    // [return_code] => SUCCESS [return_msg] => Array ( ) [mch_appid] => wxd44b890e61f72c63 [mchid] => 1493475512 [nonce_str] => 616615516 [result_code] => SUCCESS [partner_trade_no] => 20186505080216815 
    // [payment_no] => 1000018361251805057502564679 [payment_time] => 2018-05-15 15:29:50


    $responseObj = simplexml_load_string($res, 'SimpleXMLElement', LIBXML_NOCDATA);
    echo $res= $responseObj->return_code;  //SUCCESS  如果返回来SUCCESS,则发生成功,处理自己的逻辑

    return $res;
}

?>

三 调用方法  :

直接在你写的方法里调用此方法就好了

sendMoney(1,'ewrwexe32423423423423423','xxxx测试');

返回的结果,成功的话就直接print出来,失败的话也要抛出异常。如果你还是不懂,请查看之前分享过的这篇文章。

微信企业付款到个人零钱功能,很简单的就实现咯!

效果图如下

转自“php自学中心 - PHP微信商户支付企业付款到零钱功能

 

おすすめ

転載: www.cnblogs.com/zxf100/p/11130509.html