我的编程空间,编程开发者的网络收藏夹
学习永远不晚

php thinkphp 抖音支付,订单同步接口分享

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

php thinkphp 抖音支付,订单同步接口分享

1. 抖音支付

需要获取抖音小程序的AppID,AppSecret,需要配置回调地址,Token获取SALT
官方地址:支付订单同步
在这里插入图片描述
以下干货仅针对于有一定开发基础的精英,0基础的止步。

  public function DouyinPay($openId='',$id='',$body = '抖音担保支付'){        $order=db('order')->where(['id'=>$id,'status'=>1])->find();//获取订单信息        $outOrderNo = $order['orderno'];//开发者侧的订单号        $totalAmount = $order['price'];//支付价格; 接口中参数支付金额单位为[分]        $subject = "订单号:".$order['orderno']; //商品描述也就是标题        $body = $body;        $validTimestamp = 60 * 60;//订单过期时间(秒);        $notifyUrl = "https:/notify"; //这里可以忽略,走字节跳动小程序 -支付 -担保配置-设置回调地址        //创建订单        $response = $this->createOrder($outOrderNo, $totalAmount, $subject, $body, $validTimestamp, $notifyUrl);        $this->success('成功',$response);    }            public function CreateOrder($outOrderNo, $totalAmount, $subject, $body, $validTimestamp, $notifyUrl)    {        $params = [            'app_id'       => '******',//小程序appid            'out_order_no' => $outOrderNo,            'total_amount' => $totalAmount * 100,            'subject'      => $subject,            'body'         => $body,            'valid_time'   => $validTimestamp,           'notify_url'   => $notifyUrl,              ];        $params = array_filter($params);        $params['sign'] = $this->sign($params);        $res = $this->posts(            'https://developer.toutiao.com/api/apps/ecpay/v1/create_order',            $params        );        return $res;    }        public  function sign($map) {        $rList = [];        foreach($map as $k =>$v) {            if ($k == "other_settle_params" || $k == "app_id" || $k == "sign" || $k == "thirdparty_id")                continue;            $value = trim(strval($v));            if (is_array($v)) {                $value = $this->arrayToStr($v);            }            $len = strlen($value);            if ($len > 1 && substr($value, 0,1)=="\"" && substr($value, $len-1)=="\"")                $value = substr($value,1, $len-1);            $value = trim($value);            if ($value == "" || $value == "null")                continue;            $rList[] = $value;        }        $rList[] = "*****";//这里是SALT        sort($rList, SORT_STRING);        return md5(implode('&', $rList));    }    // **************** 以下方法 是字节小程序支付 签名处理方式    public function callbackSign($data) {/    public  function pushOrder($id=''){        $data=[];//获取订单信息        $api = "https://developer.toutiao.com/api/apps/order/v2/push";        $openid ='';//获取下单用户openid  //组装商品        $item_list = [['item_code' => '购买会员卡','img'=>'https:/logo.jpg',            'title'=>'会员服务','amount'=>1,'price'=>(int)($data['price']*100)]];//参数对应请查看官方文档,注意字段类型           // 组装订单        $detail = [            'order_id'=>$data['orderno'],'create_time'=>strtotime($data['add_time'])*1000,'status'=>"已支付",'amount'=>1,            'total_price'=>(int)($data['price']*100),'detail_url'=>"pages/me/vip/vip",'item_list'=>$item_list];              dump($detail);                      $param = ['access_token'=>$this->getAccessTokens(),'app_name'=>"douyin",            'open_id'=>$openid,'update_time'=>$this->getMillisecond(),'order_detail'=>json_encode($detail),'order_type'=>0,'order_status'=>1,'payment_order_no'=>$data['orderno']];             $result =$this->posts($api,$param);//请求          }         public  function getAccessTokens(){        $api = "https://developer.toutiao.com/api/apps/v2/token";  $param = ['appid'=>'***','secret'=>'***','grant_type'=>"client_credential"];        $access_token = Cache::get('dy_accessToken');        if(empty($access_token)){            $data = $this->posts($api,$param);         //   dump($result);die;         //   $data = json_decode($result,true);            if($data['err_no'] == 0){                $access_token = $data['data']['access_token'];                Cache::set('dy_accessToken',$access_token,$data['data']['expires_in']);            }        }        return $access_token;    }       public  function getMillisecond() {        list($t1, $t2) = explode(' ', microtime());        return (float)sprintf('%.0f',(floatval($t1)+floatval($t2))*1000);    }

来源地址:https://blog.csdn.net/qq_42958118/article/details/132468689

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

php thinkphp 抖音支付,订单同步接口分享

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录