第三方平台对接UU跑腿

第三方平台对接UU跑腿

1.注册UU跑腿开放平台账号(open.uupt.com)
2.注册成功后登录,进入“我的首页”
3…点击“申请成为开发者”
4.填写真实信息,并等待工作人员审核
5.点击“我的应用”
6.添加需要对接的网站、APP、WINDOWS、获取Appkey
7.输入已注册过UU跑腿或将要用于注册UU跑腿的手机号
8.获取短信验证码并绑定
封装的类库传入参数即可

<?php
namespace Retail\Controller;
use Think\Controller;
//UU跑腿
class UudeliveryController extends Controller
{
    private static $getcode; //获取验证码
    private static $getopenid; //获取openid
    private static $balance;   //获取余额详情
    private static $recharge;   //充值
    private static $getorderprice;   //计算订单价格
    private static $addorder;   //下单
    private static $cancelorder;   //取消订单
    private static $getorderdetail;   //订单详情
    //链接
    public function __construct()
    {
        self::$getcode = 'http://openapi.uupaotui.com/v2_0/binduserapply.ashx';
        self::$getopenid = 'http://openapi.uupaotui.com/v2_0/bindusersubmit.ashx';
        self::$balance = 'http://openapi.uupaotui.com/v2_0/getbalancedetail.ashx';
        self::$recharge = 'http://openapi.uupaotui.com/v2_0/getrecharge.ashx';
        self::$getorderprice ='http://openapi.uupaotui.com/v2_0/getorderprice.ashx';
        self::$addorder = 'http://openapi.uupaotui.com/v2_0/addorder.ashx';
        self::$cancelorder = 'http://openapi.uupaotui.com/v2_0/cancelorder.ashx';
        self::$getorderdetail = 'http://openapi.uupaotui.com/v2_0/getorderdetail.ashx';
    }
    //获取验证码
    public function getcode($data,$appkey)
    {
        $path = self::$getcode;
        $content =  $this->binding($data,$appkey,$path);
        return $content;
    }
    //获取openid
    public function getopenid($data,$appkey)
    {
        $path = self::$getopenid;
        $content =  $this->binding($data,$appkey,$path);
        return $content;
    }
    //绑定商家公用请求方法
    public function binding($data,$appkey,$path)
    {
        header("Content-type: text/html; charset=utf-8");
        $data['timestamp'] = time();
        $data['nonce_str'] = $this->randomkeys(32);
        $data['sign'] = $this->sign($data,$appkey);
        $content = $this->request_post($path,$data);
        return $content;
    }
    //获取余额详情
    public function getbalance($data,$appkey)
    {
        $path = self::$balance;
        $content = $this->uu_request($data,$appkey,$path);
        return $content;
    }
    //充值
    public function recharge($data,$appkey)
    {
        $path = self::$recharge;
        $content = $this->uu_request($data,$appkey,$path);
        return $content;
    }
    //订单价格
    public function getorderprice($data,$appkey)
    {
        $path = self::$getorderprice;
        $content = $this->uu_request($data,$appkey,$path);
        return $content;
    }
    //下单
    public function addorder($data,$appkey)
    {
        $path = self::$addorder;
        $content = $this->uu_request($data,$appkey,$path);
        return $content;
    }
    //取消订单
    public function cancelorder($data,$appkey)
    {
        $path = self::$cancelorder;
        $content = $this->uu_request($data,$appkey,$path);
        return $content;
    }
    //订单详情
    public function getorderdetail($data,$appkey)
    {
        $path = self::$getorderdetail;
        $content = $this->uu_request($data,$appkey,$path);
        return $content;
    }
    //获取已开通的城市列表
    public function getcitylist()
    {
        $content = $this->uu_request();
    }
    //公共请求方法
    private function uu_request($data,$appkey,$path)
    {
        header("Content-type: text/html; charset=utf-8");
        $data['nonce_str'] = $this->randomkeys(32);
        $data['timestamp'] = time();
        $data['sign'] = $this->sign($data,$appkey);
        $content = $this->request_post($path,$data);
        return $content;
    }
    private function request_post($url = '', $post_data = array()) {
        if (empty($url) || empty($post_data)) {
            return false;
        }
        $arr = [];
        foreach ($post_data as $key => $value) {
            $arr[] = $key.'='.$value;
        }
        $curlPost = implode('&', $arr);
        $postUrl = $url;
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$postUrl);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }

// 生成随机字符串
    private function randomkeys($length)
    {
        $pattern = '1234567890abcdefghijklmnopqrstuvwxyz
                   ABCDEFGHIJKLOMNOPQRSTUVWXYZ,./&l
                  t;>?;#:@~[]{}-_=+)(*&^%$?!';    //字符池
        $key = '';
        for ($i = 0; $i < $length; $i++) {
            $key .= $pattern{mt_rand(0, 35)};    //生成php随机数
        }
        return $key;
    }

// 生成签名
    private function sign($data, $appkey) {
        ksort($data);
        $arr = '';
        foreach ($data as $key => $value) {
            $arr .= $key.'='.$value.'&';
        }
        $arr .= 'key='.$appkey;
        $str = strtoupper($arr);
        return strtoupper(md5($str));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值