HuiPayPayment.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. namespace Biz\Pay\Payment;
  3. /**
  4. * 汇付天下接口
  5. */
  6. class HuiPayPayment extends \Biz\Pay\BasePayment {
  7. function init() {
  8. $this->sellerInfo = array(
  9. 'busKey' => "MHGDETHDER674SDCVG3456BNO9955BJ33366BNDCDFGRT",
  10. 'busAccount' => '41711', //360cd.cn
  11. );
  12. }
  13. protected $getWay = "https://gwapi.yemadai.com/pay/sslpayment";
  14. protected $paymentName = "HuiPay";
  15. public function toPay() {
  16. $MD5key = $this->sellerInfo['busKey']; //"MHGDETHDER674SDCVG3456BNO9955BJ33366BNDCDFGRT"; //MD5私钥
  17. $MerNo = $this->sellerInfo['busAccount']; //"41711"; //商户号
  18. $BillNo = $this->dataAccess->orderSn; //[必填]订单号(商户自己产生:要求不重复)
  19. $Amount = $this->dataAccess->money; //[必填]订单金额
  20. $ReturnURL = $this->redirectUrl; //[必填]返回数据给商户的地址(商户自己填写):::注意请在测试前将该地址告诉我方人员;否则测试通不过
  21. $AdviceURL = $this->notifyUrl; //[必填]支付完成后,后台接收支付结果,可用来更新数据库值
  22. $Remark = ""; //[选填]升级。
  23. $OrderTime = date("YmdHis", time()); //[必填]交易时间YYYYMMDDHHMMSS
  24. $defaultBankNumber = $this->dataAccess->bankCode;
  25. $payType = $this->dataAccess->payType; //"quickPay";
  26. $products = $this->dataAccess->goodsName;
  27. $md5src = "MerNo=" . $MerNo . "&BillNo=" . $BillNo . "&Amount=" . $Amount . "&OrderTime=" . $OrderTime . "&ReturnURL=" . $ReturnURL . "&AdviceURL=" . $AdviceURL . "&" . $MD5key; //校验源字符串
  28. $SignInfo = strtoupper(md5($md5src)); //MD5检验结果
  29. $newOrder = array(
  30. 'MerNo' => $MerNo,
  31. 'BillNo' => $BillNo,
  32. 'Amount' => $Amount,
  33. 'ReturnURL' => $ReturnURL,
  34. 'AdviceURL' => $AdviceURL,
  35. 'Remark' => $Remark,
  36. 'OrderTime' => $OrderTime,
  37. 'products' => $products,
  38. 'defaultBankNumber' => $defaultBankNumber,
  39. 'SignInfo' => $SignInfo,
  40. 'payType' => $payType,
  41. );
  42. // echo '<pre>';
  43. // print_r($newOrder);
  44. // echo '</pre>';exit;
  45. $this->goPay($newOrder);
  46. }
  47. public function notify($order) {
  48. # code...
  49. $re = $this->check($order);
  50. return $re;
  51. }
  52. public function redirect($order) {
  53. $re = $this->check($order);
  54. return $re;
  55. }
  56. public function check($order) {
  57. //商户号
  58. $MD5key = $this->sellerInfo['busKey']; //"MHGDETHDER674SDCVG3456BNO9955BJ33366BNDCDFGRT"; //MD5私钥
  59. $MerNo = $this->sellerInfo['busAccount']; //"41711"; //商户号
  60. //订单号
  61. $BillNo = trim($_POST["BillNo"]);
  62. //一麻袋支付订单号
  63. $OrderNo = trim($_POST["OrderNo"]);
  64. //金额
  65. $Amount = trim($_POST["Amount"]);
  66. //支付状态
  67. $Succeed = trim($_POST["Succeed"]);
  68. //支付结果
  69. $Result = trim($_POST["Result"]);
  70. //取得的MD5校验信息
  71. $SignInfo = trim($_POST["SignInfo"]);
  72. //备注
  73. $Remark = trim($_POST["Remark"]);
  74. $products = trim($_POST["products"]);
  75. $this->dataAccess->orderSn = $BillNo;
  76. $this->dataAccess->money = $Amount;
  77. $this->dataAccess->goodsName = $products;
  78. //校验源字符串
  79. $md5src = "MerNo=" . $MerNo . "&BillNo=" . $BillNo . "&OrderNo=" . $OrderNo . "&Amount=" . $Amount . "&Succeed=" . $Succeed . "&" . $MD5key;
  80. //MD5检验结果
  81. $md5sign = strtoupper(md5($md5src));
  82. if ($SignInfo == $md5sign) {
  83. if ($Succeed == "88") {
  84. return 1;
  85. } else {
  86. $err = intval($Succeed);
  87. return $err > 0 ? -$err : $err;
  88. }
  89. } else {
  90. return -1;
  91. }
  92. }
  93. function notifyMsg($key) {
  94. if ($key > 0) {
  95. echo 'ok';
  96. } else {
  97. echo 'error';
  98. }
  99. }
  100. }
  101. ?>