multiCertDemo.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. header ( 'Content-type:text/html;charset=utf-8' );
  3. $projName = getProjName();
  4. include_once $_SERVER ['DOCUMENT_ROOT'] . "/$projName/sdk/acp_service.php";
  5. /**
  6. * 多证书demo
  7. * 【【【尽量和业务部门申请使用证书共享,尽量不要用多证书。】】】
  8. *
  9. */
  10. $params = array(
  11. 'version' => '5.1.0', //版本号
  12. 'encoding' => 'utf-8', //编码方式
  13. 'signMethod' => '01', //签名方法
  14. 'txnType' => '00', //交易类型
  15. 'txnSubType' => '00', //交易子类
  16. 'bizType' => '000000', //业务类型
  17. 'accessType' => '0', //接入类型
  18. 'channelType' => '07', //渠道类型
  19. 'orderId' => date('YmdHis'), //订单号,演示用
  20. 'merId' => '777290058110048', //商户代码,演示用
  21. 'txnTime' => date('YmdHis'), //订单发送时间,演示用
  22. );
  23. $cert_path = 'D:\certs\testMultiCert.pfx';
  24. $cert_pwd = '123456';
  25. com\unionpay\acp\sdk\AcpService::signByCertInfo( $params, $cert_path, $cert_pwd ); // 签名
  26. //此地址为示例这里要替换成做具体交易的地址(具体交易地址请查看对应示例中用到的地址)
  27. $url = com\unionpay\acp\sdk\SDKConfig::getSDKConfig()->singleQueryUrl;
  28. $result_arr = com\unionpay\acp\sdk\AcpService::post ( $params, $url);
  29. if(count($result_arr)<=0) { //没收到200应答的情况
  30. printResult ( $url, $params, array() );
  31. echo "POST请求失败,具体报错请看下日志。<br>\n" ;
  32. return;
  33. }
  34. printResult ($url, $params, $result_arr ); //页面打印请求应答数据
  35. $cert_path = 'D:\certs\testMultiCert2.pfx';
  36. $cert_pwd = '000000';
  37. com\unionpay\acp\sdk\AcpService::signByCertInfo ( $params, $cert_path, $cert_pwd ); // 签名
  38. $result_arr = com\unionpay\acp\sdk\AcpService::post ( $params, $url);
  39. if(count($result_arr)<=0) { //没收到200应答的情况
  40. printResult ( $url, $params, array() );
  41. echo "POST请求失败,具体报错请看下日志。<br>\n" ;
  42. return;
  43. }
  44. printResult ($url, $params, $result_arr ); //页面打印请求应答数据
  45. /**
  46. * 打印请求应答
  47. *
  48. * @param
  49. * $url
  50. * @param
  51. * $req
  52. * @param
  53. * $resp
  54. */
  55. function printResult($url, $req, $resp) {
  56. echo "=============<br>\n";
  57. echo "地址:" . $url . "<br>\n";
  58. echo "请求:" . str_replace ( "\n", "\n<br>", htmlentities ( com\unionpay\acp\sdk\createLinkString ( $req, false, true ) ) ) . "<br>\n";
  59. echo "应答:" . str_replace ( "\n", "\n<br>", htmlentities ( com\unionpay\acp\sdk\createLinkString ( $resp , false, false )) ) . "<br>\n";
  60. echo "=============<br>\n";
  61. }
  62. function getProjName(){
  63. $dir = str_replace("\\","/", dirname(__FILE__));
  64. $rootDir = str_replace("\\", "/", $_SERVER ['DOCUMENT_ROOT']);
  65. if($rootDir[strlen($rootDir) - 1] != "/") $rootDir = $rootDir . "/";
  66. $index = strlen($rootDir);
  67. $dir = substr($dir, $index);
  68. $index = strpos($dir, "/");
  69. $projName = substr($dir, 0, $index);
  70. return $projName;
  71. }