コード例 #1
0
        public async Task <IActionResult> Success([FromQuery(Name = "paymentId")] string paymentId, [FromQuery(Name = "PayerId")] string payerId)
        {
            var payPalApi = new PayPalApiService(_configuration);
            PayPalPaymentExecutedResponse result = await payPalApi
                                                   .ExecutedPayment(paymentId, payerId);

            return(View("~/Views/Home/Success.cshtml"));
        }
コード例 #2
0
        public async Task <PayPalPaymentExecutedResponse> ExecutePaypalPaymentAsync(HttpClient httpClient, PaypalAccessToken paypalAccessToken, string paymentId, string payerId)
        {
            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, $"/v1/payments/payment/{paymentId}/execute");

            request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", paypalAccessToken.access_token);

            var payment = JObject.FromObject(new
            {
                payer_id = payerId
            });

            request.Content = new StringContent(JsonConvert.SerializeObject(payment), Encoding.UTF8, "application/json");

            HttpResponseMessage response = await httpClient.SendAsync(request);

            string content = await response.Content.ReadAsStringAsync();

            PayPalPaymentExecutedResponse payPalPaymentExecutedResponse = JsonConvert.DeserializeObject <PayPalPaymentExecutedResponse>(content);

            return(payPalPaymentExecutedResponse);
        }
コード例 #3
0
        public async Task <IActionResult> Success([FromQuery(Name = "paymentId")] string paymentId, [FromQuery(Name = "payerID")] string payerID)
        {
            var payPalAPI = new PayPalAPI(configuration);
            PayPalPaymentExecutedResponse result = await payPalAPI.executedPayment(paymentId, payerID);

            Debug.WriteLine("Transaction Details");
            Debug.WriteLine("cart: " + result.cart);
            Debug.WriteLine("create_time: " + result.create_time.ToLongDateString());
            Debug.WriteLine("id: " + result.id);
            Debug.WriteLine("intent: " + result.intent);
            Debug.WriteLine("links 0 - href: " + result.links[0].href);
            Debug.WriteLine("links 0 - method: " + result.links[0].method);
            Debug.WriteLine("links 0 - rel: " + result.links[0].rel);
            Debug.WriteLine("payer_info - first_name: " + result.payer.payer_info.first_name);
            Debug.WriteLine("payer_info - last_name: " + result.payer.payer_info.last_name);
            Debug.WriteLine("payer_info - email: " + result.payer.payer_info.email);
            Debug.WriteLine("payer_info - billing_address: " + result.payer.payer_info.billing_address);
            Debug.WriteLine("payer_info - country_code: " + result.payer.payer_info.country_code);
            Debug.WriteLine("payer_info - payer_id: " + result.payer.payer_info.payer_id);
            Debug.WriteLine("state:" + result.state);
            ViewBag.result = result;
            return(View());
        }
コード例 #4
0
        public async Task ExecutePaymentAsync(PayPalExecutePayment payment)
        {
            var url            = ExecutePaymentUrl(payment.PaymentId);
            var request        = new HttpRequestMessage(HttpMethod.Post, url);
            var executeRequest = new PayPalPaymentExecuteRequest
            {
                PayerId = payment.PayerId
            };

            request.Content = new StringContent(JsonConvert.SerializeObject(executeRequest), Encoding.UTF8,
                                                "application/json");

            var response = await _http.SendAsync(request);

            var content = await response.Content.ReadAsStringAsync();

            PayPalPaymentExecutedResponse executedPayment =
                JsonConvert.DeserializeObject <PayPalPaymentExecutedResponse>(content);

            if (!String.IsNullOrWhiteSpace(executedPayment.ErrorName))
            {
                throw new PaypalException(executedPayment.ErrorMessage, null, executedPayment.InformationLink);
            }
        }