企业微信应用市场付费接口
https://work.weixin.qq.com/api/doc#15219
支付流程
API接口定义
下单成功通知消息
当企业在应用市场购买付费应用完成下单后,企业微信后台会推送下单成功通知到服务商的指令回调URL。
请求方式: POST (HTTPS)
请求地址: https://127.0.0.1/suite/receive?msg_signature=3a7b08bb8e6dbce3c9671d6fdb69d15066227608×tamp=1403610513&nonce=380320359
请求包体:
<xml>
<SuiteId><![CDATA[ww4asffe99e54c0f4c]]></SuiteId>
<PaidCorpId><![CDATA[wxf8b4f85f3a794e77]]></PaidCorpId>
<InfoType><![CDATA[open_order]]></InfoType>
<TimeStamp>1403610513</TimeStamp>
<OrderId><![CDATA[ORDERID]]></OrderId>
<OperatorId><![CDATA[OPERATORID]]></OperatorId>
</xml>
参数说明:
参数 | 说明 |
---|---|
SuiteId | 第三方应用的SuiteId |
PaidCorpId | 购买方corpid |
InfoType | 固定为 open_order |
TimeStamp | 时间戳 |
OrderId | 订单号,付费订单的唯一标志。服务商可据此拉取购买信息。该OrderId由企业微信生成,不超过32个字符 |
OperatorId | 下单操作者userid |
改单通知消息
当服务商管理员修改订单价格之后,企业微信后台会推送改单通知到服务商的指令回调URL。
修改订单价格后,会产生新的订单号,服务商在改单之后要用新的订单号来查询订单详情,以及关联授权应用。
请求方式: POST (HTTPS)
请求地址: https://127.0.0.1/suite/receive?msg_signature=3a7b08bb8e6dbce3c9671d6fdb69d15066227608×tamp=1403610513&nonce=380320359
请求包体:
<xml>
<SuiteId><![CDATA[ww4asffe99e54c0f4c]]></ SuiteId>
<PaidCorpId><![CDATA[wxf8b4f85f3a794e77]]></PaidCorpId>
<InfoType><![CDATA[change_order]]></InfoType>
<TimeStamp>1403610513</TimeStamp>
<OldOrderId><![CDATA[ORDERID]]></OldOrderId>
<NewOrderId><![CDATA[ORDERID]]></NewOrderId>
</xml>
参数说明:
参数 | 说明 |
---|---|
SuiteId | 第三方应用的SuiteId |
PaidCorpId | 购买方corpid |
InfoType | 固定为 change_order |
TimeStamp | 时间戳 |
OldOrderId | 原订单号 |
NewOrderId | 改单后新的订单号,服务商可据此拉取购买信息。该OrderId由企业微信生成,不超过32个字符,每次修改价格都会产生新的订单号 |
支付成功通知消息
当企业对某一个订单完成付款后,企业微信后台会推送付款成功通知到服务商的指令回调URL。
请求方式: POST (HTTPS)
请求地址: https://127.0.0.1/suite/receive?msg_signature=3a7b08bb8e6dbce3c9671d6fdb69d15066227608×tamp=1403610513&nonce=380320359
请求包体:
<xml>
<SuiteId><![CDATA[ww4asffe99e54c0f4c]]></ SuiteId>
<PaidCorpId><![CDATA[wxf8b4f85f3a794e77]]></PaidCorpId>
<InfoType><![CDATA[pay_for_app_success]]></InfoType>
<TimeStamp>1403610513</TimeStamp>
<OrderId><![CDATA[ORDERID]]></OrderId>
</xml>
参数说明:
参数 | 说明 |
---|---|
SuiteId | 第三方应用的SuiteId |
PaidCorpId | 购买方corpid |
InfoType | 固定为 pay_for_app_success |
TimeStamp | 时间戳 |
OrderId | 订单号,付费订单的唯一标志。服务商可据此拉取购买信息。该OrderId由企业微信生成,不超过32个字符 |
服务商拉取付费状态
请求方式: POST(HTTPS)
请求地址: https://qyapi.weixin.qq.com/cgi-bin/service/get_order?suite_access_token=SUITE_ACCESS_TOKEN
请求包体:
{
"orderid" : "2018091822ks1sd3s"
}
参数说明:
参数 | 是否必须 | 说明 |
---|---|---|
orderid | 是 | 订单号 |
返回结果:
{
"errcode" : 0,
"errmsg" : "ok",
"orderid" : "2018091822ks1sd3s",
"order_status" : 1,
"order_type" : 1,
"paid_corpid" : "wwfedd7e5292d63a35",
"operator_id" : "zhangsan",
"suiteid" : "wx67cce113441cc7a6",
"appid" : 1,
"edition_id" : "RLS65535",
"edition_name" : "协同版",
"price" : 10000000,
"user_count" : 1000,
"order_period": 365,
"order_time" : 1533702999,
"paid_time" : 1533702910
}
参数说明:
参数 | 说明 |
---|---|
errcode | 错误码 |
errmsg | 错误码说明 |
orderid | 订单号 |
order_status | 订单状态。0-未支付,1-已支付,2-已关闭, 3-未支付且已过期, 4-申请退款中, 5-申请退款成功 |
order_type | 订单类型。0-普通订单,1-扩容订单,2-续期,3-版本变更 |
paid_corpid | 客户企业的corpid |
operator_id | 下单操作人员userid |
suiteid | 应用id |
appid | 应用id。(仅旧套件有该字段) |
edition_id | 购买版本ID |
edition_name | 购买版本名字 |
price | 实付款金额,单位分 |
user_count | 购买的人数 |
order_period | 购买的时间,单位天 |
order_time | 下单时间 |
paid_time | 付款时间 |
服务商拉取付费订单列表
请求方式: POST(HTTPS)
请求地址: https://qyapi.weixin.qq.com/cgi-bin/service/get_order_list?suite_access_token=SUITE_ACCESS_TOKEN
请求包体:
{
"start_time" : 1542091572,
"end_time" : 1542177972,
"test_mode" : 1
}
参数说明:
参数 | 是否必须 | 说明 |
---|---|---|
start_time | 是 | 起始时间 |
end_time | 是 | 终止时间 |
test_mode | 否 | 指定拉取正式或测试模式的订单。默认正式模式。0-正式模式,1-测试模式。 |
返回结果:
{
"errcode" : 0,
"errmsg" : "ok",
"order_list": [
{
"orderid" : "2018091822ks1sd3s",
"order_status" : 1,
"order_type" : 1,
"paid_corpid" : "wwfedd7e5292d63a35",
"operator_id" : "zhangsan",
"suiteid" : "wx67cce113441cc7a6",
"appid" : 1,
"edition_id" : "RLS65535",
"edition_name" : "协同版",
"price" : 10000000,
"user_count" : 1000,
"order_period": 365,
"order_time" : 1533702999,
"paid_time" : 1533702910
}]
}
参数说明:
参数 | 说明 |
---|---|
errcode | 错误码 |
errmsg | 错误码说明 |
order_list | 订单列表 |
orderid | 订单号 |
order_status | 订单状态。订单状态。0-未支付,1-已支付,2-已关闭, 3-未支付且已过期, 4-申请退款中, 5-申请退款成功 |
order_type | 订单类型。0-普通订单,1-扩容订单,2-续期,3-版本变更 |
paid_corpid | 客户企业的corpid |
operator_id | 下单操作人员userid |
suiteid | 应用id |
appid | 应用id。(仅旧套件有该字段) |
edition_id | 购买版本ID |
edition_name | 购买版本名字 |
price | 实付款金额,单位分 |
user_count | 购买的人数 |
order_period | 购买的时间,单位天 |
order_time | 下单时间 |
paid_time | 付款时间 |
获取永久授权码
请求方式:POST(HTTPS)
请求地址: https://qyapi.weixin.qq.com/cgi-bin/service/get_permanent_code?suite_access_token=SUITE_ACCESS_TOKEN
请求包体:
{
"auth_code": "auth_code_value"
}
参数说明:
参数 | 是否必须 | 说明 |
---|---|---|
auth_code | 是 | 临时授权码,会在授权成功时附加在redirect_uri中跳转回第三方服务商网站,或通过回调推送给服务商。长度为64至512个字节 |
返回结果:
{
"errcode":0 ,
"errmsg":"ok" ,
"access_token": "xxxxxx",
"expires_in": 7200,
"permanent_code": "xxxx",
"dealer_corp_info": {...},
"auth_corp_info": {...},
"auth_info": {...},
"auth_user_info": {...},
"edition_info":
{
"agent":
[
{
"agentid":1,
"edition_id": "RLS65535",
"edition_name": "协同版",
"app_status" : 3,
"user_limit": 200,
"expired_time": 1541990791
}
]
}
}
参数说明:
参数 | 说明 |
---|---|
access_token | 授权方(企业)access_token,最长为512字节 |
expires_in | 授权方(企业)access_token超时时间 |
permanent_code | 企业微信永久授权码,最长为512字节 |
auth_corp_info | 授权方企业信息 |
auth_info | 授权信息。如果是通讯录应用,且没开启实体应用,是没有该项的。通讯录应用拥有企业通讯录的全部信息读写权限 |
auth_user_info | 授权管理员的信息 |
edition_info | 企业当前生效的版本信息 |
edition_id | 版本id |
edition_name | 版本名称 |
app_status | 付费状态。 0-没有付费; 1-限时试用; 2-试用过期; 3-付费版本有效期内; 4-付费版本过期; 5-不限时试用; 6-付费版本有效期内,但是实际使用人数超标,且超标未超过7天; 7-付费版本有效期内,但是实际使用人数超标,且持续超标超过7天 |
user_limit | 用户上限。特别注意,如果是固定总价的购买,该参数固定为 4294967295, 含义为不限用户数 |
expired_time | 版本到期时间(根据购买版本,可能是试用到期时间或付费使用到期时间)。特别注意,4294967295代表不限时间 |
获取企业授权信息
该API用于通过永久授权码换取企业微信的授权信息。
请求方式: POST(HTTPS)
请求地址: https://qyapi.weixin.qq.com/cgi-bin/service/get_auth_info?suite_access_token=SUITE_ACCESS_TOKEN
请求包体:
{
"auth_corpid": "auth_corpid_value",
"permanent_code": "code_value"
}
参数说明:
参数 | 是否必须 | 说明 |
---|---|---|
auth_corpid | 是 | 授权方corpid |
permanent_code | 是 | 永久授权码,通过get_permanent_code获取 |
返回结果:
{
"errcode":0 ,
"errmsg":"ok" ,
"auth_corp_info": { ... },
"auth_info": { ... },
"edition_info":
{
"agent":
[
{
"agentid":1,
"edition_id": "RLS65535",
"edition_name": "协同版",
"app_status" : 3,
"user_limit": 200,
"expired_time": 1541990791
}
]
}
}
参数说明:
参数 | 说明 |
---|---|
auth_corp_info | 授权方企业信息 |
auth_info | 授权信息。如果是通讯录应用,且没开启实体应用,是没有该项的。通讯录应用拥有企业通讯录的全部信息读写权限 |
edition_info | 企业当前生效的版本信息 |
edition_id | 版本id |
edition_name | 版本名称 |
app_status | 付费状态。 0-没有付费; 1-限时试用; 2-试用过期; 3-购买期内; 4-购买过期; 5-不限时试用; 6-购买期内,但是人数超标, 注意,超标后还可以用7天; 7-购买期内,但是人数超标, 且已经超标试用7天 |
user_limit | 用户上限。特别注意,如果是固定总价的购买,该参数固定为 4294967295, 含义为不限用户数 |
expired_time | 版本到期时间(根据购买版本,可能是试用到期时间或付费使用到期时间)。特别注意,4294967295代表不限时间 |
退款事件回调
当某个客户发起有效的退款,经服务商在管理端同意后(或过期自动完成退款),会触发回调事件给服务商,服务商收到退款事件后,需自行通过相关接口重新获取这个客户最新的购买状态
请求方式: POST (HTTPS)
请求地址: https://127.0.0.1/suite/receive?msg_signature=3a7b08bb8e6dbce3c9671d6fdb69d15066227608×tamp=1403610513&nonce=380320359
请求包体:
<xml>
<SuiteId><![CDATA[ww4asffe99e54c0f4c]]></ SuiteId>
<PaidCorpId><![CDATA[wxf8b4f85f3a794e77]]></PaidCorpId>
<InfoType><![CDATA[refund]]></InfoType>
<TimeStamp>1403610513</TimeStamp>
<OrderId><![CDATA[ORDERID]]></OrderId>
</xml>
参数说明:
参数 | 说明 |
---|---|
SuiteId | 第三方应用的SuiteId |
PaidCorpId | 购买方corpid |
InfoType | 固定为refund |
TimeStamp | 时间戳 |
OrderId | 订单号,付费订单的唯一标志。服务商可据此拉取购买信息。该OrderId由企业微信生成,不超过32个字符 |
另外建了几个QQ技术群:
2、全栈技术群:616945527
2、硬件嵌入式开发: 75764412
3、Go语言交流群:9924600
闲置域名WWW.EXAI.CN (超级人工智能)出售。