1、接口规则
<h2>1.1 协议规则</h2>
<p>商户接入PayCloud平台,调用API必须遵循以下规则:</p>
<table>
<thead>
<tr>
<th><strong>传输方式</strong></th>
<th>为保证交易安全性,正式环境采用HTTPS传输,测试环境为HTTP传输</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>提交方式</strong></td>
<td>采用POST方法提交</td>
<td></td>
</tr>
<tr>
<td><strong>Content-Type</strong></td>
<td>文件上传接口为:multipart/form-data其他:application/x-www-form-urlencoded</td>
<td></td>
</tr>
<tr>
<td><strong>数据格式</strong></td>
<td>返回数据均为JSON格式</td>
<td></td>
</tr>
<tr>
<td><strong>字符编码</strong></td>
<td>统一采用UTF-8字符编码</td>
<td></td>
</tr>
<tr>
<td><strong>签名算法</strong></td>
<td>RSA,后续可能会支持其他签名方式。</td>
<td></td>
</tr>
<tr>
<td><strong>签名要求</strong></td>
<td>请求返回及异步通知都需要校验签名,详细签名方法请参考<a href="https://www.yuque.com/paycoo/openapi_v2/tnnwew">签名规范</a></td>
<td></td>
</tr>
<tr>
<td><strong>判断逻辑</strong></td>
<td>先判断协议字段(HTTP状态码)返回,再判断报文返回码,最后判断交易状态</td>
<td></td>
</tr>
</tbody>
</table>
<h2>1.2 服务地址</h2>
<table>
<thead>
<tr>
<th><strong>环境</strong></th>
<th><strong>服务地址</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>正式环境</td>
<td><a href="https://api-paycooplus.chinavbao.cn/api/gateway">https://api-paycooplus.chinavbao.cn/api/gateway</a></td>
</tr>
</tbody>
</table>
<p> 调试参数:</p>
<pre><code>商户号:M01900000194
门店号:S1800001
APPID:307ec14c0d01a4ad
应用RSA2密钥:
publicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnpAkU1A175aOkoKODCdMVIKuLlC3BCl8+zpe9aZwB1Rt6tthFPzbAnV5xYV8LsiA9rWLl4QYIMBf6NsEl/qjiyyYhVBFFOeNzSB6v+6VzJXXu9mnNbLFmkyfSKt7EeYkrLFPgnDYqqZxnNSt3BdsbCOxLN4rfsR0iJBW5KVHHwZHap/xDcwqGqprfUfEPW6FbELN0Fwk/zRPOoTLqPVNWIDPboxlvslLhURwj1ppN1SntdH87nOT8A7mqhC/38UN3kUFJBghCqSmwV4Q/TzJALFIdOTJtAG69/fWfns1qDjulFE02/ux1QZbLyVbHeLXOyIoHSL+K+IB8N0KVyx1NwIDAQAB
privateKey(PKCS8):MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCekCRTUDXvlo6Sgo4MJ0xUgq4uULcEKXz7Ol71pnAHVG3q22EU/NsCdXnFhXwuyID2tYuXhBggwF/o2wSX+qOLLJiFUEUU543NIHq/7pXMlde72ac1ssWaTJ9Iq3sR5iSssU+CcNiqpnGc1K3cF2xsI7Es3it+xHSIkFbkpUcfBkdqn/ENzCoaqmt9R8Q9boVsQs3QXCT/NE86hMuo9U1YgM9ujGW+yUuFRHCPWmk3VKe10fzuc5PwDuaqEL/fxQ3eRQUkGCEKpKbBXhD9PMkAsUh05Mm0Abr399Z+ezWoOO6UUTTb+7HVBlsvJVsd4tc7IigdIv4r4gHw3QpXLHU3AgMBAAECggEAfM6WWSGcoq5OIJI0vuo70ZVfBsOvms4ROyoxzoeoTIyvTBpLqxpwRNo09D1ihux5Xjd93dAysazakU27qui0y/pZPy30gkTUv64eEG76aCNVwN3MGJ9TnGVNRwT7BRayrV+PZuvuDzyd1sUs6D1jsSbS8a8aa1i1JTz/uE9D0O16bS7dcsL2h4W1epjo2jFfwLX7W4otT0o5LcyNCS4lMra8PX+zemXF4nNqg/EVHJcb0s0hhAEBNQpHHoJvv2HGOqOjirYejmDQBUokq9fWuOZ53GUNxrVM8TKm2qjn5zvUjhyfVCNTO5NWbOnggw0at7iHENpcCNyjggo4wTzqKQKBgQD7EeSrPlgyW8Iq+A0Gz/0cQPH5J/kM+fCalSkfaWe47i5+NVrdch1ZWe+l4RyIjwvDKvr6mXkqVPmxo8b3URJ+SaLHzLMKGsTWZ9q2p+RRTs/+Tcy64SI0sEQGjmhsgB4Uwh9cgB6F0msGGzYz1RCd6lS0NtLp492llTgq5WwkCwKBgQChrTmHt3Ya8Ey051wP6COmm1b219UoKW9QvLGoOEqvlO0wHb7D+atnVQa0PhjUtDGvaEes4kDU+mnf6mUqjnEa4Y0QHV4vZ9DGY5ixTfGVV9xnEOGlbWzz6w0V8JnCDesKmsK6fp6NCoJt+XJk+xuDkXNAh28i4WPvbHlNLo7jBQKBgA79lYKn+UogcmpwXw6+EmXCdvAic9tTfQstxsPKXlgLWJlOhDtemeQA268yzqpUqCYiBdQ6n6JoanQxzCpuG8WQjfiR/0qmKISItOVdBuPX6dFMQeISmSE+OQGPNSrtR16D7K1wNOJWmu9FZqoXmaNkH2SXNWajpVNCopTlF9zbAoGAFvCwUAx9Cpd8GtMVIgCrRlGWRlIboaY3cDpF7vuFxWIZQZGG5uG/K1tKJzsEZPHodt4SBXrY/h9F9Iqari4l6E2GqXmxSoKtgejR2p6Xn7wmvs0LZ2CebAG3CpzoBDvbVNbeuH2M27BZD2esjp1+qu1xb/+Himh2uJsonwXzKk0CgYBNTJ9SPNkxgfVgRNAAaVaxgJqwxaf3EgQ4uW7LEj0iHxk4rQUR9KAZyx8zForWh1QiloHHawC5mDxdqrspGURjINngmWBvsNoGI4XQBCrH+pfUZoYn8yNqGAD5aWa+4HLieRbQfYSn2jo6Da5+QauSizdKcsST5rf0TRjhx0lAPQ==
privateKey(PKCS1):MIIEogIBAAKCAQEAnpAkU1A175aOkoKODCdMVIKuLlC3BCl8+zpe9aZwB1Rt6tthFPzbAnV5xYV8LsiA9rWLl4QYIMBf6NsEl/qjiyyYhVBFFOeNzSB6v+6VzJXXu9mnNbLFmkyfSKt7EeYkrLFPgnDYqqZxnNSt3BdsbCOxLN4rfsR0iJBW5KVHHwZHap/xDcwqGqprfUfEPW6FbELN0Fwk/zRPOoTLqPVNWIDPboxlvslLhURwj1ppN1SntdH87nOT8A7mqhC/38UN3kUFJBghCqSmwV4Q/TzJALFIdOTJtAG69/fWfns1qDjulFE02/ux1QZbLyVbHeLXOyIoHSL+K+IB8N0KVyx1NwIDAQABAoIBAHzOllkhnKKuTiCSNL7qO9GVXwbDr5rOETsqMc6HqEyMr0waS6sacETaNPQ9YobseV43fd3QMrGs2pFNu6rotMv6WT8t9IJE1L+uHhBu+mgjVcDdzBifU5xlTUcE+wUWsq1fj2br7g88ndbFLOg9Y7Em0vGvGmtYtSU8/7hPQ9Dtem0u3XLC9oeFtXqY6NoxX8C1+1uKLU9KOS3MjQkuJTK2vD1/s3plxeJzaoPxFRyXG9LNIYQBATUKRx6Cb79hxjqjo4q2Ho5g0AVKJKvX1rjmedxlDca1TPEyptqo5+c71I4cn1QjUzuTVmzp4IMNGre4hxDaXAjco4IKOME86ikCgYEA+xHkqz5YMlvCKvgNBs/9HEDx+Sf5DPnwmpUpH2lnuO4ufjVa3XIdWVnvpeEciI8Lwyr6+pl5KlT5saPG91ESfkmix8yzChrE1mfatqfkUU7P/k3MuuEiNLBEBo5obIAeFMIfXIAehdJrBhs2M9UQnepUtDbS6ePdpZU4KuVsJAsCgYEAoa05h7d2GvBMtOdcD+gjpptW9tfVKClvULyxqDhKr5TtMB2+w/mrZ1UGtD4Y1LQxr2hHrOJA1Ppp3+plKo5xGuGNEB1eL2fQxmOYsU3xlVfcZxDhpW1s8+sNFfCZwg3rCprCun6ejQqCbflyZPsbg5FzQIdvIuFj72x5TS6O4wUCgYAO/ZWCp/lKIHJqcF8OvhJlwnbwInPbU30LLcbDyl5YC1iZToQ7XpnkANuvMs6qVKgmIgXUOp+iaGp0McwqbhvFkI34kf9KpiiEiLTlXQbj1+nRTEHiEpkhPjkBjzUq7Udeg+ytcDTiVprvRWaqF5mjZB9klzVmo6VTQqKU5Rfc2wKBgBbwsFAMfQqXfBrTFSIAq0ZRlkZSG6GmN3A6Re77hcViGUGRhubhvytbSic7BGTx6HbeEgV62P4fRfSKmq4uJehNhql5sUqCrYHo0dqel5+8Jr7NC2dgnmwBtwqc6AQ721TW3rh9jNuwWQ9nrI6dfqrtcW//h4podribKJ8F8ypNAoGATUyfUjzZMYH1YETQAGlWsYCasMWn9xIEOLluyxI9Ih8ZOK0FEfSgGcsfMxaK1odUIpaBx2sAuZg8Xaq7KRlEYyDZ4Jlgb7DaBiOF0AQqx/qX1GaGJ/MjahgA+WlmvuBy4nkW0H2Ep9o6Og2ufkGrkos3SnLEk+a39E0Y4cdJQD0=
PayCloud RSA2公钥:
publicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlIoLKRsQlq7P3x70yxrGnoyJvw3HjYIT5p4QRx8MivMMFgqoccO1AObsj9YtHXZxKMzKJ9q2gxwuqnfeNe4SvHpchdqPDNWdOJYrj/tOX3O5kHUv/GNcNBGK3zWoEaGtHTgr5/MJFaOMNj04707cVXBe5CIhgp+7wnY9u6NBFLjM/UbPPCH6Y5CVFNiSlQfElYvQfG+03/tKM8xrifMw5O++qS9PVKhFUCde4MWVqmGsldByx6nXjlp+TH5IhOlPDxjOEJyVgeTZQ/vPfKlJkkJypssRhq1oWvosUCT9tcs47w8vItmS7w9Tn+BmXN8on0LVaGoKr+HJeT+Jt9bDeQIDAQAB</code></pre>
<p>注:[接口]参数请联系商务人员分配,此处调试参数不能使用</p>
<h2>1.3 参数规定</h2>
<h3>必要性</h3>
<ul>
<li>
<p><strong>M</strong> - 必选参数</p>
</li>
<li>
<p><strong>C</strong> - 部分条件满足的情况下为必选参数</p>
</li>
<li><strong>O</strong> - 可选参数</li>
</ul>
<h3>参数类型</h3>
<table>
<thead>
<tr>
<th><strong>KEY</strong></th>
<th><strong>名称</strong></th>
<th><strong>样例</strong></th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>NUMBER</strong></td>
<td>数字类</td>
<td>123</td>
<td></td>
</tr>
<tr>
<td><strong>AMOUNT</strong></td>
<td>金额类</td>
<td>88.05</td>
<td>以结算货币的基本单位为准,如人民币(CNY)的基准单位是元</td>
</tr>
<tr>
<td><strong>TEXT</strong></td>
<td>文本类</td>
<td>张三</td>
<td></td>
</tr>
<tr>
<td><strong>DATE</strong></td>
<td>时间类</td>
<td>2018-08-02 15:16:51</td>
<td>根据客户所在的国际或地区,若您是中国客户,请使用北京时间,其他地区请使用格林威治标准时间</td>
</tr>
<tr>
</tr>
<tr>
<td><strong>BOOLEAN</strong></td>
<td>布尔值类</td>
<td>true</td>
<td>true 或者 false</td>
</tr>
<tr>
<td><strong>JSONObject</strong></td>
<td>JSON对象类</td>
<td>{"key":"value"}</td>
<td></td>
</tr>
<tr>
<td><strong>JSONArray</strong></td>
<td>JSON数组类</td>
<td>[1,2,3,4,5]</td>
<td></td>
</tr>
</tbody>
</table>
<h3>请求报文 - 公共参数</h3>
<table>
<thead>
<tr>
<th><strong>参数KEY</strong></th>
<th><strong>参数名称</strong></th>
<th><strong>类型</strong></th>
<th><strong>必要性</strong></th>
<th><strong>描述</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>app_id</td>
<td>应用ID</td>
<td>TEXT(32)</td>
<td>M</td>
<td>PayCloud平台分配给接入应用的ID,请联系技术人员提供</td>
</tr>
<tr>
<td>format</td>
<td>请求数据格式</td>
<td>TEXT(4)</td>
<td>M</td>
<td>仅支持JSON</td>
</tr>
<tr>
<td>charset</td>
<td>请求使用的编码格式</td>
<td>TEXT(8)</td>
<td>M</td>
<td>仅支持UTF-8</td>
</tr>
<tr>
<td>sign_type</td>
<td>签名算法</td>
<td>TEXT(8)</td>
<td>M</td>
<td>目前只支持RSA2</td>
</tr>
<tr>
</tr>
<tr>
<td>sign</td>
<td>签名</td>
<td>TEXT(32)</td>
<td>M</td>
<td>接口签名标识,用于判断商户真实性,防止报文被篡改,详见签名规范</td>
</tr>
<tr>
<td>version</td>
<td>版本</td>
<td>TEXT(16)</td>
<td>M</td>
<td>固定值:2.0</td>
</tr>
<tr>
<td>timestamp</td>
<td>发送请求的时间</td>
<td>DATE</td>
<td>M</td>
<td>和标准时间前后不能超过15分钟</td>
</tr>
<tr>
<td>response_data_format</td>
<td>返回报文data的数据格式</td>
<td>TEXT(16)</td>
<td>O</td>
<td>JSON - JSON对象数组格式,默认使用此格式</td>
</tr>
<tr>
<td>JSONString - JSON对象数组字符串格式,非java语言客户端建议使用此格式,以防止签名时对象序列化后参数顺序不一致,到账和服务商的签名结果不一致</td>
</tr>
</tbody>
</table>
<h3>响应报文 - 公共参数</h3>
<table>
<thead>
<tr>
<th><strong>参数KEY</strong></th>
<th><strong>参数名称</strong></th>
<th><strong>类型</strong></th>
<th><strong>必要性</strong></th>
<th><strong>描述</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>code</td>
<td>状态码</td>
<td>TEXT(32)</td>
<td>M</td>
<td>状态码,0 表示请求成功,其他表示失败</td>
</tr>
<tr>
<td>msg</td>
<td>错误信息</td>
<td>TEXT(128)</td>
<td>M</td>
<td>当有错误发生时,此msg包含有错误信息</td>
</tr>
<tr>
<td>sign</td>
<td>签名</td>
<td>TEXT(32)</td>
<td>M</td>
<td>接口签名标识,用于判断商户真实性,防止报文被篡改,详见签名规范app_id和sign_type无效时,不会返回签名</td>
</tr>
<tr>
<td>total</td>
<td>返回数据总数</td>
<td>NUMBER</td>
<td>M</td>
<td>满足条件的数据总数,获取分页数据时有效</td>
</tr>
<tr>
<td>data</td>
<td>返回数据</td>
<td>JSONArray</td>
<td>M</td>
<td>数组中包括1个或多个JSONObject,具体参数由各业务API定义请求参数response_data_format=JSONString时,此参数时一个JSONArray的字符串,其他时候为JSONArray对象格式</td>
</tr>
<tr>
<td>psn</td>
<td>接口序列号</td>
<td>TEXT(32)</td>
<td>M</td>
<td>接口序列号,用于错误查找及请求记录</td>
</tr>
</tbody>
</table>