文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-10-05 10:43

关注

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

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