又拍云 php5月18號那,又拍云文檔中心

移動流量

平臺概述?

又拍云手機流量營銷平臺,整合移動、電信、聯通三大運營商流量資源,將強大的流量營銷服務,通過接口等形式提供給商家合作伙伴,幫助商家開展品牌宣傳、APP/游戲/微信公眾號/網站的拉新與促活等多種營銷活動。

通過接入又拍云流量營銷平臺,商家可以獲得更多流量、用戶和收益,而商家提供的活動也讓用戶獲得了三網通用流量和更加豐富的活動體驗。

產品特點?

1.三網通用,成本優勢,覆蓋面廣

2.快速對接、全流水、易對賬、精結算

應用場景?

1.APP 下載贈流量

2.微信公眾號增粉

3.獎品禮券

4.流量加油站

5.積分兌換流量

6.活動比賽送流量

7.流量紅包

8.員工福利

對接說明?

1.請聯系商務(Tel:0571-89775132)確定您的應用場景需求,獲取對應流量報價

2.注冊又拍云賬號,如果您已有賬號,請登錄 又拍云控制臺 完成企業/個人認證

3.前往導航 > 工具箱 > 手機流量營銷頁面,開通該服務(開通郵件中包含接口地址)

4.通過流量營銷控制臺配置回調地址

5.出口 IP 出于安全考慮暫不支持控制臺配置,可聯系我司商務完成生產環境聯調

業務交互流程:

d73fdec6e1d7f42e822996680e967196.png

接口文檔?

又拍云手機流量平臺接口入口地址統一為:https://ptp-api.upyun.com,請求接口時,統一使用 POST 方法, 文檔類型統一為 Content-Type: application/json,使用 JSON 格式發送請求, 響應結果也會以 JSON 格式返回;文檔中接口的請求地址只包含路徑部分,實際請求時,需要加上統一入口地址 https://ptp-api.upyun.com。文檔中描述簽名計算時,都是先正序排序(給出的示例字符串已經是排序后的結果),再做 SHA1 運算。

本文檔一共描述了四個接口和一個充值回調說明,接口如下:

獲取簽名 POST /refreshToken

提交訂單 POST /chargeOrder

查詢訂單狀態 POST /seekOrder

查詢余額 POST /getMyBalance

針對以上接口,目前提供了 php 版本 sdk,用于提供接口調用示例, 各企業用戶可以根據自己的需要進行封裝,完善錯誤處理,下載地址:點擊下載。

接口詳情?

1.獲取計算簽名需要的 token

接口說明

該接口用于獲取 token,調用其他接口時,需要使用 token 計算簽名。由于 token 需要在后續的接口請求中,全局共享,所以在并發請求的場景下,建議將 token 保存在 Redis/Mysql 等第三方存儲中

請求地址

POST /refreshToken

請求參數

名稱

類型

是否必須

描述

appkey

String

必須

appkey,由又拍云提供,可以登錄手機流量后臺查看

appsecret

String

必須

appsecret,由又拍云提供,可以登錄手機流量后臺查看

請求示例

curl https://ptp-api.upyun.com/refreshToken -H "Content-Type: application/json" -d "{\"appkey\": \"your_appkey_put_here\", \"appsecret\": \"your_appsecret_put_here\"}"

響應參數

名稱

類型

示例值

描述

code

String

200

響應狀態碼,200 表示正常,其他詳見錯誤碼

token

String

XsdOpxqudzMnw

用于簽名計算需要的 token,token 默認有效期為 24 小時,僅最后一次請求接口生成的 token 才有效

info

String

請求成功

響應示例

{

"code": "200",

"token": "XsdOpxqudzMnw",

"info": "請求成功"

}

2.創建訂單

接口說明

創建手機流量充值訂單

請求地址

POST /chargeOrder

請求參數

名稱

類型

是否必須

描述

appkey

String

必須

E1KRHcKd3qoef8V1

mobile

String

必須

被充值手機號進行 AES 對稱加密再 base64 轉碼后的值,一次只允許一個手機號碼,見示例程序

prodcode

String

必須

流量包的產品編號

custno

String

必須

客戶自定義的訂單號,用于客戶內部記錄訂單,長度必須小于30, 且每次充值,編號不重復

sign

String

必須

根據 token 和請求參數計算的簽名,簽名規則見算法說明部分 (示例程序下載)

prodtime

Integer

選填

流量時段,1 表示全時段流量,0 表示閑時流量,默認為全時段流量

prodstandard

Integer

選填

