H5IosController.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. /**
  3. * H5IosController.php UTF-8
  4. * H5 IOS 马甲包处理
  5. *
  6. * @date : 2020/9/14 16:38
  7. *
  8. * @license 这不是一个自由软件,未经授权不许任何使用和传播。
  9. * @author : chenbingling <cbl@huosdk.com>
  10. * @version : H5IOS 1.0
  11. */
  12. namespace huosdk\h5ios\sdk\controller;
  13. use huolib\status\CommonStatus;
  14. use huosdk\h5ios\core\controller\ApplePay;
  15. use huosdk\h5ios\core\controller\Game;
  16. use huosdk\h5ios\core\model\GameModel;
  17. use huosdk\h5ios\core\status\OrderStatus;
  18. use huosdk\h5ios\core\tool\StrUtils;
  19. class H5IosController extends CommonController {
  20. public function _initialize() {
  21. parent::_initialize();
  22. }
  23. /**
  24. * app启动(激活)
  25. * https://doc.huosdk.com/web/#/232?page_id=14279
  26. * 【域名】/vb/sdk/init
  27. */
  28. public function init() {
  29. $_game_rq = $this->setGameData();
  30. $_channel_rq = $this->setChannelData();
  31. $_app_id = $_game_rq->getHAppId();
  32. if (empty($_app_id) && !is_integer($_app_id)) {
  33. $_code = CommonStatus::INVALID_PARAMS;
  34. $this->error(CommonStatus::getMsg($_code).':app_id', [], $_code);
  35. }
  36. $_rs = (new Game())->getGameUrl($_app_id, $_channel_rq->getAgentId());
  37. $this->returnData($_rs);
  38. }
  39. /**
  40. * 苹果验单
  41. * https://doc.huosdk.com/web/#/232?page_id=14282
  42. * 【域名】/vb/sdk/check
  43. */
  44. public function check() {
  45. $_order_data = get_val($this->rq_data, 'order', []);
  46. $_game_rq = $this->setGameData();
  47. $_device_rq = $this->setDeviceData();
  48. if (empty($_order_data)) {
  49. $_code = OrderStatus::INVALID_PARAMS;
  50. $this->error(OrderStatus::getMsg($_code), [], $_code);
  51. }
  52. if (empty($_order_data['product_id']) || empty($_order_data['trans_id'])
  53. || empty($_order_data['receipt_data'])
  54. || !isset($_order_data['order_id'])
  55. || !isset($_order_data['sandbox'])) {
  56. $_code = OrderStatus::INVALID_PARAMS;
  57. $this->error(OrderStatus::getMsg($_code), [], $_code);
  58. }
  59. $_receipt_data = StrUtils::trimAll($_order_data['receipt_data']);
  60. $_apple_id = $_game_rq->getAppleId();
  61. if (empty($_apple_id)) {
  62. $_apple_id = (new GameModel())->getAppleIdById($_game_rq->getHAppId());
  63. if (!empty($_apple_id)) {
  64. $_game_rq->setAppleId($_apple_id);
  65. }
  66. }
  67. $_rs = (new ApplePay())->orderQuery(
  68. $_order_data['order_id'], $_order_data['trans_id'], $_receipt_data, $_order_data['sandbox'],
  69. $_device_rq->getMac(), $_apple_id
  70. );
  71. $this->returnData($_rs);
  72. }
  73. }