流量充值
更新时间:2024.06.25 09:52:42
流量充值
流量充值接口
接口说明
给指定手机充值流量
接口地址
post https://api.paynicorn.com/trade/topup/api/data/topup
请求参数
参数名 | 参数类型 | 填写说明 | 描述 |
---|---|---|---|
transId | string | M | 商户订单 ID |
appKey | string | M | 商户应用Appkey |
benefitNo | string | M | 要充值的号码 |
goodsId | string | M | 产品ID(根据流量产品查询接口返回或者联系运营获取支持列表) |
memo | string | O | 备注 |
响应参数
参数名 | 参数类型 | 填写要求 | 描述 |
---|---|---|---|
code | int | M | 请求处理的标识 |
msg | string | M | 请求处理信息 |
result | JsonObj | O | 返回结果 |
result对象参数 |
参数名 | 参数类型 | 填写要求 | 描述 |
---|---|---|---|
transId | string | M | 商户订单 ID |
orderId | string | M | 流量充值订单号 |
statusCode | string | M | 交易状态 |
description | string | M | 描述 |
报文示例
Request
{
"transId":"V3T1719295709739",
"appKey": "T90B124766qU95d385O4",
"benefitNo": "09027402327",
"goodsId": "NG72815291251",
"memo": "流量充值"
}
Response
{
"code": 1200,
"msg": "success",
"result": {
"transId": "V3T1712748436358",
"statusCode": "0",
"description": "transaction in process",
"orderId": 12418205871439923
}
}
注意:
- 若同步响应返回下述错误码和错误消息,商户可以主动关单:
code 错误代码 | msg 错误消息 |
---|---|
4001 | invalid signature |
4002 | invalid appId |
4003 | unsupported business |
4004 | unsupported amount |
4005 | invalid packageId |
4006 | invalid benefitNo |
4007 | invalid transId |
4008 | transId is null |
4009 | transId already exist |
4010 | phone number is empty |
4011 | unknown operator |
4012 | no active wallet of this currency |
4013 | Insufficient balance |
4014 | Exceed the minute limit |
4015 | Exceed the daily times limit |
4016 | channel disable |
4017 | channelCode is null |
4018 | channelCode is error |
4019 | sp product is null |
4020 | appKey is null |
4021 | callbackUrl is null |
4022 | callback url error |
4023 | secret key is null |
4024 | unknown appKey |
4025 | sp order mapping error |
4027 | Pleas check product information |
4027 | Please activate the product function |
4028 | Paynicorn CP Insufficient balance |
4030 | Recharge phone error |
4031 | Recharge country error |
4032 | Recharge operator error |
4033 | Exceed operator the minute limit |
- 若同步响应返回的结果如下,则可以结合业务逻辑进行判断或者查询此订单的状态来决定是否要关闭此订单:
code 错误代码 | msg 错误消息 |
---|---|
4026 | merchant Overbooking |
上述两种情况的示例报文响应:
{
"code": 4028, "msg": "Paynicorn CP Insufficient balance"
}
流量充值交易查询接口
接口说明
查询流量充值状态及交易详情信息
接口地址
post https://api.paynicorn.com/trade/topup/api/data/query
请求参数
参数名 | 参数类型 | 填写要求 | 描述 |
---|---|---|---|
appKey | string | M | 商户应用ID |
transId | string | M | 商户交易号 |
响应参数
参数名 | 参数类型 | 填写要求 | 描述 |
---|---|---|---|
code | int | M | 请求处理的标识 |
msg | string | M | 请求处理信息 |
result | JsonObj | O | 返回结果 |
result参数 |
参数名 | 参数类型 | 填写要求 | 描述 |
---|---|---|---|
transId | string | M | 交易ID |
statusCode | string | M | 交易状态 |
countryCode | string | M | 国家码 |
operatorCode | string | M | 运营商编码 |
benefitNo | string | M | 要充值的号码 |
goodsId | string | M | 流量套餐ID |
goodsDesc | string | M | 流量套餐描述 |
memo | string | M | 备注 |
报文示例
Request
{
"appKey": "p3k0Y312LzX6Dv87lVa1",
"transId": "1234567890"
}
Response
{
"code": 1200,
"msg": "success",
"result": {
"transId": "1234567890",
"statusCode":"1",
"countryCode": "NG",
"operatorCode": "9mobile",
"benefitNo": "08184123954",
"goodsId": "NG72347153587",
"goodsDesc": "100MB/7Day"
}
}
若返回的响应如下,本订单可以被主动关闭:
{
"code": 4007,
"msg": "invalid transId"
}
查询流量充值产品接口
接口说明
查询paynicorn支持的流量充值产品
接口地址
post https://api.paynicorn.com/trade/topup/api/data/queryGoods
请求参数
参数名 | 参数类型 | 填写要求 | 描述 |
---|---|---|---|
appKey | string | M | 商户应用Appkey |
countryCode | string | O | 国家码,查询指定国家流量产品 |
productCode | string | M | 产品类型(冗余字段,固定data_topup 流量充值) |
operatorCode | string | O | 运营商编码,查询指定运营商流量产品 |
响应参数
参数名 | 参数类型 | 填写要求 | 描述 |
---|---|---|---|
code | int | M | 请求处理的标识 |
msg | string | M | 请求处理信息 |
result | JsonObj | O | 返回结果 |
result对象参数 |
参数名 | 参数类型 | 填写要求 | 描述 |
---|---|---|---|
productCode | string | M | 产品类型 |
countryCode | string | M | 国家 |
operatorCode | string | M | 运营商编码 |
goodsId | string | M | 产品ID |
goodsDesc | string | M | 产品描述 |
amount | string | M | 产品售价 |
报文示例
RequestBody
{
"appKey": "T90B124766qU95d385O4",
"countryCode": "NG",
"productCode": "data_topup",
"operatorCode": "NG_AIRTEL" //选填
}
Response
{
"code": 1200,
"msg": "success",
"result": [{
"productCode": "data_topup",
"countryCode": "NG",
"operatorCode": "NG_AIRTEL",
"goodsId": "NG72815042640",
"goodsDesc": "40.00MB/1Dayly",
"amount": 0.13,
"currency": "USD"
}, {
"productCode": "data_topup",
"countryCode": "NG",
"operatorCode": "NG_AIRTEL",
"goodsId": "NG72815064968",
"goodsDesc": "100.00MB/1Dayly",
"amount": 0.26,
"currency": "USD"
}, {
"productCode": "data_topup",
"countryCode": "NG",
"operatorCode": "NG_AIRTEL",
"goodsId": "NG72815097509",
"goodsDesc": "200.00MB/3Dayly",
"amount": 0.53,
"currency": "USD"
}, {
"productCode": "data_topup",
"countryCode": "NG",
"operatorCode": "NG_AIRTEL",
"goodsId": "NG72815128394",
"goodsDesc": "350.00MB/7Dayly",
"amount": 0.79,
"currency": "USD"
}, {
"productCode": "data_topup",
"countryCode": "NG",
"operatorCode": "NG_AIRTEL",
"goodsId": "NG72815227536",
"goodsDesc": "750.00MB/14Dayly",
"amount": 1.33,
"currency": "USD"
}, {
"productCode": "data_topup",
"countryCode": "NG",
"operatorCode": "NG_AIRTEL",
"goodsId": "NG72815291251",
"goodsDesc": "1.50G/30Dayly",
"amount": 2.66,
"currency": "USD"
}, {
"productCode": "data_topup",
"countryCode": "NG",
"operatorCode": "NG_AIRTEL",
"goodsId": "NG72815309907",
"goodsDesc": "4.50G/30Dayly",
"amount": 5.33,
"currency": "USD"
}, {
"productCode": "data_topup",
"countryCode": "NG",
"operatorCode": "NG_AIRTEL",
"goodsId": "NG72815332470",
"goodsDesc": "10.00G/30Dayly",
"amount": 7.99,
"currency": "USD"
}, {
"productCode": "data_topup",
"countryCode": "NG",
"operatorCode": "NG_AIRTEL",
"goodsId": "NG77059542091",
"goodsDesc": "200.00MB/3Dayly",
"amount": 0.50,
"currency": "USD"
}, {
"productCode": "data_topup",
"countryCode": "NG",
"operatorCode": "NG_AIRTEL",
"goodsId": "NG77059599237",
"goodsDesc": "750.00MB/14Dayly",
"amount": 1.25,
"currency": "USD"
}, {
"productCode": "data_topup",
"countryCode": "NG",
"operatorCode": "NG_AIRTEL",
"goodsId": "NG77059651850",
"goodsDesc": "2.00G/30Dayly",
"amount": 3.00,
"currency": "USD"
}, {
"productCode": "data_topup",
"countryCode": "NG",
"operatorCode": "NG_AIRTEL",
"goodsId": "NG77059699998",
"goodsDesc": "10.00G/30Dayly",
"amount": 7.15,
"currency": "USD"
}]
}
手机号查询充值运营商
接口说明
根据手机号查询手机号归属的运营商
接口地址
https://api.paynicorn.com/trade/topup/api/queryOperatorCode
请求方法:post
请求参数
参数名 | 参数类型 | 填写要求 | 描述 |
---|---|---|---|
nationalPhoneNo | string | M | 手机号 |
countryCode | string | M | 国家码 |
响应参数
参数名 | 参数类型 | 填写要求 | 描述 |
---|---|---|---|
code | int | M | 请求处理的标识 |
msg | string | M | 请求处理信息 |
result | JsonObj | M | 返回结果 |
result对象参数
参数名 | 参数类型 | 填写要求 | 描述 |
---|---|---|---|
countryCode | string | M | 国家编码 |
currency | string | M | 币种编码 |
areaCode | string | M | 国家区号 |
operatorCode | string | M | PAYNICORN运营商编码 |
operatorName | string | M | 运营商全程 |
报文示例
Request
{
"countryCode": "NG",
"nationalPhoneNo": "07012345678"
}
Response
{
"code": 1200,
"msg": "success",
"result": {
"countryCode": "NG",
"currency": "NGN",
"areaCode": "234",
"operatorCode": "NG_AIRTEL",
"operatorName": "Airtel Nigeria"
}
}
充值异步通知(recharge_callback)
接口说明
充值系统完成充值流程后,会回调商户在后台配置的商户回调接口,通知商户充值结果以及充值详情。
请注意:
接口地址
商户提供,通过商户平台配置,参见设置应用回调地址
请求参数
响应参数
参数名 | 类型 | 填写要求 | 备注 |
---|---|---|---|
orderNo | String | M | 充值订单ID |
originOrderNo | String | M | 源订单ID(接入方订单ID) |
status | Integer | M | 回调状态(0.充值中,1.成功,2.失败) |
timestamp | Integer | M | 订单完成时间 |
充值完成后,充值后台会把充值相关信息发送给商户,商户需要接收处理该回调通知请求,并返回正确应答。 HttpsStatus=200
代表接受到通知并返回字符串success
,其他代表通知失败。
针对通知失败的订单,没有重试机制。商户可主动通过充值交易查询接口查询最终结果。
报文示例
{
"deductionAmount": 0.2400,
"deductionCurrency": "USD",
"orderNo": "12428686363427123",
"originOrderNo": "9242868607189027501",
"status": 1, //0: 充值处理中,1: 充值成功,2:充值失败
"timestamp": 1717745928,
"verified": false
}
本文导读