php - Masalah akses pembayaran kod QR bank
世界只因有你
世界只因有你 2017-05-16 13:02:18
0
1
921

Baru-baru ini saya sedang mengusahakan akses pembayaran kod QR bank Selepas mendapatkan dokumen, terdapat beberapa perkara yang saya tidak faham dengan baik.
1. Memuat turun kunci persendirian (.sm2) dan kunci awam (.cer) sijil yang ditandatangani dan mengimport kunci awam secara langsung Saya tidak tahu cara menggunakan sijil kunci persendirian
2 saya menggunakan demo PHP, PHP Kod memanggil LAJP untuk memanggil persekitaran JAVA untuk ditandatangani. Data yang diperoleh selepas melog masuk demo php tidak boleh melepasi pengesahan tandatangan ujian Saya tidak tahu langkah mana yang salah
Lampiran demo ujian pada halaman web: http://wxpay.cmbc.com.cn/. cmbc...< br>Fungsi tandatangan tempatan yang disediakan:
<?php

require_once("php_java.php");//Memetik skrip PHP yang disediakan oleh LAJP
   cubalah
    {
       $signAlg = $_REQUEST['signAlg'];
       $base64SourceData = $_REQUEST['base64SourceData'];
       $base64P12Data = $_REQUEST['base64P12Data'];
       $p12Kata Laluan = $_REQUEST['p12Kata Laluan'];
       $ret = lajp_call("cfca.sadk.api.SignatureKit::P1SignMessage", $signAlg,$base64SourceData, $base64P12Data,$p12Password);
       echo "{$ret}<br>";
    }
tangkapan(Pengecualian $e)
{
  echo "Err:{$e}<br>";
}
?><a href="index.html">kembali</a>
世界只因有你
世界只因有你

membalas semua(1)
黄舟
一、第一个问题,带证书,应该使用curl
 /**
     *     作用:使用证书,以post方式提交xml到对应的接口url
     */
    function postXmlSSLCurl($xml, $url, $second = 30, $wxpay_config) {
            $ch = curl_init();
            //超时时间
            curl_setopt($ch, CURLOPT_TIMEOUT, $second);
            //这里设置代理,如果有的话
            
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
            //设置header
            curl_setopt($ch, CURLOPT_HEADER, FALSE);
            //要求结果为字符串且输出到屏幕上
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
            //设置证书
            //使用证书:cert 与 key 分别属于两个.pem文件
            //默认格式为PEM,可以注释
            curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');
            curl_setopt($ch, CURLOPT_SSLCERT, $wxpay_config['SSLCERT_PATH']);
            //默认格式为PEM,可以注释
            curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM');
            curl_setopt($ch, CURLOPT_SSLKEY, $wxpay_config['SSLKEY_PATH']);
            //post提交方式
            curl_setopt($ch, CURLOPT_POST, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
            $data = curl_exec($ch);
            //返回结果
            if ($data) {
                curl_close($ch);
                return $data;
            } else {
                $error = curl_errno($ch);
                echo "curl出错,错误码:$error" . "<br>";
                // echo "<a href='http://curl.haxx.se/libcurl/c/libcurl-errors.html'>错误原因查询</a></br>";
                curl_close($ch);
                return false;
            }
    }

二、签名的话
你试着用PHP同样的参数自己生产签名跟java环境比对看看。一般来说应该是不能共用的吧。之前遇到过app里面的微信支付通过php生成的签名给过来app用,这个之前好像是行不通的。
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan