Я ищу образец кода для интеграции платежного шлюза skrill в мое приложение. Я пытался использовать учетную запись skrill и вызывать веб-методы json rpc, но каждый раз получал ошибку разбора или междоменное исключение.
Пожалуйста, помогите мне.
Я хочу зарегистрировать кредитную карту, а затем хочу сделать автоматический платеж.
Если у вас есть пример кода с другой языковой платформой, пожалуйста, поделитесь здесь примером.
Спасибо
Рича Шах
Сначала попробовал с кодом ниже:
public static string RegCard()
{
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://psp.sandbox.dev.skrillws.net/v1/json/3e40a821/channelid_register_get/creditcard/");
httpWebRequest.ContentType = "text/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "{\"jsonrpc\":\"2.0\",\"method\":\"register\",\"id\":1 ,\"params\":{\"account\":{\"number\":\"4111111111111111\",\"expiry\":\"10/2016\",\"cvv\",\"123\"}}}";
streamWriter.Write(json);
}
var responseText="";
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
responseText = streamReader.ReadToEnd();
//Now you have your response.
//or false depending on information in the response
return responseText;
}
}
Вторая попытка с
function Register2() {
$.post("https://psp.sandbox.dev.skrillws.net/v1/json/3e40a821/channelid_register_get/creditcard", "{'jsonrpc\" : \"2.0\",\"method\" : \"register\",\"params\" : {\"account\":{\"number\":\"4444333322221111\",\"expiry\":\"10/2016\",\"cvv\",\"333\"} },\"id\":1 }", function (data, textStatus) {
alert(textStatus);
}, "json");
}
function RegisterCard() {
var jsonText = '{"jsonrpc" : "2.0","method" : "register","params" : {"account":{"number":"4444333322221111","expiry":"10/2016","cvv","333"} },"id":1}';
// "{'number':" + JSON.stringify(jsonText) + "}"try {
$(function () {
$.ajax({
type: "POST",
url: "https://psp.sandbox.dev.skrillws.net/v1/json/3e40a821/channelid_register_get/creditcard?jsoncallback=?",
data: jsonText,
contentType: "application/json",
callback: 'RegisterCardResponse',
dataType: "json"});
});
} catch (e) {
alert(e);
}
}
function RegisterCardResponse(response) {
alert(1);
document.getElementById("res").innerHTML = response;
}
Третья попытка с
function RegisterCard() {
var jsonText = '{"jsonrpc" : "2.0","method" : "register","params" : {"account":{"number":"4444333322221111","expiry":"10/2016","cvv","333"} },"id":1}';
try {
$(function () {
$.ajax({
type: "POST",
url: "https://psp.sandbox.dev.skrillws.net/v1/json/3e40a821/channelid_register_get/creditcard",
data: jsonText,
contentType: "application/json",
dataType: "json",
success: function (responseData, textStatus, jqXHR) {
var value = responseData.someKey;
RegisterCardResponse(responseData);
},
error: function (responseData, textStatus, errorThrown) {
alert(responseData);
}
});
});
} catch (e) {
alert(e);
}
}
function RegisterCardResponse(response) {
alert(1);
document.getElementById("res").innerHTML = response;
}
Решение для доступа к Skrill Json RPC
На странице ASPX написать ниже код в Javascript:
`<input type="button" onclick="RegCard(); return false;" value="Register" />
<script type="text/javascript">
function RegCard() {
var request = {};
request.method = "register";
request.params = {};
request.params.account = {};
request.params.account.number = "Card Number";
request.params.account.expiry = "Expiry Date";
request.params.account.cvv = "CVV Number";
request.id = 1;
request.jsonrpc = "2.0";
$(function () {
$.ajax({
type: "GET",
url: "SkrillHandler.ashx",
data: { 'a': 'register', 'data': JSON.stringify(request) },
contentType: "application/json",
dataType: "json",
success: function (responseData) {
alert(responseData.result.account.token);
},
error: function (responseData) {
alert(responseData);
}
});
});
//$.getJSON('SkrillHandler.ashx', { data: JSON.stringify(request) }, function (a) {
// //displayTweets(a);
//});
//$.post(url, JSON.stringify(request), displaySearchResult, "json");
}
</script>`
Теперь создайте общий обработчик с именем SkrillHandler.ashx
'public void ProcessRequest(HttpContext context)
{
string responseText = "";
if (context.Request.QueryString["a"].ToString() == "register")
{
responseText = RegisterCard(context.Request.QueryString["data"].ToString());
}
context.Response.Write(responseText);
}
private string RegisterCard(string data)
{
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://psp.sandbox.dev.skrillws.net/v1/json/3e40a821/channelid_register_get/creditcard/");
httpWebRequest.ContentType = "text/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = data;
streamWriter.Write(json);
}
var responseText = "";
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
responseText = streamReader.ReadToEnd();
//Now you have your response.
//or false depending on information in the response
}
return responseText;
}
'
Вы получите ответ от Javascript RegCard Method.
Других решений пока нет …