银联商务天满服务平台
Java PHP Python



import com.chinaums.open.api.OpenApiCache;
import com.chinaums.open.api.OpenApiContext;
import com.chinaums.open.api.constants.ConfigBean;
import com.chinaums.open.api.internal.util.http.HttpTransport;
import java.util.UUID;

public class OpenApiSdkTest {
    public static void main(String[] args) throws Exception{
        String url = "https://api-mop.chinaums.com/v1/netpay/wx/mini-pre-query";
        //开发者ID
        String appId = "平台分配";
        //开发者秘钥
        String appKey = "平台分配";
        //实例化客户端
        ConfigBean configBean = new ConfigBean();
        OpenApiContext context = new OpenApiContext();
        String request = "{\"msgId\":\"\",
                    \"requestTimestamp\":\"2023-08-31 13:53:00\",
                    \"srcReserve\":\"\",
                    \"mid\":\"898340149000005\",
                    \"tid\":\"88880001\",
                    \"instMid\":\"MINIDEFAULT\",
                    \"targetOrderId\":\"\",
                    \"merOrderId\":\"319420230831135026\"}";
        context.setStartTime(System.currentTimeMillis());
        context.setRequestId(UUID.randomUUID().toString().replace("-", ""));
        context.setOpenServUrl(url.split("/v")[0].concat("/"));
        context.setApiServiceUrl(url);
        context.setVersion(url.split("/")[3]);
        context.setAppId(appId);
        context.setAppKey(appKey);
        context.setConfigBean(configBean);
        context.setServiceCode(url.split("/v")[1].substring(1));
        OpenApiCache.getCurrentToken(context);
        System.out.println(HttpTransport.getInstance().doPost(context, request));
    }
}
<?php
require_once "../utils/Log.php";
require_once "../utils/Tools.php";
require_once "../DefaultOpenApiClient.php";
class DataRequest

{
    public $url = "";
    public $serviceCode = "";
    public $apiVersion ="";
    public $needToken = true;
    public $needDataTag = false;
    public $data;

    function __construct($data, $url)
    {
        $this->data = $data;
        $apiVersion = preg_split("/[/]+/s",$url)[2];
        $this->apiVersion = $apiVersion;
        $serviceCode = strstr($url,$apiVersion);
        $this->url = strstr($url,"/".$apiVersion,true);
        $this->serviceCode = preg_replace("/^" . preg_quote($apiVersion, "/") . "/", "", $serviceCode);
    }
}

class DataDemo{
    public function main(){
        $appid = "平台分配";
        $appkey = "平台分配";
        $url = "https://api-mop.chinaums.com/v1/netpay/wx/mini-pre-query";
        $data = json_encode(array("msgId"=>"",
                    "requestTimestamp"=>"2023-08-31 13=>53=>00",
                    "srcReserve"=>"",
                    "mid"=>"898340149000005",
                    "tid"=>"88880001",
                    "instMid"=>"MINIDEFAULT",
                    "targetOrderId"=>"",
                    "merOrderId"=>"319420230831135026"));
        $reqiest = new DataRequest($data,$url);
        $client = new DefaultOpenApiClient();
        $content = $client->execute($reqiest,$appid,$appkey);
        $obj = json_decode($content);
        print_r($obj->errCode);
        print_r($obj->errInfo);
    }
}
$p = new DataDemo();
$p->main();
?>
# -*- coding: utf-8 -*-
from webapi.DefaultOpenApiClient import DefaultOpenApiClient

url = "https://api-mop.chinaums.com/v1/netpay/wx/mini-pre-query"

class DataRequest(object):
    def __init__(self, data: dict) -> dict:
        self.data = data
        self.serviceCode = url[len(url.split("/v")[0])+len(url.split("/")[3])+1: len(url)]
        self.apiVersion = url.split("/")[3]
        self.needToken = True
        self.needDataTag = True

