Я использую Stripe тоже с быстрой и ASP.NET Web API на сервере, я поставил полный proccess я использую, который прекрасно работает:
1) Сервер - ASP.NET Web API с библиотекой полоса:
[Route("PostCharge")]
[HttpPost]
[ResponseType(typeof(Ride))]
public async Task<IHttpActionResult> PostCharge(StripeChargeModel model)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var chargeId = await ProcessPayment(model);
return Ok(chargeId);
}
private async Task<string> ProcessPayment(StripeChargeModel model)
{
return await Task.Run(() =>
{
var myCharge = new StripeChargeCreateOptions
{
Amount = (int)(model.Amount * 100),
Currency = "usd",
Description = model.CardHolderName + "Charge",
StatementDescriptor = model.CardHolderName,
SourceTokenOrExistingSourceId = model.Token
};
var chargeService = new StripeChargeService("sk_test_laskdjfasdfafasd");
var stripeCharge = chargeService.Create(myCharge);
return stripeCharge.Id;
});
}
2) 3 Swift с библиотекой Alamofire и нашивки:
STPAPIClient.shared().createToken(withCard: card, completion: { (token, error) -> Void in
if error != nil {
self.hideProgress()
self.showAlert(self, message: "Internet is not working")
print(error)
return
}
let params : [String : AnyObject] = ["Token": token!.tokenId as AnyObject, "Amount": paymentAmount as AnyObject, "CardHolderName": AppVars.RiderName as AnyObject]
Alamofire.request(url + "/api/postcharge", method: .post, parameters: params, encoding: JSONEncoding.default, headers: [ "Authorization": "Bearer " + token]).responseJSON { response in
switch response.result {
case .failure(_):
self.hideProgress()
self.showAlert(self, message: "Internet is not working")
case .success(_):
let dataString:NSString = NSString(data: response.data!, encoding: String.Encoding.utf8.rawValue)!
if (dataString as? String) != nil {
self.showAlert(self, message: "Your payment has been successful")
} else {
self.showAlert(self, message: "Your payment has not been successful. Please, try again")
}
}
}
})
3) быстрое 3, вставить линию в применении AppDelegate:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
STPPaymentConfiguration.shared().publishableKey = "pk_test_xxasdfasdfasdf"
return true
}
спасибо, что я посмотрю на этот вечер ... и посмотрю, что я могу сделать из этого. Я заметил, что вы вызываете вызов token и сервер вместе. – BostonMacOSX
Хорошо ... сомневаюсь, что я здесь, и если это поможет вам ... принять ваш голос ... –