Jump to content

Search the Community

Showing results for tags 'paypal'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 6 results

  1. Olá galera, Boa tarde! Estou com um probleminha em Ionic que está quebrando muito minha cabeça por dias. Método de pagamento do paypal aparece em meu site, mas não aparece no app ionic, o que será? Já tentei de tudo. Esse app faz comunicação via API do Woocommerce, e lá está habilitado a forma de pagamento com PayPal, porém só não aparece no app, já que na página de checkout no meu site, aparece. Segue o código da página de checkout do app: import { Component, Inject } from '@angular/core'; import { NavController, NavParams, AlertController, Loading, LoadingController, ToastController, App } from 'ionic-angular'; import { PlacedPage } from '../placed/placed'; import { PaymentGateway } from "../../models/payment-gateway.models"; import { Constants } from "../../models/constants.models"; import { WordpressClient } from '../../providers/wordpress-client.service'; import { Global } from '../../providers/global'; import { Subscription } from "rxjs/Subscription"; import { CartItem } from "../../models/cart-item.models"; import { OrderRequest } from "../../models/order-request.models"; import { Address } from "../../models/address.models"; import { ShippingLine } from "../../models/shipping-line.models"; import { UserResponse } from "../../models/user-response.models"; import { OrderResponse } from "../../models/order-response.models"; import { Currency } from "../../models/currency.models"; import { InAppBrowser, InAppBrowserOptions } from '@ionic-native/in-app-browser'; import { sha512 } from 'js-sha512'; import { APP_CONFIG, AppConfig } from '../../app/app.config'; import { OrderUpdateRequest } from '../../models/order-update-request.models'; import { Coupon } from '../../models/coupon.models'; import { HomePage } from '../home/home'; import { TranslateService } from '@ngx-translate/core'; import { Helper } from '../../models/helper.models'; import { ShippingMethod } from '../../models/shipping-method.models'; import { PayPal, PayPalPayment, PayPalConfiguration, PayPalPaymentDetails } from '@ionic-native/paypal'; @Component({ selector: 'page-payment', templateUrl: 'payment.html', providers: [WordpressClient] }) export class PaymentPage { private loading: Loading; private loadingShown: Boolean = false; private placedPagePushed: Boolean = false; private paymentDone: Boolean = false; private paymentFailAlerted: Boolean = false; private subscriptions: Array<Subscription> = []; private paymentGateways = new Array<PaymentGateway>(); private cartItems: Array<CartItem>; private selectedPaymentGateway; private selectedAddress: Address; private orderRequest: OrderRequest; private orderId = -1; private user: UserResponse; private totalItems = 0; private total = 0; private couponApplied = false; private pickupTime = 0; private deliveryTime = 0; private shippingChargeGlobal: number; constructor(@Inject(APP_CONFIG) private config: AppConfig, public translate: TranslateService, private iab: InAppBrowser, private toastCtrl: ToastController, public navCtrl: NavController, private navParams: NavParams, private service: WordpressClient, private loadingCtrl: LoadingController, private alertCtrl: AlertController, public appCtrl: App) { this.cartItems = this.navParams.get('cart'); this.totalItems = this.navParams.get('totalItems'); this.total = this.navParams.get('total'); this.shippingChargeGlobal = this.navParams.get('shippingChargeGlobal'); let paymentGateways = JSON.parse(window.localStorage.getItem(Constants.PAYMENT_GATEWAYS)); this.selectedAddress = JSON.parse(window.localStorage.getItem(Constants.SELECTED_ADDRESS)); if (paymentGateways != null) { for (let pg of paymentGateways) { if (pg.enabled && this.paymentImplemented(pg.id)) { this.paymentGateways.push(pg); } } } } ionViewWillLeave() { this.subscriptions.forEach((subscription: Subscription) => { subscription.unsubscribe(); }); this.dismissLoading(); } paymentImplemented(id) { return id === "pumcp" || id === "payuindia" || id === "cod"; } paymentMethod(paymentGateway) { this.selectedPaymentGateway = paymentGateway; } placedPage() { if (this.selectedPaymentGateway == null) { this.translate.get('field_error_payment_method').subscribe(value => { this.showToast(value); }); } else { this.orderRequest = new OrderRequest(); this.orderRequest.payment_method = this.selectedPaymentGateway.id ? this.selectedPaymentGateway.id : "cod"; this.orderRequest.payment_method_title = this.selectedPaymentGateway.title ? this.selectedPaymentGateway.title : "cod"; this.orderRequest.set_paid = false; this.orderRequest.billing = this.selectedAddress; this.orderRequest.shipping = this.selectedAddress; this.user = JSON.parse(window.localStorage.getItem(Constants.USER_KEY)); this.orderRequest.customer_id = String(this.user.id); let selectedShippingMethod: ShippingMethod = JSON.parse(window.localStorage.getItem(Constants.SELECTED_SHIPPING_METHOD)); if (selectedShippingMethod) { let shippingTotal = 0; for (let ci of this.cartItems) { if (!ci.product.shipping_cost_use_global && ci.product.shipping_cost != 1) shippingTotal = shippingTotal + ci.product.shipping_cost; } if (this.shippingChargeGlobal != -1) { shippingTotal = shippingTotal + this.shippingChargeGlobal; } this.orderRequest.shipping_lines = new Array<ShippingLine>(); this.orderRequest.shipping_lines.push(new ShippingLine(selectedShippingMethod.method_id, selectedShippingMethod.method_title, String(shippingTotal))); } this.orderRequest.line_items = this.cartItems; for (let item of this.orderRequest.line_items) { item.product = null; } this.translate.get('order_creating').subscribe(value => { this.presentLoading(value); }); let coupon: Coupon = JSON.parse(window.localStorage.getItem(Constants.SELECTED_COUPON)); let subscription: Subscription = this.service.createOrder(window.localStorage.getItem(Constants.ADMIN_API_KEY), this.orderRequest).subscribe(data => { this.orderId = data.id; if (coupon) { this.applyCoupon(coupon); } else { this.orderPlaced(); } }, err => { console.log(err); this.dismissLoading(); let orderId = Helper.extractOrderIdFromError(err); if (orderId != -1) { this.orderId = orderId; if (coupon) { this.applyCoupon(coupon); } else { this.orderPlaced(); } } else { this.translate.get('order_failed').subscribe(value => { this.showToast(value); }); this.appCtrl.getRootNav().setRoot(HomePage); } }); this.subscriptions.push(subscription); } } applyCoupon(coupon) { let couponSubs: Subscription = this.service.applyCouponCode(window.localStorage.getItem(Constants.ADMIN_API_KEY), String(this.orderId), coupon.code).subscribe(data => { this.couponApplied = true; window.localStorage.removeItem(Constants.SELECTED_COUPON); this.translate.get('confirm_order_coupon_applied').subscribe(value => { this.showToast(value); }); this.orderPlaced(); }, err => { console.log(err); this.dismissLoading(); }); this.subscriptions.push(couponSubs); } orderPlaced() { this.dismissLoading(); if (this.selectedPaymentGateway.id && this.selectedPaymentGateway.id === "cod") { this.clearCart(); this.navCtrl.setRoot(PlacedPage); } else if (this.selectedPaymentGateway.id === "pumcp" || this.selectedPaymentGateway.id === "payuindia") { this.initPayUMoney(); } else { this.translate.get('order_placed_cod').subscribe(value => { this.showToast(value); }); this.clearCart(); this.navCtrl.setRoot(PlacedPage); } } initPayUMoney() { let name = this.user.first_name && this.user.first_name.length ? this.user.first_name : this.user.username; let mobile = this.user.username; let email = this.user.email; let bookingId = String(Math.floor(Math.random() * (99 - 10 + 1) + 10)) + this.orderId; let productinfo = this.orderId; let salt = this.config.payuSalt; let key = this.config.payuKey; let amt = this.couponApplied ? this.total : this.totalItems; let string = key + '|' + bookingId + '|' + amt + '|' + productinfo + '|' + name + '|' + email + '|||||||||||' + salt; let encrypttext = sha512(string); //let url = "payumoney/payuBiz.html?amt=" + amt + "&name=" + name + "&mobileNo=" + mobile + "&email=" + email + "&bookingId=" + bookingId + "&productinfo=" + productinfo + "&salt=" + salt + "&key=" + key; let url = "payumoney/payuBiz.html?amt=" + amt + "&name=" + name + "&mobileNo=" + mobile + "&email=" + email + "&bookingId=" + bookingId + "&productinfo=" + productinfo + "&hash=" + encrypttext + "&salt=" + salt + "&key=" + key; let options: InAppBrowserOptions = { location: 'yes', clearcache: 'yes', zoom: 'yes', toolbar: 'no', closebuttoncaption: 'back' }; const browser: any = this.iab.create(url, '_blank', options); browser.on('loadstop').subscribe(event => { browser.executeScript({ file: "payumoney/payumoneyPaymentGateway.js" }); if (event.url == "http://localhost/success.php") { this.paymentSuccess(); browser.close(); } if (event.url == "http://localhost/failure.php") { this.paymentFailure(); browser.close(); } }); browser.on('exit').subscribe(event => { if (!this.paymentDone && !this.paymentFailAlerted) { this.paymentFailure(); } }); browser.on('loaderror').subscribe(event => { this.showToast('something_went_wrong'); }); } paymentFailure() { this.paymentFailAlerted = true; let subscription: Subscription = this.service.updateOrder(window.localStorage.getItem(Constants.ADMIN_API_KEY), String(this.orderId), new OrderUpdateRequest('cancelled')).subscribe(data => { }, err => { console.log(err); }); this.subscriptions.push(subscription); this.translate.get(['payment_fail_title', 'payment_fail_message', 'ok']).subscribe(res => { let alert = this.alertCtrl.create({ title: res.payment_fail_title, message: res.payment_fail_message, buttons: [{ text: res.ok, role: 'cancel', handler: () => { this.done(); console.log('Okay clicked'); } }] }); alert.present(); }); } paymentSuccess() { this.paymentDone = true; this.clearCart(); this.translate.get('just_a_moment').subscribe(value => { this.presentLoading(value); }); let subscription: Subscription = this.service.updateOrder(window.localStorage.getItem(Constants.ADMIN_API_KEY), String(this.orderId), { set_paid: true }).subscribe(data => { this.done(); }, err => { this.done(); this.paymentSuccess(); console.log(err); }); this.subscriptions.push(subscription); } done() { if (!this.placedPagePushed) { this.placedPagePushed = true; this.dismissLoading(); this.appCtrl.getRootNav().setRoot(this.paymentFailAlerted ? HomePage : PlacedPage); } } private presentLoading(message: string) { this.loading = this.loadingCtrl.create({ content: message }); this.loading.onDidDismiss(() => { }); this.loading.present(); this.loadingShown = true; } private dismissLoading() { if (this.loadingShown) { this.loadingShown = false; this.loading.dismiss(); } } private presentErrorAlert(msg: string) { let alert = this.alertCtrl.create({ title: 'Error', subTitle: msg, buttons: ['OK'] }); alert.present(); } showToast(message: string) { let toast = this.toastCtrl.create({ message: message, duration: 3000, position: 'bottom' }); toast.onDidDismiss(() => { console.log('Dismissed toast'); }); toast.present(); } clearCart() { let cartItems = new Array<CartItem>(); window.localStorage.setItem('cartItems', JSON.stringify(cartItems)); } }
  2. dtdigital

    Como saber se o boleto paypal foi pago?

    Ola! Gostaria de saber se tem como saber o status de um boleto só com o código do boleto?
  3. jokita18

    [Resolvido] erro no IPN paypal

    Olá Estou a tentar usar o Instant Payment Notification (IPN) do Paypal para conseguir que o meu sistema mude o status do pagamento assum que ele for realizado. o problema é que sempre que testo o ipn com a farramenta do paypal renorna INVALID. o paypal está a enviar através de $_POST os seguintes dados instantSun Jun 17 2018 02:32:34 GMT+0100PendingconfirmedverifiedJohnSmithbuyer@paypalsandbox.comTESTBUYERID01John SmithUnited StatesUS95131CASan Jose123 any streetseller@paypalsandbox.comseller@paypalsandbox.comseller@paypalsandbox.comUSsomethingAK-123413.042.02USD0.4412.349.34web_accept5190922782.1xyz123abc12341undefined sendo que pretendo receber a informação através deste código if ($_SERVER['REQUEST_METHOD'] != 'POST') { header('Location: index.php'); exit(); } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://ipnpb.sandbox.paypal.com/cgi-bin/webscr'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "cmd=_notify-validate&" . http_build_query($_POST)); $response = curl_exec($ch); curl_close($ch); file_put_contents('test.txt', $response); Se alguém souber como ajudar ficaria muito grato.
  4. João Assef

    PayPal não Finaliza a Transação

    Bom dia, Estou desenvolvendo um sistema e tentando fazer integração com Paypal, feito a integração, nada de erros aparentemente o pagamento conclui normalmente. Quando eu entro na conta do PayPal tanto de quem fez a compra ou da conta setada na API nada aparece e também não desconta nada do cartão de créditos. Não da erros o ACK retorna sucesso, faz o redirecionamento para página de retorno mas é como se não tivesse feito nada. Alguém ja passou por isso e pode me ajudar? Segue os códigos: sendNvpRequest.php <?php /** * Envia uma requisição NVP para uma API PayPal. * * @param array $requestNvp Define os campos da requisição. * @param boolean $sandbox Define se a requisição será feita no sandbox ou no * ambiente de produção. * * @return array Campos retornados pela operação da API. O array de retorno poderá * ser vazio, caso a operação não seja bem sucedida. Nesse caso, os * logs de erro deverão ser verificados. */ function sendNvpRequest(array $requestNvp, $sandbox = false) { //Endpoint da API $apiEndpoint = 'https://api-3t.' . ($sandbox? 'sandbox.': null); $apiEndpoint .= 'paypal.com/nvp'; //Executando a operação $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $apiEndpoint); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($requestNvp)); $response = urldecode(curl_exec($curl)); curl_close($curl); //Tratando a resposta $responseNvp = array(); if (preg_match_all('/(?<name>[^\=]+)\=(?<value>[^&]+)&?/', $response, $matches)) { foreach ($matches['name'] as $offset => $name) { $responseNvp[$name] = $matches['value'][$offset]; } } //Verificando se deu tudo certo e, caso algum erro tenha ocorrido, //gravamos um log para depuração. if (isset($responseNvp['ACK']) && $responseNvp['ACK'] != 'Success') { for ($i = 0; isset($responseNvp['L_ERRORCODE' . $i]); ++$i) { $message = sprintf("PayPal NVP %s[%d]: %s\n", $responseNvp['L_SEVERITYCODE' . $i], $responseNvp['L_ERRORCODE' . $i], $responseNvp['L_LONGMESSAGE' . $i]); error_log($message); } }else{ //sucesso } return $responseNvp; } setExpressCheckout.php <?php //Incluindo o arquivo que contém a função sendNvpRequest require 'sendNvpRequest.php'; //configuração require 'configuracao.php'; //Campos da requisição da operação SetExpressCheckout, como ilustrado acima. $requestNvp = array( 'USER' => $user, 'PWD' => $pswd, 'SIGNATURE' => $signature, 'VERSION' => '108.0', 'METHOD'=> 'SetExpressCheckout', 'PAYMENTREQUEST_0_PAYMENTACTION' => 'SALE', 'PAYMENTREQUEST_0_AMT' => '15.00', 'PAYMENTREQUEST_0_CURRENCYCODE' => 'BRL', 'PAYMENTREQUEST_0_ITEMAMT' => '15.00', 'PAYMENTREQUEST_0_INVNUM' => '1', 'L_PAYMENTREQUEST_0_NAME0' => 'Produto teste', 'L_PAYMENTREQUEST_0_DESC0' => 'teste teste', 'L_PAYMENTREQUEST_0_AMT0' => '15.00', 'L_PAYMENTREQUEST_0_QTY0' => '1', 'L_PAYMENTREQUEST_0_ITEMAMT' => '15.00', 'RETURNURL' => 'https://meusite.com.br/retorno.php', 'CANCELURL' => 'https://meusite.com.br/cancelar.php', 'BUTTONSOURCE' => 'EMPRESA-X' ); //Envia a requisição e obtém a resposta da PayPal $responseNvp = sendNvpRequest($requestNvp, $sandbox); //Se a operação tiver sido bem sucedida, redirecionamos o cliente para o //ambiente de pagamento. if (isset($responseNvp['ACK']) && $responseNvp['ACK'] == 'Success') { $query = array( 'cmd' => '_express-checkout', 'token' => $responseNvp['TOKEN'] ); $redirectURL = sprintf('%s?%s', $paypalURL, http_build_query($query)); header('Location: ' . $redirectURL); } else { //Opz, alguma coisa deu errada. //Verifique os logs de erro para depuração. } Obrigado
  5. viniciussvl

    Integração com PayPal, é possível?

    Olá pessoal, estou tendo dificuldades em pensar numa lógica que resolva esse problema e gostaria de saber se o paypal vai dar suporte para ela. Tenho o seguinte caminho: Resumindo, o pagamento que o cliente fizer para o PayPal tem que ir R$30,00 para a conta principal do site e o restante para a conta do estúdio no PayPal. É possível fazer isso utilizando o PayPal? Não consegui encontrar nada relacionado, o que a gente sempre faz é usar as Credenciais da API (user, password, token) do paypal para receber os pagamentos do cliente, sempre que o cliente efetua o pagamento a gente recebe numa conta só, mas agora é totalmente diferente, o cliente tem que pagar para o estúdio e a taxa de 30 reais tem que ir para a conta do site no PayPal. O que precisamos fazer é receber os pagamentos no PayPal e ele fazer o meio de campo, saber de quem é aquela grana e mandar para o usuário.
  6. Estou implantando um sistema, onde o cliente, depois de comprar uma quantidade de créditos, é inserido em sua conta no banco de dados. Mas estou tendo um problema de duplicação de créditos no meu script PHP. <?php header('Access-Control-Allow-Origin: *'); include '../../init.php'; $sql = "SELECT *, compras.id_usuario AS id_user_compra, compras.id AS id_compra FROM compras LEFT JOIN creditos ON creditos.id_usuario = compras.id_usuario WHERE compras.entregue = 'nao' AND compras.payment_status = 'Completed'"; $query = $mysqli->query($sql); while ($ln = $query->fetch_array()){ $id_usuario = $ln['id_user_compra']; $id_compra = $ln['id_compra']; $creditos = preg_replace("/[^0-9\s]/", "", $ln['item_name']); $sql_up = "UPDATE compras SET entregue = 'sim' WHERE id = '$id_compra'"; $query_up = $mysqli->query($sql_up); $sql_ins = "INSERT INTO creditos (id_usuario, credito, debito) VALUES ('$id_usuario', '$creditos', '0')"; $query_ins = $mysqli->query($sql_ins); } ?> Nessa minha consulta acima, ele verifica as compras feitas, com as determinadas condições, mas mesmo assim, às vezes, ele insere uma compra 2 ou 3 vezes na tabela créditos. Estou usando o Trabalho CRON, de 5 em 5 minutos para rodar o script. Como posso corrigir esse problema? Desde já agradeço!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.