用于區分網絡類型,可選值分別為:7表示全部網絡類型,3表示 2g 和 3g 兩種網絡類型,1表示 2g 網絡類型,默認值為7

響應參數

名稱

類型

示例值

描述

code

String

200

響應狀態碼,200 表示創建訂單成功;410 511 必須再次查詢訂單確認;其他錯誤碼視為創建失敗;系統響應超時等其他非正常響應,需要調用查詢訂單接口確認

custno

String

20150238829

客戶訂單號,和請求值一致

orderno

String

2016298237019

又拍云平臺的訂單號

info

String

充值成功

算法說明

計算手機號的 AES 對稱加密,再 base64 轉碼后的值

將接口請求參數按照請求參數名稱正序排序;

將請求參數和請求參數值拼接成字符串:appkey${YourAppKey}custno${YourCustno}mobile${YourAesEncodedMobile}prodcode${YourPrdcode}token${YourToken(將字符串中的變量${...}部分替換成實際值即可,)

對拼接后的字符串進行SHA1指紋運算,得到的 16 進制字符串 b5cd94c99e3e576f5e2ca0e66ee3da670cb1c62b 便是 sign 值

示例

參數拼接后的字符串為:appkey3P83lWwkoV15yZVTcustno20151123114702mobile8mBGFNfe1o/rzAx2Ost2IQ==prodcodeCMCC_10tokenVqHAab3JYXBDkCoO(注意手機號是 aes 加密再 base64 編碼后的),進行 SHA1 運算得到的 sign 值為:8b05f52e605c7ab89a895eb730cacab4cbeabd4c

響應示例

{

"code": "200",

"custno": "20150238829",

"orderno": "2016298237019",

"info": "充值成功"

}

3.查詢訂單狀態

接口說明

查詢充值訂單當前的狀態,用于確認是否充值成功

請求地址

POST /seekOrder

請求參數

名稱

類型

是否必須

描述

custno

String

必須

客戶提交的訂單號

appkey

String

必須

鑒權賬號

sign

String

必須

簽名,簽名規則為:將 appkey${YourAppKey}custno${YourCustno}requesttime${YourReqestTime}TOKEN${YourToken} 中${...}變量部分替換為實際值,再進行 SHA1 運算。如果請求參數不包含 requesttime,計算簽名則不需要該值

requesttime

String

查詢的時間點,該參數為可選參數,格式為"YYYY-MM-DD HH:mm:ss",當傳遞該參數時,我們會在給定時間點的前后 1 個小時范圍內查詢;如果未傳該參數,我們將在最近一周的訂單中查詢

響應參數

名稱

類型

示例值

描述

code

String

200

響應狀態碼,200 表示充值成功;430 516 530 表示充值失敗;511 必須人工再次確認;其他錯誤碼視為充值中

custno

String

20150238829

客戶自定義訂單號

info

String

成功

響應示例

{

"code": "200",

"custno": "2015823871239",

"info": "充值成功"

}

4.查詢余額

請求地址

POST /getMyBalance

請求參數

名稱

類型

是否必須

描述

appkey

String

必須

sign

String

必須

簽名,算法為 appkey${YourAppKey}TOKEN${Yourtoken} 中${...}變量部分替換實際值,再進行 SHA1 運算得到的字符串便為 sign 值

響應參數

名稱

類型

示例值

描述

code

String

200

響應狀態碼

balance

Float

100.00

賬戶余額(包含凍結金額)

freeze

Float

20.00

凍結金額,正在交易的訂單金額

availBalance

Float

80.00

實際可用余額(不包含凍結金額)

響應示例

{

"code": "200",

"balance": 100,

"freeze": 20,

"availBalance": 80

}

充值回調說明?

客戶需要在又拍云手機流量后臺填寫充值回調地址,并注意防火墻配置,不能屏蔽又拍云服務器地址。配置成功后,每次充值后,又拍云會向該地址發送 POST 請求,請求的數據格式為 application/json

請求參數

名稱

類型

是否必須

描述

code

String

必須

響應狀態碼,200 表示充值成功;430,530 表示充值失敗,其他錯誤碼或異常信息表示充值中

orderno

String

必須

又拍云平臺的訂單號

custno

String

必須

客戶自定義訂單號

info

String

必須

描述信息

sign

String

必須

簽名,客戶可以使用該值校驗請求是否合法,強烈建議接收充值回調時進行校驗。簽名規則為:將 code${Code}custno${YourCustno}info${Info}orderno${OrderNo}token${YourToken} 字符串中的變量部分${...}替換為請求參數中的值,再對得到的字符串進行 SHA1 簽名

客戶接受請求成功后,需要響應如下 json 值:

{

"info": "1"

}

否則,又拍云將隔 1 分鐘再重試一次,一共回調 3 次

錯誤碼說明?

注:需要留意每個接口響應參數說明中的 code 處理方式

錯誤碼

說明

錯誤碼

說明

200

成功

201

充值中

410

運營商返回超時

422

用戶狀態異常

430

訂購/充值失敗

502

sign簽名錯誤

503

余額不足

504

非法的回調地址

505

手機號不合法

506

用戶不能訂購該套餐

507

接口參數異常

508

令牌鑒權不通過

509

客戶未認證授權

510

查詢太頻繁

511

內部異常,此時對訂單的查詢、充值等操作等需要聯系客戶再次確認

512

訂單號重復

513

運營商請求超時

514

ip不在白名單

515

該客戶不存在

516

不存在此訂單

517

無法識別的手機號

519

當前appkey或appsecret錯誤

520

活動不存在

526

合同不在有效期

527

token不在有效期

530

訂購/充值失敗

531

簽名不通過

532

訂單號長度超過30

533

aes加密有誤

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394942.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394942.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394942.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SQL SERVER2000將多行查詢結果拼接到一行數據及函數的創建

處理前的查詢結果如上圖: 通過借助SQL變量的定義 DECLARE Scope varchar(1000) DECLARE Num int SET Scope SET Num 1 SELECT ScopeScopeconvert(varchar(8),Num)、DescScope DescOper;, Num Num1 From fuel_contractQualityNew Where ContractID0120090001…

kindeditor簡單使用

先引入&#xff1a; <script src"/static/jquery-3.3.1.min.js"></script><script src"/static/kindeditor-4.1.11-zh-CN/kindeditor/kindeditor-all.js"></script> 基本使用參數&#xff1a; $(function () {KindEditor.create(#…

windows nginx c++讀取請求數據_輕松應對百萬并發的Nginx,搞懂LinuxC/C++這些技術棧升職加薪...

在深入了解 Nginx 各種原理及在極端場景下的一些錯誤場景處理時&#xff0c;需要首先理解什么是網絡事件。Nginx 是一個事件驅動的框架&#xff0c;所謂事件主要指的是網絡事件&#xff0c;Nginx 每個網絡連接會對應兩個網絡事件&#xff0c;一個讀事件一個寫事件。在深入了解 …

github 6月開源項目_我的開源項目如何在短短5天內在GitHub上贏得6,000顆星

github 6月開源項目Last month I launched two open source projects on GitHub. A few days later, my Front-End Checklist was showing more than 6,000 stars (17,000 as of writing). And I got 600 stars for my Resources-Front-End-Beginner project!上個月&#xff0c…

如何成為一位牛逼的高手

鄭昀 演講稿 創建于2016/9/15 最后更新于2016/9/21 很多人都在思考一個問題&#xff1a; 怎樣才能想出來一個牛逼的 idea&#xff1f; 有一位喜歡抽煙喝酒燙頭的大師 給出了答案&#xff1a; 這事兒吧&#xff0c;簡單&#xff0c;一共分兩步。 第一步先讓自己成為一個牛逼的人…

thinkphp html php文件,ThinkPHP生成靜態HTML文件

View.class.php/*** 加載模板和頁面輸出 可以返回輸出內容* access public* param string $templateFile 模板文件名* param string $charset 模板輸出字符集* param string $contentType 輸出類型* param string $content 模板輸出內容* param string $prefix 模板緩存前綴* r…

day01語法python入門_2

十&#xff1a;while循環 1.基本循環 while條件#循環體#如果條件為真&#xff0c;那么循環體則執行#如果條件為假&#xff0c;那么循環體不執行。2.break break 用于退出所有循環 while True:print "123"breakprint "456"3.continue while True:print &quo…

Python dict() 函數

Python dict() 函數 Python 內置函數 描述 dict() 函數用于創建一個字典。 語法 dict 語法&#xff1a; class dict(**kwarg) class dict(mapping, **kwarg) class dict(iterable, **kwarg) 參數說明&#xff1a; **kwargs -- 關鍵字mapping -- 元素的容器。iterable -- 可迭代…

貝塞爾曲線:原理、自定義貝塞爾曲線View、使用!!!

一、原理 轉自&#xff1a;http://www.2cto.com/kf/201401/275838.html Android動畫學習Demo(3) 沿著貝塞爾曲線移動的Property Animation Property Animation中最重要&#xff0c;最基礎的一個類就是ValueAnimator了。Property Animation利用ValueAnimator來跟蹤記錄對象屬性已…

ios pusher使用_如何使用JavaScript和Pusher構建實時圖

ios pusher使用by Rahat Khanna通過拉哈特漢娜 如何使用JavaScript和Pusher構建實時圖 (How to build a Realtime Graph using JavaScript and Pusher) The world needs everything uber-fast now. There are plenty of data streams being generated by different systems ev…

python數據分析與基礎實戰_《python數據分析與挖掘實戰》基礎概念

數據建模.png 數據挖掘的基本任務:利用分類與預測、聚類分析、關聯規則、時序模式、偏差檢測、智能推薦等方法&#xff0c;幫助企業提取數據中蘊含的商業價值&#xff0c;提高企業競爭力。 數據探索&#xff1a;異常值分析、缺失值分析、相關分析和周期性分析。 數據預處理:數據…

簡述JAVA線程調度的原理,Rxjava原理(二)--線程調度

1. 創建線程池和線程管理策略分析// 在開發中使用Rxjava來完成線程切換會調用到以下方法(還有幾個就不一一列舉了&#xff0c;原理一樣的)&#xff0c;那么就從這里開始分析Schedulers.io()Schedulers.computation()Schedulers.newThread()AndroidSchedulers.mainThread()當我們…

[前端隨筆][css] 彈性布局

說在前面 彈性布局&#xff0c;顧名思義就是有彈性&#xff0c;能夠根據屏幕/當前空間大小自由伸縮的。使用彈性布局可以很好的適應各種尺寸的客戶端。 關鍵代碼 display:flex;    設定元素為彈性布局  <文檔傳送門> box-flex: 參數;   設定元素為彈性布局  &…

不同的模塊中定義同樣的宏為不同的值合法嗎_如何創建自定義的建模規范

本文摘要&#xff1a;主要介紹如何創建自定義的建模規范檢查&#xff0c;以及在建模規范檢查中&#xff0c;如何增加自動修正模型使之符合規范。比如我們想創建一個自定義的規則&#xff0c;對于constant模塊&#xff0c;1. 如果value是參數的話&#xff0c;則輸出數據類型必須…

DBCP連接池配置常用參數說明

參數默認值說明username\傳遞給JDBC驅動的用于建立連接的用戶名password\傳遞給JDBC驅動的用于建立連接的密碼url\傳遞給JDBC驅動的用于建立連接的URLdriverClassName\使用的JDBC驅動的完整有效的Java 類名initialSize 0初始化連接:連接池啟動時創建的初始化連接數量,1.2版本后…

科大訊飛 ai算法挑戰賽_為井字游戲挑戰構建AI算法

科大訊飛 ai算法挑戰賽by Ben Carp通過本卡爾普 為井字游戲挑戰構建AI算法 (Building an AI algorithm for the Tic-Tac-Toe challenge) As part of the freeCodeCamp curriculum, I was challenged build a Tic-Tac-Toe web app. It was a real pleasure.作為freeCodeCamp課程…

js serialize php 解,[轉]JavaScript 版本的 PHP serialize/unserialize 完整實現

下載: phpserializer.js/* phpserializer.js - JavaScript to PHP serialize / unserialize class.** This class is designed to convert php variables to javascript* and javascript variables to php with a php serialize unserialize* compatible way.** Copyright (C) …

Git 的 .gitignore 配置

.gitignore 配置文件用于配置不需要加入版本管理的文件&#xff0c;配置好該文件可以為我們的版本管理帶來很大的便利&#xff0c;以下是個人對于配置 .gitignore 的一些心得。 1、配置語法&#xff1a; 以斜杠“/”開頭表示目錄&#xff1b; 以星號“*”通配多個字符&#xff…

wsdl文件是怎么生成的_C++ 動態庫.dll的生成---超級詳細!!!

怎么將建好的工程生成.dll工程&#xff1f;1、在C中打開工程2、運行結果&#xff1a;輸出Print修改開始&#xff1a;1、打開屬性。2、修改以下內容&#xff1a;目標文件擴展名&#xff0c;由.exe--》.dll,直接刪除修改即可配置類型&#xff0c;由.exe--》.dll,下拉菜單可選擇最…

時鐘設置

date --set"05/31/16 18:16" 時鐘設置 設置系統時間# date --set“07/07/06 10:19" &#xff08;月/日/年 時:分:秒&#xff09;2、hwclock/clock查看硬件時# hwclock --show# clock --show設置硬件時間# hwclock --set --date"07/07/06 10:19" &…