美文网首页PHP程序员
PHP QQ小游戏支付签名

PHP QQ小游戏支付签名

作者: php转go | 来源:发表于2020-09-26 10:00 被阅读0次

    小游戏支付提供玩家在小游戏中购买道具的能力
    以下代码是实现预下单与回调时的签名,具体可以查看QQ小游戏支付

      /**qq小游戏预下单签名
         * @param array $data
         * @param string $session_key
         * @return string
         */
        public function setPrePaySign(array $data,string $session_key){
            unset($data['sig']);
            //1.请求方法: POST
            $str='POST&';
            //2.下单url中的path(/api/json/openApiPay/GamePrePay)部分,做标准的url Encoding,
            $path=urlencode('/api/json/openApiPay/GamePrePay');
            //3.请求参数按字典排序,并用"&"拼接, 注意空字段不参与排序
            $data=array_filter($data);
            ksort($data);
            $query=http_build_query($data);
            //4.拼接session_key,用户登录时开发者后台可以通过code2session接口获取到
            $last_str=$str.$path.'&'.$query.'&session_key='.$session_key;
            $h= hash_hmac('sha256', $last_str, $session_key,true);
            return bin2hex($h);
        }
    
      /**回调签名
         * @param array $data
         * @param string $session_key
         * @return string
         */
        public function setCallbackSign(array $data,string $session_key){
            unset($data['sig']);
            //1.请求方法: POST
            $str='POST&';
            //2.下单url中的path(/api/json/openApiPay/GamePrePay)部分,做标准的url Encoding,
            $path=urlencode('/pay/callback');
            //3.请求参数按字典排序,并用"&"拼接, 注意空字段不参与排序
            $data=array_filter($data);
            ksort($data);
            $query=http_build_query($data);
            //4.拼接session_key,用户登录时开发者后台可以通过code2session接口获取到
            $last_str=$str.$path.'&'.$query.'&AppSecret='.$session_key;
            $h= hash_hmac('sha256', $last_str, $session_key,true);
            return bin2hex($h);
        }
    
    

    相关文章

      网友评论

        本文标题:PHP QQ小游戏支付签名

        本文链接:https://www.haomeiwen.com/subject/xmdfuktx.html