玖壹卡券


玖壹权益对接文档说明

<h1>开通说明</h1> <p>玖壹权益对接api下单开通,需要找管理员开通相应的权限,必须要进行注册玖壹权益账号,管理员开通后,则会颁发相应的授权相关信息。</p> <ul> <li> <p>appid <code>api下单用户ID</code></p> </li> <li> <p>appsecret <code>api下单用户秘钥</code></p> </li> <li>网关地址 <code>api下单用户请求网关地址</code></li> </ul> <h1>ip白名单</h1> <p>对接api下单的合作商,必须提供合作商的的IP地址,否则无法通过API进行下单。提供IP给管理员,增加即可。</p> <h1>玖壹权益对接API接口说明</h1> <ul> <li> <p>请求协议:http请</p> </li> <li> <p>请求方式:POST</p> </li> <li> <p>content-type:application/x-www-form-urlencoded</p> </li> <li>网关地址:请联系管理员</li> </ul> <h1>签名算法方式说明</h1> <h3>第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&amp;key2=value2…)拼接成字符串stringA。</h3> <p>特别注意以下重要规则:</p> <ul> <li> <p>参数名ASCII码从小到大排序(字典序);</p> </li> <li> <p>如果参数的值为空不参与签名;</p> </li> <li> <p>参数名区分大小写;</p> </li> <li>特别注意:<code>notify_url 必须经过 urlencode 后进行参与加密</code></li> </ul> <h3>第二步,在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。</h3> <p>举例:</p> <p>假设传送的参数如下(假设而已,实际需要提交哪些参数请以对应api说明为准):</p> <pre><code>account: 15565601175 appid: 19190009 card_id: 43 datetime: 1649951134 money: 1025 notify_url: http://www.testxxx.com/test/callback number: 1 out_order_id: 202209989882384</code></pre> <p>第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:</p> <p><code>stringA=&amp;quot;account=15565601165&amp;amp;appid=19190009&amp;amp;card_id=43&amp;amp;datetime=1649951134&amp;amp;money=1025&amp;amp;notify_url=http%3A%2F%2Fwww.testxxx.com%2Ftest%2Fcallback&amp;amp;number=1&amp;amp;out_order_id=202209989882384&amp;quot;;</code></p> <p>第二步:拼接API密钥并且md5加密后转为大写:</p> <p><code>stringSignTemp=&amp;quot;stringA&amp;amp;appsecret=您的秘钥&amp;quot;</code></p> <p><code>sign=MD5(stringSignTemp).toUpperCase()=&amp;quot;A1F62DC3902EDB420343397CE3ACA4C2&amp;quot;</code></p> <p>最终得到最终发送的数据结果:</p> <pre><code>code: 1 msg: 下单成功 data: API20220403223244</code></pre> <h1>状态码说明</h1> <p>服务端返回格式</p> <pre><code>{ code: 1, msg: '下单成功', data: '202209090232323' }</code></pre> <table> <thead> <tr> <th>状态码 code</th> <th>解释</th> </tr> </thead> <tbody> <tr> <td>0</td> <td>失败(可根据msg提示,查看具体失败原因)</td> </tr> <tr> <td>1</td> <td>成功</td> </tr> </tbody> </table> <h3>附php 签名加密算法</h3> <pre><code>/** * @param $data // 参与签名的数据 * @param $appsecret // 用户的appsecret的秘钥 * @return string */ function makeSign($data, $appsecret): string { ksort($data); $paramsStr = http_build_query($data).'&amp;amp;appsecret='.$appsecret; return strtoupper(md5($paramsStr)); }</code></pre>

页面列表

ITEM_HTML