您如何使用经典 ASP 使用 Swish QR Code API?

问题描述

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

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

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

您如何使用经典 ASP 实现此目的?

背景信息:

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

解决方法

使用 XMLHTTP component 连接到 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 + ','
    + '"message":{"value":"' + message + '",'
    + '"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();
}

%>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...