Kesalahan alamat pengiriman Paypal

12

Saya mencoba menguji toko saya dengan PayPal Sandbox . Saya mendapatkan 2 kesalahan berbeda dalam 2 situasi berbeda.
1. Semua berfungsi dengan baik hingga menyelesaikan pesanan di PayPal. Kemudian dapatkan pesan:

Maaf, PayPal tidak mengizinkan penduduk Amerika Serikat untuk mengirimkan pembelian ke (di mana saja)

2. Situasi kedua adalah ketika saya kemudian mengubah alamat pengiriman pembeli saya ke AS. Saya mendapatkan kesalahan berikut, pada halaman pertama di paypal:

Tidak dapat memproses pembayaran. Silakan hubungi pedagang karena alamat pengiriman yang diberikan oleh pedagang tidak valid, dan pedagang telah meminta agar pesanan Anda harus dikirim ke alamat itu.

Saya menemukan formulir di sini , bahwa ini tampaknya menjadi masalah bagi banyak orang. Dari sini saya menemukan bahwa ada sesuatu yang harus dilakukan dengan metode address_override dan di sini disarankan untuk mematikannya.
Apakah ada cara untuk mematikannya di Magento? Apakah aman untuk mematikannya? Mengapa ada di tempat pertama? atau solusi apa yang ada di luar sana? :

Saya menemukan metode address_override di magento di

\ app \ code \ core \ Mage \ Paypal \ Model \ Api \ Standard.php baris: 238 $ request ['address_override'] = 1;

Mengubahnya menjadi '0' dan sekarang kotak pasir paypal berfungsi. Tidak ada kesalahan lagi. Tetapi bagaimana saya bisa melakukan ini tanpa mengubah file inti magento? dan apakah itu aman?

perusak
sumber
1
Saya ingin menunjukkan sesuatu yang lebih kepada orang lain di luar sana yang menderita pengujian Paypal. Saya berhasil setelah mematikan address_override, tetapi kemudian saya terjebak pada status 'Ulasan Pembayaran' di paypal. Ternyata Anda harus memiliki mata uang yang sama dalam pengaturan Magento seperti yang Anda miliki di akun kotak pasir Paypal. Kalau tidak, paypal tidak pernah memecat IPN untuk menyelesaikan pesanan.
ruuter

Jawaban:

7

Anda dapat melakukan hal berikut jika Anda tidak ingin mengubah file inti:

  1. Buat folder di Mage/Paypal/Model/Apibawah/app/code/local/
  2. Salin file Standard.phpdari/app/code/core/Mage/Paypal/Model/Api
  3. Tempel file Standard.phpke/app/code/local/Mage/Paypal/Model/Api
  4. Ubah baris 238 dari
$ request ['address_override'] = 1;

untuk

$ request ['address_override'] = 0;
Omar Faruk Sharif
sumber
7

The address_overrideparameter yang ada untuk mengatur alamat pengiriman toko Magento Anda mengirim ke Paypal sebagai alamat pengiriman bukan alamat pengiriman pelanggan disimpan di sisi Paypal.

Jika address_overridediatur ke 1, yang merupakan kasus di Magento, maka Paypal akan memvalidasi alamat pengiriman. Jika parameter diatur ke 0, seharusnya tidak. Jadi pastikan Anda mengirim alamat yang valid dan berformat baik ke Paypal.

Saya mengalami masalah ini karena nilai "keadaan" yang hilang. Paypal hanya menerima singkatan negara seperti "CA" untuk "California". Untuk negara lain, status mungkin tidak tersedia di instalasi Magento Anda secara default, misalnya untuk Meksiko.

Apakah Anda menyesuaikan bidang alamat pengiriman di checkout Anda?

mattsches
sumber
2

Lihat jawaban Stack Overflow ini:
/programming/5978153
/programming/11281543

Pada dasarnya, cara cepat dan kotor adalah menyalin seluruh file ke app/code/local/Magedunia Anda , tetapi akan lebih baik untuk upgrade jika Anda bisa membebani hanya satu fungsi saja.

Juga, jika belum, silakan gunakan Github untuk kontrol versi. Itu telah menyelamatkan saya lebih dari sekali! Anda dapat melacak semua perubahan dengan mudah, bahkan jika Anda sedang buruk dan mengedit file inti.

Chris K
sumber
Saya terkejut tidak ada cara yang lebih baik melakukan ini, belum lagi keanehan dari masalah yang ada di Magento di tempat pertama. Seharusnya ada opsi di back-end jika kesalahan seperti itu tampak umum untuk beberapa waktu sekarang. Saya kira saya akan menggunakan pendekatan file lokal kotor, karena menulis modul baru untuk itu tampaknya agak terlalu banyak untuk sekarang :) saya akan menggali lebih dalam ... tnx toh!
ruuter
Saya tidak lagi terkejut dengan apa pun yang dilakukan Magento.
Chris K
1
kedengarannya tidak menjanjikan: /
ruuter