appId="平台分配"
appKey="平台分配"
client = DefaultOpenApiClient(appId, appKey)
cls = DataRequest({\"msgId\":\"\",
                    \"requestTimestamp\":\"2023-08-31 13:53:00\",
                    \"srcReserve\":\"\",
                    \"mid\":\"898340149000005\",
                    \"tid\":\"88880001\",
                    \"instMid\":\"MINIDEFAULT\",
                    \"targetOrderId\":\"\",
                    \"merOrderId\":\"319420230831135026\"})
response = client.execute(cls)
print(str(response.get("data")))
print(response.get("errCode"))
print(response.get("errInfo"))
print(response.get("resultCode"))
print(response.get("resultInfo"))

微信跳转小程序查询

URL

  • 生产环境: POST https://api-mop.chinaums.com/v1/netpay/wx/mini-pre-query
  • 测试环境: POST https://test-api-open.chinaums.com/v1/netpay/wx/mini-pre-query

描述:钱包支付时,因通讯故障、服务器故障等原因,造成收银机最终没有收到支付结果通知,收银员不确定该笔支付后台处理结果,可以在收银机上发起“查询”交易,查询该笔交易订单在钱包后台的支付结果,并将支付结果返回给收银机。

ContentType:HTTP(S) + JSON

请求头

名称 必填 描述 示例值
Authorization 认证内容 (认证参考天满开发者中心->接入指引->平台认证方式:开发者中心 OPEN-BODY-SIG AppId="****",Timestamp="20170606135700",Nonce="99930a147f5353dd8a8f29a5329f37e9",Signature="IPmdGHYCcfN+mto0/02zkwoUF1NT3YqPKaUykMaec1T="

请求参数

名称 类型 必填 最大长度 描述 示例值
msgId string 64 消息ID
requestTimestamp string 报文请求时间 格式yyyy-MM-dd HH:mm:ss 2023-08-31 13:53:00
srcReserve string 255 请求系统预留字段
mid string 8-32 商户号 898340149000005
tid string 2-32 终端号 88880001
instMid string 8-32 业务类型 MINIDEFAULT
targetOrderId string 6-64 支付订单号
merOrderId string 6-32 商户订单号 319420230831135026

响应示例

{
  "errCode":"SUCCESS",
  "errMsg":"成功",
  "msgId":"",
  "srcReserve":"",
  "responseTimeStamp":"2023-08-31 13:50:14",
  "mid":"898340149000005",
  "tid":"88880001",
  "instMid":"",
  "seqId":"",
  "settleRefId":"",
  "refId":"",
  "status":"",
  "totalAmount":"1",
  "merName":0,
  "merOrderId":"319420230831135026",
  "targetOrderId":"",
  "targetSys":"",
  "targetStatus":"",
  "buyerId":"",
  "targetMid":"",
  "bankCardNo":"",
  "bankInfo":"",
  "billFunds":"",
  "billFundsDesc":"",
  "buyerPayAmount":0,
  "billPayment":
  {

  },
  "buyerUsername":"",
  "couponAmount":0,
  "invoiceAmount":0,
  "payTime":"",
  "receiptAmount":0,
  "settleDate":"",
  "subBuyerId":"",
  "activityIds":"",
  "yxlmAmount":0,
  "couponMerchantContribute":0,
  "couponOtherContribute":0,
  "buyerCashPayAmt":"",
  "cardAttr":""
}

响应参数

名称 类型 必填 最大长度 描述 示例值
errCode string 错误代码
平台错误码
业务错误码
SUCCESS
errMsg string 平台错误信息 成功
msgId string 64 消息ID
srcReserve string 255 请求系统预留字段
responseTimeStamp string 报文应答时间 格式yyyy-MM-dd HH:mm:ss 2023-08-31 13:50:14
mid string - 商户号 898340149000005
tid string - 终端号 88880001
instMid string - 业务类型
seqId string 平台流水号,类似检索参考号
settleRefId string 清分ID 如果来源方传了bankRefId就等于bankRefId,否则等于seqId
refId string 检索参考号 用在银联体系交易中
status string 交易状态
totalAmount number 支付总金额 1
merName number 商户名称
merOrderId string 银商订单号 319420230831135026
targetOrderId string 目标平台单号
targetSys string 目标平台代码
targetStatus string 目标平台状态
buyerId string 买家ID
targetMid string 支付渠道商户号 各渠道情况不同,酌情转换
bankCardNo string 银行卡号
bankInfo string 银行信息
billFunds string 支付渠道列表 格式为:方式:金额(单位:分)\
billFundsDesc string 支付渠道描述
buyerPayAmount number 买家付款的金额 支付宝会有
billPayment object 账单支付信息 若涉及营销联盟优惠,则账单流水总金额为优惠后的总金额
buyerUsername string 买家用户名
couponAmount number 网付计算的优惠金额
invoiceAmount number 交易中可给用户开具发票的金额
payTime string 支付时间 格式yyyy-MM-dd HH:mm:ss
receiptAmount number 商户实收金额 支付宝会有
settleDate string 结算日期 格式yyyy-MM-dd
subBuyerId string 子买家ID 如微信的subOpenId
activityIds string 微信活动ID
yxlmAmount number 营销联盟优惠金额 仅享受联盟优惠的订单,查询返回
couponMerchantContribute number - 商户出资优惠金额
couponOtherContribute number - 其他出资优惠金额
buyerCashPayAmt string - 实付现金金额
cardAttr string - 卡属性

错误码