Spring Boot が xorpay 個人のビザなし決済をサポート

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. ソースコードの取得

公式アカウントをフォローしてリプライしてください乾杯受け取り準備完了
QRコードをスキャンしてフォローしてください

おすすめ

転載: blog.csdn.net/kkwyting/article/details/132690447