123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <?php
- namespace Library;
- class BitpayX {
- private $bitpayxAppSecret;
- private $bitpayxGatewayUri;
- /**
- * 签名初始化
- * @param merKey 签名密钥
- */
- public function __construct($bitpayxAppSecret) {
- $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;
- }
- }
|