【发布时间】:2018-07-11 17:44:52
【问题描述】:
我正在以表单形式集成 SagePay,这需要通过 SagePay API 为每笔交易请求一个唯一的会话密钥。我已经成功获得了获取密钥的代码(使用后面的代码),如下所示:-
Public Class WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim myReq As HttpWebRequest
Dim myResp As HttpWebResponse
Dim myData As String = "{""vendorName"": ""myvendorname""}"
Dim mySessionKey As String
myReq = HttpWebRequest.Create("https://pi-live.sagepay.com/api/v1/merchant-session-keys")
myReq.Method = "POST"
myReq.ContentType = "application/json"
myReq.Headers.Add("Authorization", "Basic " & Convert.ToBase64String(Encoding.UTF8.GetBytes("apikey:apipassword")))
myReq.GetRequestStream.Write(System.Text.Encoding.UTF8.GetBytes(myData), 0, System.Text.Encoding.UTF8.GetBytes(myData).Count)
myResp = myReq.GetResponse
Dim myreader As New System.IO.StreamReader(myResp.GetResponseStream)
Dim myText As String
myText = myreader.ReadToEnd
'Response.Write(myText)
mySessionKey = "{ merchantSessionKey: '" & Mid(myText, 65, 36) & "' }"
End Sub
这将产生以下字符串 (mySessionKey),其格式为完成交易所需的格式(GUID 每次都不同):-
{ 商家会话密钥:'F42164DA-4A10-4060-AD04-F6101821EFC3' }
然后需要将上述内容注入到 javascript 块中的 .aspx 页面中,如下所述:-
<body>
<div id="main">
<h1>My Test Shop</h1>
<form>
<h2>Payment Details</h2>
<div id="sp-container"></div>
<div id="submit-container">
<input type="submit"/>
</div>
</form>
</div>
<script>
sagepayCheckout({ merchantSessionKey: 'F42164DA-4A10-4060-AD04-F6101821EFC3' }).form();
</script>
</body>
我不知道如何将其动态注入到 aspx 页面中。
任何积分,非常感谢。
【问题讨论】:
标签: javascript asp.net vb.net