pay.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. // 金立创建订单接口
  3. //
  4. include_once __DIR__ . '/../../../main.php'; # 导入game utils
  5. include_once __DIR__ . '/../Mo/payResp.php'; # 导入通用返回值结构
  6. include_once __DIR__ . '/../Mo/payRequest.php'; # 导入通用订单请求结构
  7. require_once __DIR__ . '/config_for_gionee.php'; # 配置文件
  8. use loyalsoft\CLog;
  9. use loyalsoft\JsonUtil;
  10. use loyalsoft\HttpUtil;
  11. $str = HttpUtil::getQueryString(); # 取参数
  12. // $str = gzinflate($str);
  13. $data = JsonUtil::decode($str);
  14. $req = new PayRequest($data); # 解析参数并创建订单
  15. $cfg = config_for_gionee::Inst();
  16. $req->notifyUrl .= "?ext_info=" . $req->callbackInfo;
  17. //生成内部订单,创建金立订单
  18. if ($req->InserDataBase()) { # 订单数据入库
  19. $post_arr = array('user_id' => $data->JinliUserId, // # 客户端登录返回的信息中包含user_id,
  20. 'out_order_no' => $req->cpOrderId, // # 商户订单号,
  21. 'subject' => $req->product_name, // # 请填写你的支付标题
  22. 'submit_time' => date('YmdHis'), // # 提交时间
  23. 'total_fee' => $req->amount, // # 需要支付的金额
  24. 'api_key' => $cfg->appkey, // # 商户自己的api_key
  25. 'deal_price' => $req->amount, // # 需要支付的金额
  26. 'deliver_type' => '1', // # 网游类型接入时固定值
  27. 'notify_url' => $req->notifyUrl, // # 请填写充值后的回调URL
  28. 'player_id' => 'amigo_player001', // # 请填写amigo玩家id
  29. 'ext_info' => $req->callbackInfo); // # 透传参数
  30. $post_arr['sign'] = $cfg->pay_sign($post_arr); # 计算签名
  31. $ret = HttpUtil::makeRequest($cfg->ApiURL_pay_createOrder, JsonUtil::encode($post_arr)); # 发送API请求,参数要求为json
  32. if ($ret['result']) { # 请求结果
  33. $return_json = JsonUtil::decode($ret['msg']);
  34. if (isset($return_json->status) && $return_json->status == '200010000') { # 成功
  35. /*
  36. * 记录下你得到的$post_arr['out_order_no']和$return_arr['order_no']的对应关系,充值回调的时候要使用的
  37. */
  38. $arr = $req->retData();
  39. $arr['orderInfo'] = $ret['msg'];
  40. CLog::pay('[金立.pay]创建订单' . $req . " 参数: " . JsonUtil::encode($arr));
  41. die(payResp::ok($arr)); # 返回值
  42. }
  43. } # 创建失败处理
  44. CLog::pay('[金立.pay]创建订单接口调用失败' . $ret['msg']);
  45. die(payResp::err(1, '创建订单失败'));
  46. } else { # 入库失败
  47. CLog::pay('[金立.pay]订单插入数据库失败' . $req);
  48. die(payResp::err(1, '创建订单失败')); # 返回值
  49. }