1

Swish QR Code API的设计者选择使用 POST 作为生成和获取 QR 码的方法。我不明白这个选择,但事实就是如此。如果他们选择使用 GET 方法,那么使用 API 将是微不足道的。但事实上,如果您需要即时生成 Swish 支付二维码,您需要编写自己的代理来将 GET 转换为 POST。

这就是我想使用 API 的方式:

<img src="qr.asp?payee=9006032&amount=200">

您如何使用 Classic ASP 完成此任务?

背景资料:

Swish 是一家瑞典移动支付提供商,二维码用于发起支付。在二维码中,可以指定收款人(个人手机号码)、金额以及给收款人的消息(例如订单号)。

4

1 回答 1

3

使用XMLHTTP 组件连接到 Swish API 服务器。构建适当的 JSON 请求并将响应流式传输到客户端。

此示例使用 JScript 作为脚本语言。

<%@ codepage=65001 language="jscript" %>
<%

var payee       = Request.QueryString('payee');
var amount      = Request.QueryString('amount');
var message     = Request.QueryString('message');

var format      = 'png'; // Can also be 'jpg' or 'svg'
var size        = 400; // Between 300 and 2000
var border      = 2; // Between 0 and 4 (measured in blocks, not pixels)
var transparent = 'true'; // Must be 'false' for 'jpg'

var json = '{'
    + '"payee":{"value":"' + payee + '","editable":false},'
    + '"amount":{"value":' + amount + ',"editable":false},'
    + '"message":{"value":"' + message + '","editable":false},'
    + '"format":"' + format + '",'
    + '"size":' + size + ','
    + '"border":' + border + ','
    + '"transparent":' + transparent
    + '}';


var http = new ActiveXObject('MSXML2.Serverhttp');
http.open('POST', 'https://mpc.getswish.net/qrg-swish/api/v1/prefilled', false);
http.setRequestHeader('content-type', 'application/json');
http.send(json);

if (http.status != 200) {
    Response.ContentType = 'text/plain';
    Response.Write('HTTP ' + http.status + '\n' + http.statusText + '\n' + http.responseText);
} else {
    Response.ContentType = 'image/png';
    Response.BinaryWrite(http.responseBody);
    Response.End();
}

%>
于 2021-03-06T22:03:10.650 回答