tp5之 支付寶,當面付中, 條碼支付

參考網址

PHP Thinkphp 支付寶當面付2.0代碼

https://blog.csdn.net/weixin_40896800/article/details/81563758

例子

傳入條碼和金額即可

class Alipay extends Commen
{
    //支付寶條碼支付,直接調用ali_tiaoma_pay方法,把條碼和金額傳進去就ok
    function ali_tiaoma_pay($tiaoma,$price){
 
        $data['scene'] = 'bar_code'; //支付場景
        $data['out_trade_no'] = date("Ymd").rand(10000,99999);  //訂單號
        $data['total_amount'] = $price; //支付金額
        $data['auth_code'] = $tiaoma;   //支付授權碼
        $data['subject'] = '訂單標題'; //訂單標題
        $data['body'] = '訂單說明'; //訂單說明
     
     
        $data = json_encode($data);
     
        $params['app_id'] = '';
        $params['method'] = 'alipay.trade.pay';
        $params['charset'] = 'utf-8';
        $params['sign_type'] = 'RSA2';
        $params['timestamp'] = date("Y-m-d H:i:s");
        $params['version'] = '1.0';
        $params['notify_url'] = "";  
        $params['biz_content'] = $data;
     
        ksort($params); //對將要簽名的數組排序

        $string = $this->toUrlParam($params); //將數組轉換成字符串
    
        $params['sign'] = $this->alipay_sign($string); //將字符串簽名
      
        $url = 'https://openapi.alipaydev.com/gateway.do?' . http_build_query($params);
     
        $return = file_get_contents($url); //打開支付請求連接 獲取二維碼地址
     
        $return = json_decode($return, true); //將返回的字符串轉換爲數組

        // echo '<pre>';
        // var_dump($return);
        // die;
        return $return;
     
     
     
    }
     
     
    //app支付寶簽名
    function alipay_sign($data, $signType = "RSA2") {
        $res = "-----BEGIN RSA PRIVATE KEY-----\n" .
            wordwrap('密鑰', 64, "\n", true) .
            "\n-----END RSA PRIVATE KEY-----";
     
        ($res) or die('您使用的私鑰格式錯誤,請檢查RSA私鑰配置');
     
        if ("RSA2" == $signType) {
            openssl_sign($data, $sign, $res, "SHA256");
        } else {
            openssl_sign($data, $sign, $res);
        }
     
        $sign = base64_encode($sign);
        return $sign;
    }
     
    /*
     * 格式化參數格式化成url參數
    */
    function toUrlParam($param){
        $buff = "";
        foreach($param as $k => $v)
        {
            if($k != "sign" && $v != "" && !is_array($v)){
                $buff .= $k."=".$v."&";
            }
        }
     
        $buff = trim($buff, "&");
        return $buff;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章