抖音担保支付

    /**
     * 抖音担保支付
     */
    public function trPay($total_amount,$subject,$body,$order_sn)
    {
        $payUrl = 'https://developer.toutiao.com/api/apps/ecpay/v1/create_order';
        $requestData = [
            'app_id'    =>  self::$app_id,
            'out_order_no'  =>      $order_sn,
            'total_amount'      =>     (int)bcmul($total_amount,100),
            'subject'           =>      $subject,
            'body'              =>      $body,
            'valid_time'        =>  self::$valid_time,
            'notify_url'        =>  request()->domain() . '/api/notify/Trill/trNotify',
        ];
        $requestData = array_filter($requestData);
        $requestData['sign'] = self::getSign($requestData,self::$secret);
        $payParams = $this->posturl($payUrl,$requestData);
        return $payParams;
    }

请求签名

    /**
     * 支付签名
     * @param array $body
     * @param string $secret
     * @return string
     * User: huweikeji
     * Date: 2021/8/1 16:14
     */
    public function getSign(array $body, string $secret)
    {
        $filtered = [];
        foreach ($body as $key => $value) {
            if (in_array($key, ['sign', 'app_id', 'thirdparty_id'])) {
                continue;
            }

            $filtered[] =
                is_string($value)
                    ? trim($value)
                    : $value;
        }

        $filtered[] = trim($secret);
        sort($filtered, SORT_STRING);
        return md5(trim(implode('&', $filtered)));
    }

curl

    /**
     * post发送curl请求
     * @param $url
     * @param $data
     * @return mixed
     */
    function posturl($url,$data){
        $data  = json_encode($data);
        $headerArray =array("Content-type:application/json;charset='utf-8'","Accept:application/json");
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE);
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($curl);
        curl_close($curl);
        return json_decode($output,true);
    }

回调:

    /**
     * 支付回调
     */
    public function trNotify()
    {
        $notify = request()->param();
        cache('notify',$notify);
        $notify['token'] = self::$token;
        if ($notify['msg_signature'] == $this->getNotifySign($notify)) {
            //获取订单信息
            $callbackOrder = json_decode($notify['msg'], true);
            $order = Lianghaoorder::where(['paystatus'=>1,'orderid'=>$callbackOrder['cp_orderno']])->find();
            if(isset($order)&&$order['paytime']==0){
                $order->paystatus = 2;
                $order->paytime = time();
                $order->otherid  = $callbackOrder['payment_order_no'];      //商户单号(第三方订单号)
                $order->save();
                //抖音支付回调处理
            }
            //处理订单
            $data = ['order_sn' => $callbackOrder['cp_orderno']];
            Log::info('抖音担保支付效验成功');
            Log::info($data);
        }
        //$notify = cache('notify_err',$notify);
        //$data = ['err_no' => '0', 'err_tips' => 'success'];
        //return json($data);
    }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值