paymentvivo.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. defined('IN_WEB') or die('Include Error!');
  3. /**
  4. * 三方支 vovo验签
  5. */
  6. class ModelPaymentVivo {
  7. const PLAT='vivo';
  8. public function getApayInfo() {
  9. $configs = oo::cfg('pay');
  10. return $configs[self::PLAT] ?? [];
  11. }
  12. public function getApiUrl($region = '') {
  13. if($region && $region == 'IN'){ //印度玩家订单查询地址
  14. return 'https://in-pay.vivoglobal.com/api/partner/query';
  15. }
  16. return 'https://pay.vivoglobal.com/api/partner/query';
  17. }
  18. /**
  19. * vivo订单查询
  20. * @param string $orderId
  21. * @param int $uid
  22. * @return bool
  23. */
  24. public function qryOrder($orderId, $uid, $region = '') {
  25. $conf = $this->getApayInfo();
  26. if(!isset($conf['appid'], $conf['appkey'])){
  27. oo::logs()->debug3([
  28. 'uid' => $uid, 'data' => ['orderid' => $orderId, 'msg' => 'appinfo empty']
  29. ], 'checkorder.log');
  30. return false;
  31. }
  32. $param = [
  33. 'signType' => 'MD5',
  34. 'appId' => $conf['appid'],
  35. 'partnerOrderId' => $orderId,
  36. ];
  37. $key = md5($conf['appkey']);
  38. $signStr = "appId={$param['appId']}&partnerOrderId={$param['partnerOrderId']}&{$key}";
  39. $param['sign'] = strtolower(md5($signStr));
  40. $headers = ['content-type: application/x-www-form-urlencoded'];
  41. $ret = oo::functions()->curl($this->getApiUrl($region), http_build_query($param), 1, 20, $headers);
  42. if(!isset($ret['responseCode'], $ret['tradeStatus']) || $ret['tradeStatus'] != 'Completed'){
  43. oo::logs()->debug3([
  44. 'uid' => $uid, 'data' => ['orderid' => $orderId, 'data'=>(array)$ret, 'msg' => 'query return error']
  45. ], 'checkorder.log');
  46. return false;
  47. }
  48. return true;
  49. }
  50. }