2017-04-16 7 views

答えて

1

を保存することができ、あなたが作成充電APIを使用してcustomerに顧客ID cus_XXXXを渡し、それを充電することができますどのように

string stripeKey = ""; 

var guid = Guid.Parse(userGuid); 
var systemUser = _systemUserRepository.Get(a => a.UserGuid == guid).FirstOrDefault(); 
var accountProfile = _accountProfileRepository.Get(a => a.SystemUser == systemUser.ID).FirstOrDefault(); 
var customer = _clientRepository.Get(a => a.AccountProfile == accountProfile.ID).FirstOrDefault(); 

var myCustomer = new StripeCustomerCreateOptions(); 
myCustomer.Email = customer.AccountProfile1.SystemUser1.Email; 
myCustomer.Description = customer.AccountProfile1.FirstName + " " + customer.AccountProfile1.LastName; 

var customerService = new StripeCustomerService(stripeKey); 
StripeCustomer stripeCustomer = customerService.Create(myCustomer); 

var myCard = new StripeCardCreateOptions(); 

// setting up the card 
myCard.SourceCard = new SourceCard 
{ 
    Number = cardNumber, 
    ExpirationYear = expireYear, 
    ExpirationMonth = expireMonth, 
}; 

var cardService = new StripeCardService(stripeKey); 
StripeCard stripeCard = cardService.Create(stripeCustomer.Id, myCard); 

パラメータとパラメータのカードID card_YYYyが含まれています。 Stripe.netでは、コードがhere文書化され、次のようになります。

var myCharge = new StripeChargeCreateOptions(); 
myCharge.Amount = 5153; 
myCharge.Currency = "usd"; 
myCharge.SourceTokenOrExistingSourceId = stripeCard.Id; 
myCharge.CustomerId = stripeCustomer.Id; 

var chargeService = new StripeChargeService(); 
StripeCharge stripeCharge = chargeService.Create(myCharge); 

それはあなたの現在のコードは、直接APIを介してカード情報を送信していることに注意することも重要です。つまり、サーバー上でカード番号を取得します。これは悪い考えで、PCI complianceを破ります。あなたは本当に統合を変更し、最初にクライアント側のカードの詳細をトークン化する必要があります。

ElementsまたはStripe Checkoutクライアント側でカードの詳細をStripeに直接送信し、サーバーに安全に送信して顧客を作成するために固有のカードトークン(tok_XXX)を取得する必要があります。

関連する問題