服务器对接文档

服务器对接文档


支付回调

<pre><code class="language-java">import java.util.Map; import java.util.HashMap; public class PaymentNotification { public static void main(String[] args) { // 获取请求参数 String urldata = &amp;quot;&amp;quot;; // 获取请求参数的方式根据实际情况修改 String success = &amp;quot;SUCCESS&amp;quot;; // 成功 String fail = &amp;quot;FAILURE&amp;quot;; // 失败 // 缺少参数 if (urldata.isEmpty()) { System.exit(0); // 修改为0表示成功,根据实际情况修改 } // 解析参数 Map&amp;lt;String, String&amp;gt; urldataMap = new HashMap&amp;lt;&amp;gt;(); String[] params = urldata.split(&amp;quot;&amp;amp;&amp;quot;); for (String param : params) { String[] keyValue = param.split(&amp;quot;=&amp;quot;); if (keyValue.length == 2) { urldataMap.put(keyValue[0], keyValue[1]); } } String order_id = urldataMap.getOrDefault(&amp;quot;order_id&amp;quot;, &amp;quot;&amp;quot;); String mem_id = urldataMap.getOrDefault(&amp;quot;mem_id&amp;quot;, &amp;quot;&amp;quot;); int app_id = Integer.parseInt(urldataMap.getOrDefault(&amp;quot;app_id&amp;quot;, &amp;quot;0&amp;quot;)); double money = Double.parseDouble(urldataMap.getOrDefault(&amp;quot;money&amp;quot;, &amp;quot;0.00&amp;quot;)); String order_status = urldataMap.getOrDefault(&amp;quot;order_status&amp;quot;, &amp;quot;&amp;quot;); int paytime = Integer.parseInt(urldataMap.getOrDefault(&amp;quot;paytime&amp;quot;, &amp;quot;0&amp;quot;)); String attach = urldataMap.getOrDefault(&amp;quot;attach&amp;quot;, &amp;quot;&amp;quot;); String sign = urldataMap.getOrDefault(&amp;quot;sign&amp;quot;, &amp;quot;&amp;quot;); // money 参数为小数点后两位 money = Double.parseDouble(String.format(&amp;quot;%.2f&amp;quot;, money)); // 校验参数合法性 if (urldata.isEmpty() || order_id.isEmpty() || mem_id.isEmpty() || app_id == 0 || money == 0.00 || order_status.isEmpty() || paytime == 0 || attach.isEmpty() || sign.isEmpty()) { System.exit(0); // 修改为0表示成功,根据实际情况修改 } // 校验此单合法性 { attach = &amp;quot;&amp;quot;; // CP自定义参数,可以为CP的订单ID,与其他信息,校验平台订单合法性.建议英文与数字,请不要有特殊字符 UTF-8编码 } // 通过游戏id查询appkey String appkey = &amp;quot;&amp;quot;; // 通过游戏ID查询到此游戏的appkey // 拼接参数 String paramstr = &amp;quot;order_id=&amp;quot; + order_id + &amp;quot;&amp;amp;mem_id=&amp;quot; + mem_id + &amp;quot;&amp;amp;app_id=&amp;quot; + app_id + &amp;quot;&amp;amp;money=&amp;quot; + money + &amp;quot;&amp;amp;order_status=&amp;quot; + order_status + &amp;quot;&amp;amp;paytime=&amp;quot; + paytime + &amp;quot;&amp;amp;attach=&amp;quot; + attach + &amp;quot;&amp;amp;app_key=&amp;quot; + appkey; String verifysign = md5(paramstr); if (verifysign.equalsIgnoreCase(sign)) { System.exit(0); // 修改为0表示成功,根据实际情况修改 } System.exit(0); // 修改为0表示成功,根据实际情况修改 } // MD5加密方法,根据实际情况替换为你的MD5加密实现 public static String md5(String input){ // 此处为示例实现,实际应用中需要替换为真正的MD5加密方法 try { java.security.MessageDigest md = java.security.MessageDigest.getInstance(&amp;quot;MD5&amp;quot;); byte[] array = md.digest(input.getBytes(&amp;quot;UTF-8&amp;quot;)); StringBuilder sb = new StringBuilder(); for (byte b : array) { sb.append(String.format(&amp;quot;%02x&amp;quot;, b)); } return sb.toString(); } catch (java.security.NoSuchAlgorithmException | java.io.UnsupportedEncodingException e) { e.printStackTrace(); return null; } } } </code></pre>

页面列表

ITEM_HTML