cpay


JSAPI支付-获取openid

<p><strong>接口描述:</strong> </p> <ul> <li>用于服务商模式(服务商公众号)授权获取用户信息,在调用JS支付前,通过此接口获取微信公众号的openid或支付宝服务窗的userid;使用子商户模式(独立公众号)发起支付的商户请通过相应的直连接口获取。</li> </ul> <p><strong>接口URL:</strong> </p> <ul> <li><code>接口域名+/jsapi/getauth2</code></li> </ul> <p><strong>请求方式:</strong></p> <ul> <li>GET</li> </ul> <p><strong>请求参数:</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: center;">类型</th> <th style="text-align: center;">必含</th> <th style="text-align: left;">说明</th> <th style="text-align: left;">参数示例</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">inst_no</td> <td style="text-align: center;">string</td> <td style="text-align: center;">是</td> <td style="text-align: left;">机构号</td> <td style="text-align: left;">900024</td> </tr> <tr> <td style="text-align: left;">mch_no</td> <td style="text-align: center;">string</td> <td style="text-align: center;">是</td> <td style="text-align: left;">商户号</td> <td style="text-align: left;">851811130002</td> </tr> <tr> <td style="text-align: left;">redirect_uri</td> <td style="text-align: center;">string</td> <td style="text-align: center;">是</td> <td style="text-align: left;">回跳地址,需要openid的收银台路径</td> <td style="text-align: left;"><a href="https://www.baidu.com?aa=123">https://www.baidu.com?aa=123</a></td> </tr> <tr> <td style="text-align: left;">sign</td> <td style="text-align: center;">string</td> <td style="text-align: center;">是</td> <td style="text-align: left;">签名字符串,具体规则见下文</td> <td style="text-align: left;">51c7d68424e5492199cf7f4734a2b977</td> </tr> </tbody> </table> <p><code>备注</code>由于此接口涉及到URL编码,故详细说明接口的请求规则:</p> <pre><code class="language-java">//1.假设请求接口的参数如下 String redirect_uri = &amp;quot;https://www.baidu.com?aa=123&amp;quot;; String inst_no = &amp;quot;900001&amp;quot;; String mch_no = &amp;quot;851902270018&amp;quot;; String key = *** //2.按ASCII码拼接请求参数,最后拼接key(机构秘钥),此时redirect_uri不需要encodeURI String param = &amp;quot;inst_no=900001&amp;amp;mch_no=851902270018&amp;amp;redirect_uri=https://www.baidu.com?aa=123&amp;amp;key=***&amp;quot;; //3.通过MD5算法生成签名结果 String sign = MD5.sign(param); //4.对redirect_uri进行encodeURI编码,并将所有请求参数拼接到授权接口地址上,即为请求授权链接 String redirect_uri = &amp;quot;https%3A%2F%2Fwww.baidu.com%3Faa%3D123&amp;quot;; String auth_url = &amp;quot;https://open.gdyfsk.com/yfpay/jsapi/getauth2?redirect_uri=https%3A%2F%2Fwww.baidu.com%3Faa%3D123&amp;amp;inst_no=900001&amp;amp;mch_no=851902270018&amp;amp;sign=b4e64d988059c1cf6b824a03b4a18b80&amp;quot;;</code></pre> <p><strong>请求示例:</strong></p> <pre><code class="language-txt">https://open.gdyfsk.com/yfpay/jsapi/getauth2?redirect_uri=https%3A%2F%2Fwww.baidu.com%3Faa%3D123&amp;amp;inst_no=900001&amp;amp;mch_no=851902270018&amp;amp;sign=b4e64d988059c1cf6b824a03b4a18b80</code></pre> <p><strong>返回参数:</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: center;">类型</th> <th style="text-align: center;">必含</th> <th style="text-align: left;">说明</th> <th style="text-align: left;">参数示例</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">openid</td> <td style="text-align: center;">string</td> <td style="text-align: center;">否</td> <td style="text-align: left;">微信公众号的openid或支付宝服务窗的userid</td> <td style="text-align: left;">orxYXv8WjctnRnD_kE2Uk7uqgta0</td> </tr> </tbody> </table> <p><strong>返回示例:</strong></p> <pre><code class="language-txt">https://www.baidu.com/?aa=123&amp;amp;openid=orxYXv8WjctnRnD_kE2Uk7uqgta0</code></pre>

页面列表

ITEM_HTML