h5内嵌页充值【推荐】

51游戏大约 4 分钟

h5内嵌页充值【推荐】

  • 51游戏网页游戏内H5扫码充值接口文档(提供二维码页面)

  文档修改记录

编码格式密级
utf-8公开
变更时间修改记录版本修改人
2021-08-31文档整理1.0.0朱金余
2021-09-01增加2个参数,页面的宽和高,不参与加密1.0.0朱金余
2022-6-27增加一个参数,用户客户端的ip,不参与加密1.0.0朱金余

对接的游戏

游戏名称
原始传奇

  名词解释

   游戏研发方 :也称为CP,游戏的实际开发团队
   游戏运营方 :也称为游戏平台,或者叫平台方,负责连接平台用户和游戏

 接口应用场景

    对接双方的工作分工

  • 游戏运营方   平台提供一个展示付款二维码的页面链接
  • 游戏研发方   根据接口文档中的约定参数拼接付款二维码页面的完整url,并在游戏内展示,供用户扫码付款

    效果展示

二维码效果展示

  • 游戏内展示平台的付款扫码二维码页面

  • 页面的参数研发要根据协议正确拼接

  • 本接口每次展示的金额是固定的,用户不可以修改充值金额

  • 页面窗口大小,由参数传入

  • 应用场景流程图如下:

    avatar

微信扫码后展示

avatar

  平台提供H5扫码充值页面接口协议阐述

    接口URL(不包含参数)

    接口请求方式

  • Http GET,游戏前端直接frame包含展示

    接口功能

  • 展示扫码支付的二维码页面

    接口http参数详解

参数类型是否必填说明
game_idintY游戏id找运营索取
uidintY平台用户uid,对应游戏登录接口中的参数:user
sidstringY游戏研发方的区服id,对应游戏登录接口中的参数:goods_sign。一般为数字,少部分游戏格式为 s112 格式,如传奇霸业
moneyintY充值金额,单位:人民币 元
timeintY请求时的时间戳,平台会依此判断是否超时,unixtimestamp,10位整数
product_idintY游戏道具/礼包id
product_namestringY游戏道具/礼包的名称
game_role_idstringY游戏角色唯一标识
gameorder_nostringN游戏生成的订单号,没有传空字符串
gamerole_namestringN游戏内的角色名,可以传空字符串
game_order_extstringN其它没有定义的字段,发货时会原样透传,对应游戏发货接口中的参数:game_order_ext
signstringY签名串,32位小写字符串,加密算法如下
widthintY页面窗口的宽,单位:PX ,不参与加密
heightintY页面窗口的高,单位:PX ,不参与加密
client_ipstringY用户的ip,不参与加密

    sign加密算法

// sign 加密规则,php代码示例:
$time = time();  //时间戳
$seckey = '{这里的h5_seckey找运营方索取}';    //sign加密的密钥,找运营方索取! 
//  参与加密的只有以下这些字段,不要增加,也不要减少!!!!
$params = [
            'game_id' => $game_id,
            'uid' => $user,
            'sid' => $areasign,
            'time' => $time,
            'money' => $money,
            'product_id' => $product_id,
            'product_name' => $product_name,
            'game_role_id' => $game_role_id,
            'gameorder_no' => $gameorder_no,
            'gamerole_name' => $gamerole_name,                
            ];
$params['sign] = createSign($params,$seckey);   // 请求参数加上sign参数
$params['width] = 窗口宽度;                     // 追加窗口宽度参数,不参与加密
$params['height] = 窗口高度;                    // 追加窗口高度参数,不参与加密
$params['client_ip] = 用户的ip;                    // 用户的ip,不参与加密 

$url = 'https://pay.51.com/gamepay/game?'.http_build_query($params);  //拼接可展示的页面完整url

生成加密串sign算法:
function createSign($params,$seckey){
        if(empty($seckey)){
            return '';
        }
        
        ksort($params);                              // 参数按参数名进行升序排序
        $signStr = "";
        foreach ($params as $key => $value) {
            if($key != 'sign'){                      // 去除sign参数
                $signStr .= $key."=".$value."&";     // 拼接有key=value&这种格式,md5前拼接示例
            }
        }
        $signStr = rtrim($signStr,"&");              // 去除最后一个&
        $signStr = $signStr.$seckey;                 // 拼接加密key
        //  md5 前的格式示例
        //game_id=634&game_role_id=342274965380308993&gameorder_no=&gamerole_name=&money=10&product_id=1&product_name=10元档充值&sid=1&time=0&uid=400253473$seckey
        $sign = md5($signStr);                       // 取md5值,32位小写
        return $sign;
}

// 完整链接的示例
https://pay.51.com/gamepay/game?/gamepay/game?game_id=632&uid=4518926&sid=30&money=10&product_id=101&product_name=10%E5%85%83%E5%85%85%E5%80%BC&game_role_id=218116895&gameorder_no=&gamerole_name=%E9%98%BF%E6%8B%89%E4%B9%84%E5%9C%A3%E8%AF%9E&game_order_ext=&sign=105179d6e640c33101e47b608814417d&time=1630550774&width=300&height=200

    接口返回

  • 无返回,直接展示html的页面

  平台提供的物料汇总