如何实现流量充值

通过流量充值接口您可以实现为指定手机号充值特定流量包。

一、注册、报备及设置

1、注册云片,在控制台首页获取APIKEY。 2、开发阶段建议先关闭 IP白名单, 或将服务器IP及本地IP均设置在IP白名单内。

二、调通充值接口

1、流量充值接口

URL:https://flow.yunpian.com/v2/flow/recharge.json

访问方式:POST,接口支持https及http

参数:

参数名 类型 是否必须 描述 示例
apikey String 用户唯一标识 9b11127a9701975c734b8aee81ee3526
mobile String 接收的手机号(仅支持大陆号码) 15205201314
sn String 流量包唯一ID 1008601
callback_url String 本条流量充值的状态报告推送地址 http://yourreceiveurl_address

防刷过滤:默认开启。过滤规则:同1个手机充值相同内容,30秒内最多充值1次,5分钟内最多充值3次。

请求示例

  • Java
  • php
  • python
  • C#

/**
     * 充值流量
     *
     * @param apikey 成功注册后登录云片官网,进入后台可查看
     * @param sn     流量包的唯一ID,进入官网查看 https://www.yunpian.com/price.html#streamTable
     * @param mobile 手机号
     * @return json格式字符串
     */
    public static String sendFlow(String apikey, String sn, String mobile) {
        Map<String, String> params = new HashMap<String, String>();//请求参数集合
        params.put("apikey", apikey);
        params.put("sn", sn);
        params.put("mobile", mobile);
        return post("https://flow.yunpian.com/v2/flow/recharge.json", params);//请自行使用post方式请求,可使用Apache HttpClient
    }

// 以下为核心代码部分

$ch = curl_init();
// 必要参数
$apikey = "xxxxxxxxxxx"; //修改为您的apikey(https://www.yunpian.com)登录官网后获取
$mobile = "xxxxxxxxxxx"; //请用手机号代替
$sn="1008601"; //流量包的唯一ID,进入官网查看 https://www.yunpian.com/price.html#streamTable
// 发送短信
$data=array('sn'=>$sn,'apikey'=>$apikey,'mobile'=>$mobile);
curl_setopt ($ch, CURLOPT_URL, 'https://flow.yunpian.com/v2/flow/recharge.json');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$json_data = curl_exec($ch);
//解析返回结果(json格式字符串)
$array = json_decode($json_data,true);
echo '<pre>';print_r($array);

# apikey:成功注册后登录云片官网,进入后台可查看
    # sn:流量包的唯一ID,进入官网查看 https://www.yunpian.com/price.html#streamTable
    # mobile:接收的手机号,仅支持单号码发送
    def recharge_flow(apikey, sn, mobile):
    #服务地址
    flow_host = "flow.yunpian.com"
    #端口号
    port = 443
    #版本号
    version = "v2"
    #智能匹配模板短信接口的URI
    flow_send_uri = "/" + version + "/flow/recharge.json"
    params = urllib.urlencode({'apikey': apikey, 'sn': sn, 'mobile':mobile})
    headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
    conn = httplib.HTTPSConnection(flow_host, port=port, timeout=30)
    conn.request("POST", flow_send_uri, params, headers)
    response = conn.getresponse()
    response_str = response.read()
    conn.close()
    return response_str

static string SendFlow()
    {
        // 设置为您的apikey(https://www.yunpian.com可查)
        string apikey = "xxxxxxxxxxxxxxxxxxxxxxx";
        // 发送的手机号
        string mobile = "13812345678";
        // 流量包的唯一ID,进入官网查看 https://www.yunpian.com/price.html#streamTable
        string sn = "1008601";
        // 群发短信请求url
        string url_send_flow = "https://flow.yunpian.com/v2/flow/recharge.json";
        string data_send_flow = "apikey=" + apikey + "&mobile=" + mobile + "&sn=" + sn;
        // 请自行使用post方式请求
        return HttpPost(url_send_flow, data_send_flow);
    }

调用成功的返回值示例

{
    "count": 1,//成功提交充值请求的数量
    "fee": 2.85,//扣费金额
    "sid": "a1cdcd5a6eac4a6da42e2d4394c76003"//记录id,32位的唯一字符串
}

2、下载、导入SDK,并配置。

目前云片提供JAVA/PHP/Python/C# 4种语言SDK、如果您的编程语言云片未提供SDK,您可以根据文档自行对接。

SDK下载地址(JAVA/PHP/Python/C#):去下载

SDK示例

  • Java
  • php
  • python
  • C#

jar包
yunpian-java-sdk.jar
log4j.jar
gson.jar
commons-logging-1.1.3.jar
httpclient.jar (必须4.4以上)
httpcore.jar (必须4.4以上)

代码示例

/**
     * 流量类操作示例
     */
    public static void testFlow(String apikey, String mobile, String sn) {
        YunpianRestClient client = new YunpianRestClient(apikey);//用apikey生成client,可作为全局静态变量
        FlowOperator flowOperator = client.getFlowOperator();
        // 获取流量包
        ResultDO<List<FlowPackageInfo>> r1 = flowOperator.getPackage();
        System.out.println(r1);
        // 获取指定流量包
        r1 = flowOperator.getPackage("10086");
        System.out.println(r1);
        // 发送流量包
        ResultDO<SendFlowInfo> r2 = flowOperator.recharge(mobile, sn);
        System.out.println(r2);
        // 拉取语音状态报告
        ResultDO<List<FlowStatusInfo>> r3 = flowOperator.pullStatus();
        System.out.println(r3);
    }

1、下载依赖包:https://www.yunpian.com/api2.0/document-downloadSdk.html
2、在config.php 文件内填写你的 APIKEY
3、在使用处添加以下引用: require_once('path/to/YunpianAutoload.php')
4、获取相应操作类调用api

require_once '../YunpianAutoload.php';
//流量操作
$flowOperator = new FlowOperator();
$data['mobile'] = '13812345678';
$data['sn'] = '1008601';
$result = $flowOperator->recharge($data);
print_r($result);

本SDK适用于Python2,Python3版本在开发中,敬请期待。
使用pip安装依赖:pip install yunpian-sdk-python
或者下载包进行安装:pip install yunpian-sdk-python-1.0.0.tar.gz

from yunpian.FlowOperator import FlowOperator
import sys
import json
reload(sys)
sys.setdefaultencoding('utf-8')
APIKEY = 'your apikey'
flowOperator = FlowOperator(APIKEY)
print json.dumps(flowOperator.recharge({'mobile': '13020080000', 'sn': '1008601'}).content, ensure_ascii=False)

依赖包
Newtonsoft.Json.dll
Yunpian.dll

static void Main(string[] args)
    {
        //设置apikey
        Config config = new Config("your apikey");
        Dictionary<string, string> data = new Dictionary<string, string>();
        Result result = null;
        //获取流量操作类
        FlowOperator flow = new FlowOperator(config);
        data.Clear();
        result = flow.getPackage(data);
        Console.WriteLine(result);
        data.Clear();
        data.Add("sn", "1008601");
        data.Add("mobile", "13020080000");
        result = flow.recharge(data);
        Console.WriteLine(result);
    }

三、按需开发功能

1、查询流量包接口 通过查询流量包接口可以查询到 流量包ID,价格等信息。
2、获取流量状态报告 如需通过接口获取流量充值状态,可以开发推送/获取状态报告接口。