$data['user_id'], 'sid' => $data['extparam'], ]; ksort($param); $string = ""; foreach ($param as $k => $v) { if($k == 'sign' || $v === '' || $v === null){ continue; } if ($string) { $string .= "&{$k}={$v}"; } else { $string = "{$k}={$v}"; } } $string .= "&key=".$channelConfig['appSecret']; $sign = strtoupper(md5($string)); $header = [ 'Content-Type: application/json', 'APPKEY: '.$channelConfig['appKey'], 'SIGN: '.$sign, ]; $param = json_encode($param); $res = getHttpPost('https://openapi.metaapp.cn/v2/user/auth', $param, $header); $res = json_decode($res, true); if ($res['code'] == 200) { return true; } else { return false; } } // ## 回调 - 效验 public function paySign($data, $polyChannelGame = []) { $param = [ 'tradeNo' => $data['tradeNo'], // 233平台对应的交易订单编号(具备唯一性) 'cpOrderId' => $data['cpOrderId'], // 供应商交易订单id(由供应商下单后出传入) 'productCode' => $data['productCode'], // 商品编号(供应商下单时提供) 'productName' => $data['productName'], // 商品名称(供应商下单时提供) 'productPrice' => $data['productPrice'], // 商品单价(单位:分【人民币分】) 'count' => $data['count'], // 订单购买购买数量 'nonce' => $data['nonce'], // 随机安全码(无业务意义,增加接口安全随机性) 'amount' => $data['amount'], // 订单原值金额(单位:分【人民币】),建议服务端做一下金额校验,避免被刷 'couponDeductAmount' => $data['couponDeductAmount'], // 优惠券抵扣金额(因优惠券而优惠的金额)(单位:分【人民币】),当该笔交易未使用优惠券时,值为0 'extra' => $data['extra']??'', // 扩展透传参数,当CP交易系统下单未提供扩展字段时,该字段为空 'sign' => $data['sign'] ]; if (!$channelConfig = json_decode($polyChannelGame['param'], true)) { return false; } ksort($param); $param['secret'] = $channelConfig['appSecret']; $string = ""; foreach ($param as $k => $v) { if($k == 'sign' || $v === '' || $v === null){ continue; } if ($string) { $string .= "&{$k}={$v}"; } else { $string = "{$k}={$v}"; } } $sha1 = sha1($string); $last32Chars = substr($sha1, -32); $sign = strtoupper($last32Chars); if ($param['sign'] == $sign) { return true; } return false; } // ## 回调 - 下单参数获取 public function getData($data) { if (!isset($data['cpOrderId']) || !isset($data['amount']) || !isset($data['tradeNo'])) { return false; } return [ 'orderid' => $data['cpOrderId'], // 我方聚合订单 'amount' => formatFenToYuan($data['amount']),// 充值金额(单位:元) 'sub_orderid' => $data['tradeNo'], // 渠道订单 ]; } // ## 回调 - 成功返回 public function getSuccess($msg = '') { echo json_encode(['code' => 200, 'message' => 'SUCCESS']); exit(); } // ## 回调 - 失败返回 public function getFail($msg = '') { echo json_encode(['code' => 22101, 'message' => '接口参数验证不通过']); exit(); } }