| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- namespace App\Libs\Pay\Merchants;
- use Exception;
- use GuzzleHttp\Client;
- /**
- * 汇聚支付
- */
- class JoinPay implements PayMerchantInterface
- {
- private $make_order_url = 'https://www.joinpay.com/trade/uniPayApi.action';
- private $query_order_url = 'https://qr.chinaums.com/netpay-route-server/api/';
- private $appId;
- private $merchantNo;
- private $version;
- public function __construct(array $config)
- {
- $this->version = "1.0";
- $this->merchantNo = "888108800000947";
-
- }
- public function send(array $data)
- { }
- public function query(string $trade_no)
- { }
- public function notify(array $data)
- { }
- public function refund(array $data)
- { }
- public function makeSign(array $data)
- {
- //签名步骤一:按字典序排序参数
- ksort($data);
- $buff = "";
- foreach ($data as $k => $v) {
- if ($k != "sign" && $v != "" && !is_array($v)) {
- $buff .= $k . "=" . $v . "&";
- }
- }
- $buff = trim($buff, "&");
- //签名步骤二:在string后加入KEY
- $string = $buff . $this->key;
- //签名步骤三:MD5加密
- $string = md5($string);
- //签名步骤四:所有字符转为大写
- $result = strtoupper($string);
- return $result;
- }
- private function request(array $data)
- {
- try {
- $data['sign'] = $this->makeSign($data);
- $client = new Client(['timeout' => 3]);
- $result = $client->request('post', $this->query_order_url, ['json' => $data])->getBody()->getContents();
- if ($result) {
- $result = json_decode($result);
- }
- return $result;
- } catch (Exception $e) { }
- }
- }
|