支付下单SDK
<h4>简要描述</h4>
<ul>
<li>商户业务系统通过支付下单接口发起支付收款订单,通过SDK的方式</li>
</ul>
<h4>引入SDK</h4>
<ul>
<li>
<p>1.导入pay.aar文件到项目libs文件夹下,然后在settings.gradle文件中增加以下代码</p>
<pre><code>repositories {
google()
flatDir{
dirs(&quot;libs&quot;)
}
}</code></pre>
</li>
<li>2.在项目bulid.gradle中依赖aar文件,代码如下:
<pre><code>implementation(files(&quot;libs/pay.aar&quot;))
implementation 'com.android.volley:volley:1.2.1'</code></pre></li>
</ul>
<h4>使用SDK</h4>
<ul>
<li>
<p>初始化sdk</p>
<pre><code>PaySdk.getInstance().initSDK(&quot;商户号&quot;,&quot;appId&quot;,&quot;appKey密钥&quot;,&quot;客户姓名&quot;,&quot;客户邮箱&quot;,&quot;客户手机号&quot;); </code></pre>
<p>字段全部必填,如果字段为空,下单支付无法通过会返回code码111的错误信息</p>
</li>
<li>
<p>支付页面注入当前Activity</p>
<pre><code>PaySdk.getInstance().registerActivity(this)</code></pre>
<p>this是当前页面Activity对象,必须ComponentActivity或者其子类。
ComponentActivity见androidx.activity包下。</p>
</li>
<li>
<p>调起sdk支付</p>
<pre><code> PaySdk.getInstance().launcherPay(context,orderId,amount.toFloat(),object:PaySdk.PayCallbackListener{
override fun paySuccess(payResultCode: Int, message: String) {
Toast.makeText(context,message,Toast.LENGTH_SHORT).show()
resultData = &quot;$payResultCode&gt;&gt;$message&quot;
}
override fun payFail(payResultCode: Int, message: String) {
Toast.makeText(context,message,Toast.LENGTH_SHORT).show()
resultData = &quot;$payResultCode&gt;&gt;$message&quot;
}
})</code></pre>
<p>Context上下文对象
orderId 商户订单号
amount 金额 float类型(价格底层会*100转换为分)</p>
</li>
<li>支付重载方法
<pre><code>launcherPay(context,orderId,amount,notifyUrl,extParam, channelExtra,PayCallbackListener callbackListener)</code></pre>
<p>notifyUrl 支付结果异步回调URL,只有传了该值才会发起回调
extParam 商户扩展参数,回调时会原样返回
channelExtra 渠道扩展参数</p></li>
</ul>
<h4>错误码</h4>
<table>
<thead>
<tr>
<th>错误码</th>
<th>错误码信息</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td>111</td>
<td>appId is null</td>
<td>应用id为空</td>
</tr>
<tr>
<td>111</td>
<td>mchNo is null</td>
<td>商户号为空</td>
</tr>
<tr>
<td>111</td>
<td>appKey is null</td>
<td>Appkey密钥为空</td>
</tr>
<tr>
<td>111</td>
<td>customerName is null</td>
<td>客户姓名为空</td>
</tr>
<tr>
<td>111</td>
<td>customerEmail is null</td>
<td>客户邮箱为空</td>
</tr>
<tr>
<td>111</td>
<td>customerPhone is null</td>
<td>客户手机号为空</td>
</tr>
<tr>
<td>112</td>
<td>mchOrderNo is null</td>
<td>商户订单号为空</td>
</tr>
<tr>
<td>113</td>
<td>amount must be greater than 0</td>
<td>商户价格小于或等于0</td>
</tr>
<tr>
<td>110</td>
<td>Check Internet Connection</td>
<td>网络未连接</td>
</tr>
<tr>
<td>114</td>
<td>Response json error</td>
<td>下单时候请求参数或者返回参数json异常</td>
</tr>
<tr>
<td>115</td>
<td></td>
<td>请求返回数据不正确</td>
</tr>
<tr>
<td>116</td>
<td>uri is not</td>
<td>无支付Uri</td>
</tr>
<tr>
<td>117</td>
<td>No payment app installed</td>
<td>用户未安装支付app</td>
</tr>
<tr>
<td>118</td>
<td>Pay result is null</td>
<td>支付结果为空异常</td>
</tr>
<tr>
<td>119</td>
<td>Pay response result is null</td>
<td>支付结果解析异常</td>
</tr>
<tr>
<td>120</td>
<td>Please register the current page activity in the onCreate method of Activity.</td>
<td>sdk未注入Activity异常</td>
</tr>
<tr>
<td>200</td>
<td>Payment Success/Payment Failed</td>
<td>支付成功或者失败</td>
</tr>
<tr>
<td>121</td>
<td>Something went wrong.</td>
<td>支付结果异常</td>
</tr>
<tr>
<td>122</td>
<td>sign Fail</td>
<td>签名失败</td>
</tr>
</tbody>
</table>