Spring Boot が xorpay 個人のビザなし決済をサポート
xorpay は多くの支払い方法をサポートしているため、個人のウェブマスターにとっては朗報であり、非常に使いやすいです。ただし、公式デモはあまり良くないので、ここではドッキング プロセスを共有します: xorpay
1. 事前準備
まず、WeChat 決済を申請する必要があります。登録後は、Web サイトの指示に従ってください。質問がある場合は、直接カスタマーサービスに問い合わせてください。メッセージの返信が遅いことを除けば、カスタマーサービスは非常に良好です。
公式ウェブサイトにはカスタマーサービスの連絡先情報が記載されています
2. コントローラーを作成し、基本情報を入力します
String name = "测试商品"; //商品名称
String payType = "native"; /支付方式,一般为 native
String price = "0.01"; //价格
String orderId = new Date().toString(); //平台订单号,需要唯一
String notifyUrl = "https://xorpay.com/main"; //回调地址,测试可以用这个,实际项目中需要修改
String appSecret = "youAppSecret"; //你得appSecret-xorpay后台查看
3. リクエストボディのパラメータを設定する
// 设置请求体参数
MultiValueMap<String, String> requestBody = new LinkedMultiValueMap<>();
requestBody.add("name", name);
requestBody.add("pay_type", payType);
requestBody.add("price", price);
requestBody.add("order_id", orderId);
requestBody.add("notify_url", notifyUrl);
4. MD5署名の生成
// 拼接参数值
StringBuilder sb = new StringBuilder();
for (List<String> value : requestBody.values()) {
sb.append(value.get(0));
}
sb.append(appSecret);
// 计算MD5签名
String sign = DigestUtils.md5DigestAsHex(sb.toString().getBytes());
5. パラメータを完成させる
requestBody.add("sign", sign); //设置sign
requestBody.add("order_uid", "api-test-user"); //订单用户-可以不传
requestBody.add("more", ""); //订单其他信息,回调时原样传回-可以不传
6. リクエストを送信する
// 创建RestTemplate对象
RestTemplate restTemplate = new RestTemplate();
// 设置请求头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
// 发送POST请求
String url = "http://xorpay.com/api/pay/XXX"; //XXX需要替换成你的aid,xorpay后台查看
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST,
new HttpEntity<>(requestBody, headers), String.class);
7. Vo クラスをカプセル化して戻りデータを受け取る
@Data
public class XorpayVo {
private String status;
private Map<String, String> info;
private String expires_in;
private String aoid;
}
8. 返されたデータを処理する
// 处理响应
if (response.getStatusCode().is2xxSuccessful()) {
String responseBody = response.getBody();
// 将字符串解析为JSONObject对象
JSONObject jsonObject = JSONObject.parseObject(responseBody);
// 将JSONObject对象转换为Map对象
XorpayVo xorpayVo = jsonObject.toJavaObject(XorpayVo.class);
return xorpayVo.getInfo().get("qr");
} else {
return "";
}
9. フロントエンド page-index.html
<img />
<script src="https://cdn.bootcss.com/jquery/3.6.0/jquery.min.js"></script>
<script>
$(document).ready(function() {
$.get("/getQr/getSrc", function(data) {
// 在成功回调函数中设置img元素的src属性
$("img").attr("src", "http://xorpay.com/qr?data=" + data);
});
});
</script>
プロジェクトが開始されたら、http://localhost:8080/indexl.html にアクセスして支払い QR コードを確認してください。
10. ソースコードの取得
公式アカウントをフォローしてリプライしてください乾杯受け取り準備完了