php - 银行二维码支付接入问题
世界只因有你
世界只因有你 2017-05-16 13:02:18
0
1
848

最近在做银行的二维码支付接入,拿到文档后有几个地方不是很理解。
1.下载了签名的证书私钥(.sm2)、公钥(.cer)公钥直接导入,私钥证书不知道该怎么使用
2.由于使用的是php的demo,PHP代码通过调用LAJP来调取了JAVA环境进行签名。在php demo中签名后得到的数据不能通过测试的验签,不知道是哪一步除了错
附上网页端的测试demo:http://wxpay.cmbc.com.cn/cmbc...
提供的本地签名函数:

require_once("php_java.php");//引用LAJP提供的PHP脚本 try { $signAlg = $_REQUEST['signAlg']; $base64SourceData = $_REQUEST['base64SourceData']; $base64P12Data = $_REQUEST['base64P12Data']; $p12Password = $_REQUEST['p12Password']; $ret = lajp_call("cfca.sadk.api.SignatureKit::P1SignMessage", $signAlg,$base64SourceData, $base64P12Data,$p12Password); echo "{$ret}
"; } catch(Exception $e) { echo "Err:{$e}
"; } ?>return
世界只因有你
世界只因有你

Antworte allen (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" . "
"; // echo "错误原因查询
"; curl_close($ch); return false; } } 二、签名的话 你试着用PHP同样的参数自己生产签名跟java环境比对看看。一般来说应该是不能共用的吧。之前遇到过app里面的微信支付通过php生成的签名给过来app用,这个之前好像是行不通的。
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!