Forráskód Böngészése

add bitpayx class

root 5 éve
szülő
commit
9385add291
1 módosított fájl, 82 hozzáadás és 0 törlés
  1. 82 0
      library/BitpayX.php

+ 82 - 0
library/BitpayX.php

@@ -0,0 +1,82 @@
+<?php
+namespace Library;
+
+class BitpayX {
+    private $bitpayxAppSecret;
+    private $bitpayxGatewayUri;
+    /**
+	 * 签名初始化
+	 * @param merKey	签名密钥
+	 */
+	public function __construct($bitpayxAppSecret) {
+		var_dump('123');exit;
+		$this->bitpayxAppSecret = $bitpayxAppSecret;
+		$this->bitpayxGatewayUri = 'https://api.mugglepay.com/v1/';
+	}
+	
+    public function prepareSignId($tradeno)
+    {
+        $data_sign = array();
+        $data_sign['merchant_order_id'] = $tradeno;
+        $data_sign['secret'] = $this->bitpayxAppSecret;
+        $data_sign['type'] = 'FIAT';
+        ksort($data_sign);
+        return http_build_query($data_sign);
+    }
+    public function sign($data)
+    {
+        return strtolower(md5(md5($data) . $this->bitpayxAppSecret));
+    }
+    public function verify($data, $signature)
+    {
+        $mySign = $this->sign($data);
+        return $mySign === $signature;
+    }
+    public function mprequest($data)
+    {
+        $headers = array('content-type: application/json', 'token: ' . $this->bitpayxAppSecret);
+        $curl = curl_init();
+        $url = $this->bitpayxGatewayUri . 'orders';
+        curl_setopt($curl, CURLOPT_URL, $url);
+        curl_setopt($curl, CURLOPT_POST, 1);
+        $data_string = json_encode($data);
+        curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
+        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
+        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
+        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
+        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
+        $data = curl_exec($curl);
+        curl_close($curl);
+        return json_decode($data, true);
+    }
+    public function mpcheckout($orderId, $data)
+    {
+        $headers = array('content-type: application/json', 'token: ' . $this->bitpayxAppSecret);
+        $curl = curl_init();
+        $url = $this->bitpayxGatewayUri . 'orders/' . $orderId . '/checkout';
+        curl_setopt($curl, CURLOPT_URL, $url);
+        curl_setopt($curl, CURLOPT_POST, 1);
+        $data_string = json_encode($data);
+        curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
+        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
+        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
+        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
+        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
+        $data = curl_exec($curl);
+        curl_close($curl);
+        return json_decode($data, true);
+    }
+    public function refund($merchantTradeNo) {
+        // TODO
+        return true;
+    }
+    public function buildHtml($params, $method = 'post', $target = '_self'){
+        // var_dump($params);exit;
+		$html = "<form id='submit' name='submit' action='".$this->gatewayUri."' method='$method' target='$target'>";
+		foreach ($params as $key => $value) {
+			$html .= "<input type='hidden' name='$key' value='$value'/>";
+		}
+		$html .= "</form><script>document.forms['submit'].submit();</script>";
+		return $html;
+    }
+}