參數名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
mobile | string | 是 | 要充值的手機號 |
amount | string | 是 | 充值金額10,20,30,50,100,200,300,500面值可選 |
outorderno | string | 是 | 商家訂單號 |
sign | string | 是 | 簽名MD5加密 md5(amount+mobile+outorderno+appsecret) |
參數名稱 | 類型 | 說明 |
---|---|---|
mobile | string | 要充值的手機號 |
amount | string | 充值金額 |
outorderno | string | 商家訂單號 |
orderno | string | 訂單號 |
totalfee | string | 總金額 重試訂單金額略高一點,具體總金額以異步通知和訂單詳情為準 |
rechargestatus | int | 充值狀態 0充值中 1充值成功 2充值失敗 即時返回0,狀態信息請從訂單詳情接口獲取 |
<?php require_once 'curl.func.php'; $appkey = 'your_appkey_here';//你的appkey $mobile = '15158825888';//手機號 $amount = '30';//充值金額 $outorderno = '66522311111';//外部訂單號 $appsecret = 'ssssssssssss'; $sign = makeSign(array('mobile'=>$mobile, 'amount'=>$amount, 'outorderno'=>$outorderno), $appsecret);//簽名 mobile amount outorderno為簽名字段,參考下面的簽名函數 $url = "https://api.jisuapi.com/mobilerecharge/recharge?appkey=$appkey&mobile=$mobile&amount=$amount&outorderno=$outorderno&sign=$sign"; $result = curlOpen($url, ['ssl'=>true]); $jsonarr = json_decode($result, true); //exit(var_dump($jsonarr)); if($jsonarr['status'] != 0) { echo $jsonarr['msg']; exit(); } $result = $jsonarr['result']; echo $result['mobile'].' '.$result['amount'].' '.$result['outorderno'].'
'; echo $result['orderno'].' '.$result['totalfee'].' '.$result['rechargestatus'].'
'; function makeSign($queryarr, $appsecret) { ksort($queryarr, SORT_STRING); $str = implode($queryarr); $str .= $appsecret; //exit($str); $str = md5($str); return $str; }
#!/usr/bin/python # encoding:utf-8 import urllib2, json, urllib, hashlib def md5(str): m = hashlib.md5() m.update(str) return m.hexdigest() def makeSign(queryarr, appsecret): queryarr = sorted(queryarr.items(),key=lambda e:e[0]) strs = "" for str in queryarr: strs += "%s" %str[1] return md5(strs + appsecret) # 1、手機充值 data = {} data["appkey"] = "your_appkey_here" data["mobile"] = "15158825888" # 充值賬號 data["amount"] = 30 # 充值金額 data["outorderno"] = "66522311111" # 商家訂單號 可選 data["appsecret"] = "sssssssssss" # 你的appsecret queryarr = {"mobile":data["mobile"],"amount":data["amount"],"outorderno":data["outorderno"]} sign = makeSign(queryarr , data["appsecret"]) data["sign"] = sign url_values = urllib.urlencode(data) url = "https://api.jisuapi.com/mobilerecharge/recharge" + "?" + url_values request = urllib2.Request(url) result = urllib2.urlopen(request) jsonarr = json.loads(result.read()) if jsonarr["status"] != u"0": print jsonarr["msg"] exit() result = jsonarr["result"] print result["mobile"],result["amount"],result["outorderno"] print result["orderno"],result["totalfee"],result["rechargestatus"]
package api.jisuapi.mobilerecharge; /** * 話費充值 */ import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.TreeMap; import Decoder.BASE64Encoder; import api.util.HttpUtil; import net.sf.json.JSONObject; public class Recharge { public static final String APPKEY = "your_appkey_here";// 你的appkey public static final String URL = "https://api.jisuapi.com/mobilerecharge/recharge"; public static final String mobile = "15158825888";// 手機號 public static final String amount = "30";// 充值金額 public static final String outorderno = "66522311111";// 外部訂單號 public static final String appsecret = "sssssssssss"; public static Mapqueryarr; public static void Get() throws NoSuchAlgorithmException, UnsupportedEncodingException { queryarr = new HashMap (); queryarr.put("amount", amount); queryarr.put(mobile, mobile); queryarr.put("outorderno", outorderno); String sign = makeSign(queryarr, appsecret);// 簽名 mobile amount // outorderno為簽名字段,參考下面的簽名函數 String result = null; String url = URL + "?appkey=" + APPKEY + "&mobile=" + mobile + "&amount=" + amount + "&outorderno=" + outorderno + "&sign=" + sign; try { result = HttpUtil.sendGet(url, "utf-8"); JSONObject json = JSONObject.fromObject(result); if (json.getInt("status") != 0) { System.out.println(json.getString("msg")); } else { JSONObject resultarr = (JSONObject) json.opt("result"); String mobile = resultarr.getString("mobile"); String totalfee = resultarr.getString("totalfee"); String amount = resultarr.getString("amount"); String outorderno = resultarr.getString("outorderno"); String orderno = resultarr.getString("orderno"); String rechargestatus = resultarr.getString("rechargestatus"); System.out.println(mobile + " " + amount + " " + outorderno + " " + orderno + " " + totalfee + " " + rechargestatus); } } catch (Exception e) { e.printStackTrace(); } } public static String makeSign(Map queryarr, String appsecret) throws NoSuchAlgorithmException, UnsupportedEncodingException { TreeMap map = new TreeMap(queryarr); Iterator ir = map.keySet().iterator(); String str = new String(); while (ir.hasNext()) { Object key = ir.next(); str += map.get(key); } str += appsecret; return getMd5(str.getBytes()); } public static String getMd5(byte[] buffer) throws NoSuchAlgorithmException { String s = null; char hexDigist[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; MessageDigest md = MessageDigest.getInstance("MD5"); md.update(buffer); byte[] datas = md.digest(); // 16個字節的長整數 char[] str = new char[2 * 16]; int k = 0; for (int i = 0; i < 16; i++) { byte b = datas[i]; str[k++] = hexDigist[b >>> 4 & 0xf];// 高4位 str[k++] = hexDigist[b & 0xf];// 低4位 } s = new String(str); return s; } }
{ "status": 0, "msg": "ok", "result": { "mobile": "15158825888", "amount": "100", "outorderno": "", "orderno": "201604220431278398036", "totalfee": "99.8", "rechargestatus": "0" } }
參數名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
pagenum | int | 是 | 當前頁 默認1 |
pagesize | int | 是 | 每頁數量 默認20 最大40 |
參數名稱 | 類型 | 說明 |
---|---|---|
orderno | string | 訂單號 |
outorderno | string | 商家訂單號 |
account | string | 充值賬號 |
num | string | 數量 一般為1 |
status | int | 狀態 一般為1,訂單完成 |
rechargestatus | int | 充值狀態 0充值中 1充值成功 2充值失敗 即時返回0,狀態信息請從訂單詳情接口獲取 |
amount | string | 面值 |
totalfee | string | 總金額 |
addtime | int | 訂單時間 |
name | string | 產品名稱 |
areaid | int | 區域ID 參考全國城市規劃API |
company | string | 運營商 |
<?php require 'curl.func.php'; $appkey = 'your_appkey_here';//你的appkey $pagenum = 1;//當前頁 $pagesize = 20;//每頁數量,最大20 $url = "https://api.jisuapi.com/mobilerecharge/orderlist?appkey=$appkey&pagenum=$pagenum&pagesize=$pagesize"; $result = curlOpen($url, ['ssl'=>true]); $jsonarr = json_decode($result, true); //exit(var_dump($jsonarr)); if($jsonarr['status'] != 0) { echo $jsonarr['msg']; exit(); } $result = $jsonarr['result']; echo $result['total'].' '.$result['pagesize'].' '.$result['pagenum'].'
'; foreach($result['list'] as $val) { echo $val['orderno'].' '.$val['outorderno'].'
'; echo $val['account'].' '.$val['num'].'
'; echo $val['status'].' '.$val['rechargestatus'].'
'; echo $val['amount'].' '.$val['totalfee'].'
'; echo $val['addtime'].' '.$val['name'].'
'; echo $val['areaid'].' '.$val['company'].'
'; }
#!/usr/bin/python # encoding:utf-8 import urllib2, json, urllib, hashlib # 2、獲取訂單列表 data = {} data["appkey"] = "your_appkey_here" data["pagenum"] = 1 data["pagesize"] = 20 url_values = urllib.urlencode(data) url = "https://api.jisuapi.com/mobilerecharge/orderlist" + "?" + url_values request = urllib2.Request(url) result = urllib2.urlopen(request) jsonarr = json.loads(result.read()) if jsonarr["status"] != u"0": print jsonarr["msg"] exit() result = jsonarr["result"] print result["total"],result["pagesize"],result["pagenum"] for val in result["list"] : print val["orderno"],val["outorderno"] print val["account"],val["num"] print val["status"],val["rechargestatus"] print val["amount"],val["totalfee"] print val["addtime"],val["name"] print val["areaid"],val["company"]
package api.jisuapi.mobilerecharge; /** * 查詢話費訂單列表 */ import api.util.HttpUtil; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class Orderlist { public static final String APPKEY = "your_appkey_here";// 你的appkey public static final String URL = "https://api.jisuapi.com/mobilerecharge/orderlist"; public static final int pagenum = 1;//當前頁 public static final int pagesize = 20;//每頁數量,最大20 public static void Get() { String result = null; String url = URL + "?appkey=" + APPKEY + "&pagenum=" + pagenum + "&pagesize=" + pagesize; try { result = HttpUtil.sendGet(url, "utf-8"); JSONObject json = JSONObject.fromObject(result); if (json.getInt("status") != 0) { System.out.println(json.getString("msg")); } else { JSONObject resultarr = (JSONObject) json.opt("result"); String total = resultarr.getString("total"); String pagenum = resultarr.getString("pagenum"); String pagesize = resultarr.getString("pagesize"); System.out.println(total + " " + pagenum + " " + pagesize); JSONArray list = resultarr.optJSONArray("list"); for (int i = 0; i < list.size(); i++) { JSONObject obj = (JSONObject) list.opt(i); String orderno = obj.getString("orderno"); String outorderno = obj.getString("outorderno"); String account = obj.getString("account"); String num = obj.getString("num"); String status = obj.getString("status"); String rechargestatus = obj.getString("rechargestatus"); String amount = obj.getString("amount"); String totalfee = obj.getString("totalfee"); String addtime = obj.getString("addtime"); String name = obj.getString("name"); String areaid = obj.getString("areaid"); String company = obj.getString("company"); System.out.println(orderno + " " + outorderno + " " + account + " " + num + " " + status + " " + rechargestatus + " " + amount + " " + totalfee + " " + addtime + " " + name + " " + areaid + " " + company); } } } catch (Exception e) { e.printStackTrace(); } } }
{ "status": 0, "msg": "ok", "result": { "total": "3", "pagenum": "1", "pagesize": "20", "list": [ { "orderno": "201604220714555074534", "outorderno": "", "account": "15158825888", "num": "1", "status": "1", "rechargestatus": "1", "amount": "10.00", "totalfee": "10.05", "addtime": "1461309295", "name": "浙江移動話費10元直充", "areaid": "30", "company": "移動", }, { "orderno": "201604220634197256659", "outorderno": "", "account": "15158825888", "num": "1", "status": "1", "rechargestatus": "1", "amount": "10.00", "totalfee": "10.05", "addtime": "1461306859", "name": "浙江移動話費10元直充", "areaid": "30", "company": "移動", }, { "orderno": "201604220431278398036", "outorderno": "", "account": "15158825888", "num": "1", "status": "1", "rechargestatus": "0", "amount": "10.00", "totalfee": "10.05", "addtime": "1461299487", "name": "浙江移動話費10元直充", "areaid": "30", "company": "移動", } ] } }
參數名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
orderno | string | 是 | 訂單號 |
outorderno | string | 否 | 商家訂單號 和訂單號任選其一 如果商家訂單號重復,只返回最新的一條詳情 |
參數名稱 | 類型 | 說明 |
---|---|---|
orderno | string | 訂單號 |
outorderno | string | 商家訂單號 |
account | string | 充值賬號 |
num | int | 數量 一般為1 |
status | int | 狀態 一般為1,訂單完成 |
rechargestatus | string | 充值狀態 0充值中 1充值成功 2充值失敗 即時返回0,狀態信息請從訂單詳情接口獲取 |
amount | string | 面值 |
totalfee | string | 總金額 |
addtime | int | 訂單時間 |
name | string | 產品名稱 |
areaid | int | 區域ID 參考全國城市規劃API |
company | string | 運營商 |
<?php require 'curl.func.php'; $appkey = 'your_appkey_here';//你的appkey $orderno = '221601241155888';//訂單號 $outorderno = '77888855888';//商家訂單號,和訂單號任選其一 $url = "https://api.jisuapi.com/mobilerecharge/orderdetail?appkey=$appkey&orderno=$orderno&outorderno=$outorderno"; $result = curlOpen($url, ['ssl'=>true]); $jsonarr = json_decode($result, true); //exit(var_dump($jsonarr)); if($jsonarr['status'] != 0) { echo $jsonarr['msg']; exit(); } $result = $jsonarr['result']; echo $result['total'].' '.$result['pagesize'].' '.$result['pagenum'].'
'; echo $result['orderno'].' '.$result['outorderno'].'
'; echo $result['account'].' '.$result['num'].'
'; echo $result['status'].' '.$result['rechargestatus'].'
'; echo $result['amount'].' '.$result['totalfee'].'
'; echo $result['addtime'].' '.$result['name'].'
'; echo $result['areaid'].' '.$result['company'].'
';
#!/usr/bin/python # encoding:utf-8 import urllib2, json, urllib, hashlib # 3、獲取訂單詳情 data = {} data["appkey"] = "your_appkey_here" data["orderno"] = "221605250929585085725" data["outorderno"] = "77888855888" url_values = urllib.urlencode(data) url = "https://api.jisuapi.com/mobilerecharge/orderdetail" + "?" + url_values request = urllib2.Request(url) result = urllib2.urlopen(request) jsonarr = json.loads(result.read()) if jsonarr["status"] != u"0": print jsonarr["msg"] exit() result = jsonarr["result"] print result["total"],result["pagesize"],result["pagenum"], print result["orderno"],result["outorderno"], print result["account"],result["num"], print result["status"],result["rechargestatus"], print result["amount"],result["totalfee"], print result["addtime"],result["name"], print result["areaid"],result["company"],
package api.jisuapi.mobilerecharge; /** * 查詢話費訂單詳情 */ import api.util.HttpUtil; import net.sf.json.JSONObject; public class Orderdetail { public static final String APPKEY = "your_appkey_here";// 你的appkey public static final String URL = "https://api.jisuapi.com/mobilerecharge/orderdetail"; public static final String orderno = "221601241155888";// 訂單號 public static final String outorderno = "77888855888";// 商家訂單號,和訂單號任選其一 public static void Get() { String result = null; String url = URL + "?appkey=" + APPKEY + "&orderno=" + orderno + "&outorderno=" + outorderno; try { result = HttpUtil.sendGet(url, "utf-8"); JSONObject json = JSONObject.fromObject(result); if (json.getInt("status") != 0) { System.out.println(json.getString("msg")); } else { JSONObject resultarr = (JSONObject) json.opt("result"); String orderno = resultarr.getString("orderno"); String outorderno = resultarr.getString("outorderno"); String account = resultarr.getString("account"); String num = resultarr.getString("num"); String status = resultarr.getString("status"); String rechargestatus = resultarr.getString("rechargestatus"); String amount = resultarr.getString("amount"); String totalfee = resultarr.getString("totalfee"); String addtime = resultarr.getString("addtime"); String name = resultarr.getString("name"); String areaid = resultarr.getString("areaid"); String company = resultarr.getString("company"); System.out.println(orderno + " " + outorderno + " " + account + " " + num + " " + status + " " + rechargestatus + " " + amount + " " + totalfee + " " + addtime + " " + name + " " + areaid + " " + company); } } catch (Exception e) { e.printStackTrace(); } } }
{ "status": 0, "msg": "ok", "result": { "orderno": "201604220714555074534", "outorderno": "", "account": "15158825888", "num": "1", "status": "1", "rechargestatus": "1", "amount": "10.00", "totalfee": "10.05", "addtime": "1461309295", "name": "浙江移動話費10元直充", "areaid": "30", "company": "移動", } }
參數名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
mobile | string | 否 | 手機號 |
參數名稱 | 類型 | 說明 |
---|---|---|
name | string | 產品名稱 |
areaid | string | 區域ID 參考全國城市規劃API |
company | string | 運營商 |
price | string | 單價 |
amount | string | 面值 |
<?php require 'curl.func.php'; $appkey = 'your_appkey_here';//你的appkey $url = "https://api.jisuapi.com/mobilerecharge/goods?appkey=$appkey"; $result = curlOpen($url, ['ssl'=>true]); $jsonarr = json_decode($result, true); //exit(var_dump($jsonarr)); if($jsonarr['status'] != 0) { echo $jsonarr['msg']; exit(); } $result = $jsonarr['result']; foreach($result['list'] as $val) { echo $val['name'].' '.$val['areaid'].' '.$val['company'].' '.$val['price'].' '.$val['amount'].'
'; }
#!/usr/bin/python # encoding:utf-8 import urllib2, json, urllib, hashlib # 4、獲取商品列表 data = {} data["appkey"] = "your_appkey_here" url_values = urllib.urlencode(data) url = "https://api.jisuapi.com/mobilerecharge/goods" + "?" + url_values request = urllib2.Request(url) result = urllib2.urlopen(request) jsonarr = json.loads(result.read()) if jsonarr["status"] != u"0": print jsonarr["msg"] exit() result = jsonarr["result"] for val in result["list"] : print val["name"],val["areaid"],val["company"],val["price"],val["amount"]
package api.jisuapi.mobilerecharge; /** * 獲取商品列表 */ import api.util.HttpUtil; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class Goods { public static final String APPKEY = "your_appkey_here";// 你的appkey public static final String URL = "https://api.jisuapi.com/mobilerecharge/goods"; public static void Get() { String result = null; String url = URL + "?appkey=" + APPKEY; try { result = HttpUtil.sendGet(url, "utf-8"); JSONObject json = JSONObject.fromObject(result); if (json.getInt("status") != 0) { System.out.println(json.getString("msg")); } else { JSONObject resultarr = (JSONObject) json.opt("result"); JSONArray list = resultarr.optJSONArray("list"); for (int i = 0; i < list.size(); i++) { JSONObject obj = (JSONObject) list.opt(i); String name = obj.getString("name"); String areaid = obj.getString("areaid"); String company = obj.getString("company"); String price = obj.getString("price"); String amount = obj.getString("amount"); System.out.println(name + " " + areaid + " " + company + " " + price + " " + amount); } } } catch (Exception e) { e.printStackTrace(); } } }
{ "status": 0, "msg": "ok", "result": { "list": [ { "name": "云南電信話費30元直充", "areaid": "29", "company": "電信", "province": "云南", "amount": "30", "adviceprice": "31.00", "price": "29.62", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "云南電信話費50元直充", "areaid": "29", "company": "電信", "province": "云南", "amount": "50", "adviceprice": "50.00", "price": "49.45", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "云南電信話費100元直充", "areaid": "29", "company": "電信", "province": "云南", "amount": "100", "adviceprice": "100.00", "price": "98.79", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "云南電信話費200元直充", "areaid": "29", "company": "電信", "province": "云南", "amount": "200", "adviceprice": "200.00", "price": "197.48", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "云南電信話費300元直充", "areaid": "29", "company": "電信", "province": "云南", "amount": "300", "adviceprice": "300.00", "price": "296.22", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "云南電信話費500元直充", "areaid": "29", "company": "電信", "province": "云南", "amount": "500", "adviceprice": "500.00", "price": "493.71", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "", "areaid": "30", "company": "電信", "province": "浙江", "amount": "1", "adviceprice": "", "price": "1.00", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "", "areaid": "30", "company": "電信", "province": "浙江", "amount": "2", "adviceprice": "", "price": "2.00", "limitprice": "", "sms": "", "rechargetime": "" } ] } }
參數名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
mobile | string | 是 | 手機號 |
amount | string | 否 | 面值 |
參數名稱 | 類型 | 說明 |
---|---|---|
mobile | string | 手機號 |
amount | string | 面值 |
name | string | 名稱 |
areaid | string | 區域ID |
company | string | 運營商 |
province | string | 省份 |
price | string | 價格 |
<?php require 'curl.func.php'; $appkey = 'your_appkey_here';//你的appkey $mobile = '15158825888';//必填 $amount = '100';//選填,不選返回全部 $url = "https://api.jisuapi.com/mobilerecharge/query?appkey=$appkey&mobile=$mobile&amount=$amount"; $result = curlOpen($url, ['ssl'=>true]); $jsonarr = json_decode($result, true); //exit(var_dump($jsonarr)); if($jsonarr['status'] != 0) { echo $jsonarr['msg']; exit(); } $result = $jsonarr['result']; foreach($result['list'] as $val) { echo $val['mobile'].' '.$val['amount'].' '.$val['name'].' '.$val['areaid'].' '.$val['company'].'
'; echo $val['province'].' '.$val['adviceprice'].' '.$val['price'].' '.$val['limitprice'].'
'; echo $val['sms'].' '.$val['rechargetime'].'
'; }
#!/usr/bin/python # encoding:utf-8 import json import urllib.request import urllib.parse data = {} data["appkey"] = "your_appkey_here" data["mobile"] = "15158825888" # 必填 data["amount"] = "100" data = urllib.parse.urlencode(data).encode('utf-8') url = "https://api.jisuapi.com/mobilerecharge/query" result = urllib.request.urlopen(url, data) jsonarr = json.loads(result.read()) if jsonarr["status"] != 0: print(jsonarr["msg"]) exit() result = jsonarr["result"] print(result["mobile"], result["amount"]) for val in result["list"]: print(val["name"], val["areaid"], val["company"], val["province"], val["amount"], val["adviceprice"], val["price"], val["limitprice"], val["sms"], val["rechargetime"])
{ "status": 0, "msg": "ok", "result": { "mobile": "15158825888", "amount": "0", "list": [ { "name": "", "areaid": "30", "company": "移動", "province": "浙江", "amount": "1", "adviceprice": "", "price": "1.10", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "", "areaid": "30", "company": "移動", "province": "浙江", "amount": "2", "adviceprice": "", "price": "2.20", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "", "areaid": "30", "company": "移動", "province": "浙江", "amount": "3", "adviceprice": "", "price": "3.30", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "", "areaid": "30", "company": "移動", "province": "浙江", "amount": "4", "adviceprice": "", "price": "4.40", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "浙江移動話費5元直充", "areaid": "30", "company": "移動", "province": "浙江", "amount": "5", "adviceprice": "6.00", "price": "5.23", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "", "areaid": "30", "company": "移動", "province": "浙江", "amount": "6", "adviceprice": "", "price": "6.60", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "", "areaid": "30", "company": "移動", "province": "浙江", "amount": "7", "adviceprice": "", "price": "7.70", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "", "areaid": "30", "company": "移動", "province": "浙江", "amount": "8", "adviceprice": "", "price": "8.80", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "", "areaid": "30", "company": "移動", "province": "浙江", "amount": "9", "adviceprice": "", "price": "9.90", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "浙江移動話費10元直充", "areaid": "30", "company": "移動", "province": "浙江", "amount": "10", "adviceprice": "11.00", "price": "10.00", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "浙江移動話費20元直充", "areaid": "30", "company": "移動", "province": "浙江", "amount": "20", "adviceprice": "21.00", "price": "20.00", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "浙江移動話費30元直充", "areaid": "30", "company": "移動", "province": "浙江", "amount": "30", "adviceprice": "31.00", "price": "30.00", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "浙江移動話費50元直充", "areaid": "30", "company": "移動", "province": "浙江", "amount": "50", "adviceprice": "50.00", "price": "50.00", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "浙江移動話費100元直充", "areaid": "30", "company": "移動", "province": "浙江", "amount": "100", "adviceprice": "100.00", "price": "100.00", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "浙江移動話費200元直充", "areaid": "30", "company": "移動", "province": "浙江", "amount": "200", "adviceprice": "200.00", "price": "199.60", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "浙江移動話費300元直充", "areaid": "30", "company": "移動", "province": "浙江", "amount": "300", "adviceprice": "300.00", "price": "299.00", "limitprice": "", "sms": "", "rechargetime": "" }, { "name": "浙江移動話費500元直充", "areaid": "30", "company": "移動", "province": "浙江", "amount": "500", "adviceprice": "500.00", "price": "499.00", "limitprice": "", "sms": "", "rechargetime": "" } ] } }
參數名稱 | 類型 | 必填 | 說明 |
---|
參數名稱 | 類型 | 說明 |
---|---|---|
outorderno | string | 商家訂單號 |
orderno | string | 訂單號 |
mobile | string | 手機號 |
rechargestatus | int | 充值狀態 0充值中 1充值完成 2充值失敗 |
amount | string | 面值 |
totalfee | string | 實際金額 |
sign | string | 簽名,簽名規則參考代碼 |
<?php /** * 異步回調 * */ $orderno = $_POST['orderno']; $rechargestatus = $_POST['rechargestatus']; $arr = array('orderno'=>$orderno,'outorderno'=>$_POST['outorderno'],'mobile'=>$_POST['mobile'],'rechargestatus'=>$_POST['rechargestatus'],'amount'=>$_POST['amount'],'totalfee'=>$_POST['totalfee']); $appsecret = '123456789';//用戶appsecret if(checkSign($arr, $appsecret, $_POST['sign'])) { //1成功 2充值失敗 0充值中 switch($rechargestatus) { case '1': { //充值成功 // break; } case '2': { //充值失敗 break; } } if($rechargestatus != 0) echo 'success'; exit(); } /** * 驗證簽名 * */ function checkSign($queryarr, $appsecret, $signature) { $str = makeSign($queryarr, $appsecret); if($str == strtolower($signature)) return true; else return false; } /** * 生成簽名 * */ function makeSign($queryarr, $appsecret) { ksort($queryarr, SORT_STRING); $str = implode($queryarr); $str .= $appsecret; //exit($str); $str = md5($str); return $str; }
代號 | 說明 |
---|---|
201 | 手機號為空 |
202 | 充值金額不正確 |
203 | 手機號不正確 |
204 | 簽名為空 |
205 | 驗簽失敗 |
206 | 賬戶余額不足 |
207 | 不支持的手機號 |
208 | 訂單號為空 |
210 | 未知錯誤 |
211 | 商家訂單號為空 |
212 | 商家訂單號已存在 |
215 | 地區運營商維護 |
216 | 未找到該訂單號 |
代號 | 說明 |
---|---|
101 | APPKEY為空或不存在 |
102 | APPKEY已過期 |
103 | APPKEY無請求此數據權限 |
104 | 請求超過次數限制 |
105 | IP被禁止 |
106 | IP請求超過限制 |
107 | 接口維護中 |
108 | 接口已停用 |
計次套餐 | 套餐規格 | 價格 | ||
---|---|---|---|---|
10元話費充值 | 10元次 | 10.00 - 10.10元 | - | |
20元話費充值 | 20元次 | 19.96 - 20.00元 | - | |
30元話費充值 | 30元次 | 29.94 - 30.00元 | - | |
50元話費充值 | 50元次 | 49.90 - 50.00元 | - | |
100元話費充值 | 100元次 | 99.60 - 100.00元 | - | |
200元話費充值 | 200元次 | 199.59 - 200.00元 | - | |
300元話費充值 | 300元次 | 299.39 - 300.00元 | - | |
500元話費充值 | 500元次 | 498.98 - 500.00元 | - |