整合付款结帐Stripe
。
使用JavaScript Stripe处理程序,在交易中应用Stripe费用
在向客户收费后,它会返回令牌。使用此令牌,我们可以进行实际付款。
这是对付款功能的AJAX调用:
var StripeHelper =
{
payProceed: function (token) {
try {
var _ajax = new AjaxHelper("/Services/Service.asmx/PaymentProceed");
_ajax.Data = "{token:" + JSON.stringify(token) + "}";
_ajax.OnInit = function () { PageHelper.loading(true); };
_ajax.OnSuccess = function (data) {
console.log(data.d);
PageHelper.loading(false);
window.location('/payment-success');
};
_ajax.Init();
}
catch (e) {
PageHelper.loading(false);
}
}
}
这是我的 TEST服务器上的Web方法,它将令牌传递给Stripe服务器:
[WebMethod(EnableSession = true)]
public string PaymentProceed(string token)
{
Session["PAYMENT_MODE"] = PaymentContants.PaymentVia.Stripe;
var myCharge = new StripeChargeCreateOptions();
myCharge.AmountInCents = 100;
myCharge.Currency = "USD";
myCharge.Description = "Charge for property sign and postage";
myCharge.TokenId = token;
string key = "sk_test_Uvk2cH***********Fvs"; //test key
var chargeService = new StripeChargeService(key);
StripeCharge stripeCharge = new StripeCharge();
//Error is coming for below line -->
stripeCharge = chargeService.Create(myCharge);
//No token found
return stripeCharge.Id;
}
如果我在POSTMAN上POST POST AJAX,它会显示
意想不到的'在JSON 。
一般来说意味着什么,特别是在这种情况下?
答案 0 :(得分:1)
问题在这一行
_ajax.Data = "{token:" + JSON.stringify(token) + "}";
您应该使用
var token = '"Your token with S goes here"';
_ajax.Data = "{token:" + JSON.stringify(token) + "}";
因为只有令牌是无效的json,并且您正在尝试解析它
请参见Reference