微信開發企業支付到銀行卡PHP


微信開發企業支付到銀行卡 功能詳解 不會的朋友可以加我QQ:344902511
先發個微信支付官方鏈接你查看
https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=24_2
直接上代碼 
由於這里需要RSA算法 微信官方默認輸出的是PKCS#1,筆者在這里發現RAS公鑰在WINDOWS系統中安裝復雜,后SSH到我的linux中轉換了RSA
官方給出的RSA公鑰開頭 -----BEGIN RSA PUBLIC KEY-----
我們需要轉成-----BEGIN PUBLIC KEY----- 這樣開頭的內容才可以使用
PKCS#1 轉 PKCS#8:linux口令
openssl rsa -RSAPublicKey_in -in <filename> -pubout 
<filename>是文件的路徑
回車以后會
顯示一下內容
-----BEGIN PUBLIC KEY-----
你的加密串
-----END PUBLIC KEY-----

復制出來后 你保存到你的網站目錄上后綴擴展為pem
然后你就可以使用了 

下面直接看代碼
第一步。獲取官方的RSA-PKCS1#

 public function RasKey($datainfo="")
    {
        $data=[
            //商戶號
            "mch_id"=>$this->mch_id,
           //隨機字符串
            "nonce_str"=>$this->genRandomString(32),
            //加密方式我是MD5
            "sign_type"=>"MD5",
        ];
        //微信簽名
        $data["sign"]=$this->MakeSign($data);
        //提交到的URL
        $url="https://fraud.mch.weixin.qq.com/risk/getpublickey";
        //轉換成XML格式POST到服務器
        $backxml=$this->postStr($url,$this->arrayToXml($data));
         //將獲取到的內容解析成對象
        $backarr=simplexml_load_string($backxml, 'SimpleXMLElement', LIBXML_NOCDATA);
         //轉換成數組
        $jsonStr = json_encode($backarr);
        $jsonArray = json_decode($jsonStr,true);
         //保存成PEM文件
        file_put_contents("pub_key.pem",$backarr->pub_key);
        dump($jsonArray);
}

  

復制代碼

第二部將 pub_key.pem 傳送到linux系統進行PK8轉碼
使用此口令 openssl rsa -RSAPublicKey_in -in <filename> -pubout 
<filename> 是文件名
拿到新的PK8碼我們保存到自己的服務器pk8.pem

第三部 加密並遞交打款

$data=[
            //商戶號
            "mch_id"=>$this->mch_id,
            //商戶訂單號
            "partner_trade_no"=>md5(time()),
            //隨機字符串
            "nonce_str"=>$this->genRandomString(32),
            //收款方銀行卡號
            "enc_bank_no"=>$this->rsa_encrypt("您的卡號"),
            //收款方用戶名
            "enc_true_name"=>$this->rsa_encrypt("您的姓名"),
            //收款方開戶行
            "bank_code"=>"銀行卡編碼",
            //付款金額
            "amount"=>100,
            //付款說明
            "desc"=>"賬戶提現",
        ];
        //微信簽名
        $data["sign"]=$this->MakeSign($data);
        //POST到微信服務器的網址
        $url="https://api.mch.weixin.qq.com/mmpaysptrans/pay_bank";
        //以XML的格式POST到服務器
        $backxml=$this->postStr($url,$this->arrayToXml($data));
         //POST獲取到的內容轉成對象
        $backarr=simplexml_load_string($backxml, 'SimpleXMLElement', LIBXML_NOCDATA);
        dump($backarr);

  

復制代碼

最后就成功了

因為自己沒有權限 所以顯示如下

["return_code"] => string(7) "SUCCESS"
["return_msg"] => string(73) "產品權限驗證失敗,請查看您當前是否具有該產品的權限"
["result_code"] => string(4) "FAIL"
["err_code"] => string(7) "NO_AUTH"
["err_code_des"] => string(73) "產品權限驗證失敗,請查看您當前是否具有該產品的權限"
["nonce_str"] => string(32) "tEmXrUFgcBfLgVqMqkKcpJKfHJ3sZtsZ"
["mch_id"] => string(10) "1512018791"
["partner_trade_no"] => string(32) "055a1afff8191338302c4a2b193ba242"
["amount"] => string(3) "100"

 

如果在加密串或微信付款上卡住的朋友 可以直接聯系我


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM