有人做过工行支付吗?

2016-07-07 15:02 来源:www.chinab4c.com 作者:ecshop专家

我在做ecshop工行b2c支付接口,下面是我写的测试文件。**,com组件都是工行提供的,就是运行到数字签名那地方出错,错误代码为-9。一直都没找到原因,下面是代码,加粗部分是程序停止运行地方。
  1. $src="<?xml version=\"1.0\" encoding=\"GBK\" standalone=\"no\"?><B2CReq><interfaceName>ICBC_PERBANK_B2C</interfaceName><interfaceVersion>1.0.0.7</interfaceVersion><orderInfo><orderDate>20100907132251</orderDate><curType>001</curType><merID>1905EC23583696</merID><subOrderInfo><orderid>2010090724656</orderid><amount>253.00</amount><installmentTimes>1</installmentTimes><merAcct>1905021009022105143</merAcct><goodsID></goodsID><goodsName></goodsName><goodsNum></goodsNum><carriageAmt></carriageAmt></subOrderInfo></orderInfo><custom><verifyJoinFlag>0</verifyJoinFlag><Language>ZH_CN</Language></custom><message><merHint></merHint><remark1></remark1><remark2></remark2><merURL>http://shop.hydst.com</merURL><merVAR></merVAR></message></B2CReq>";

  2. $com=new com('ICBCEBANKUTIL.B2CUtil');
  3. $rc=$com->init("D:\HYGDWeb\shop\cert\hygdsc.crt",
  4. "D:\HYGDWeb\shop\cert\hygdsc.crt",
  5. "D:\HYGDWeb\shop\cert\hygdsc.key",
  6. "1905EC23583696"
  7. );
  8. if($rc!=0)
  9. {
  10. echo "初始化失败";
  11. }
  12. // echo "tranData明文XML:";
  13. echo $src;
  14. echo "<br><hr>XML长度".strlen($src)."<br><hr>";
  15. $ssrc=$com->signC($src, strlen($src)); //订单签名数据
  16. [b]if($ssrc=="")
  17. {
  18. echo "签名失败,错误原因:".$ssrc."<br>";
  19. echo $com->getRC;
  20. exit;
  21. }[/b] else
  22. {
  23. echo "签名成功";
  24. echo $ssrc;
  25. }
复制代码

回答:
只要有详细的说明。肯定是可以做

做过。。。工行的:)




肯定注册了dll文件了,不然在实例化Com组件的时候就报不错,程序的流程不会到签名失败。


另外,我找到原因,是私钥口令错误引起的。