Lỗi địa chỉ giao hàng Paypal


12

Tôi đang thử kiểm tra cửa hàng của mình với PayPal Sandbox . Tôi nhận được 2 lỗi khác nhau trong 2 tình huống khác nhau.
1. Tất cả hoạt động tốt cho đến khi hoàn thành thứ tự trong PayPal. Sau đó nhận được tin nhắn:

Rất tiếc, PayPal không cho phép cư dân Hoa Kỳ chuyển hàng đến (bất cứ nơi nào)

2. tình huống thứ hai là khi tôi đổi địa chỉ giao hàng của người mua sang Mỹ. Tôi nhận được lỗi sau, trên trang đầu tiên trong paypal:

Không thể xử lý thanh toán. Vui lòng liên hệ với người bán vì địa chỉ giao hàng do người bán cung cấp không hợp lệ và người bán đã yêu cầu đơn đặt hàng của bạn phải được chuyển đến địa chỉ đó.

Tôi phát hiện ra hình thức ở đây , rằng điều này dường như là vấn đề đối với nhiều người. Từ đây tôi phát hiện ra rằng có một cái gì đó để làm với phương thức address_overrideở đây được đề xuất để tắt nó.
Có cách nào để tắt nó trong Magento không? Có an toàn để tắt nó? Tại sao nó ở đó ở nơi đầu tiên? hoặc những giải pháp khác hiện có? :

Tôi tìm thấy phương thức address_override trong magento tại

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

Đã thay đổi thành '0' và bây giờ hộp cát paypal hoạt động. Không còn lỗi nữa. Nhưng làm thế nào tôi có thể làm điều này mà không thay đổi các tập tin lõi magento? và nó có an toàn không?


1
Tôi muốn chỉ ra một cái gì đó nhiều hơn cho những người khác đang phải chịu đựng với thử nghiệm Paypal. Tôi đã làm cho nó hoạt động sau khi tắt address_override, nhưng sau đó tôi bị kẹt trong trạng thái 'Đánh giá thanh toán' trong paypal. Hóa ra bạn phải có cùng loại tiền trong cài đặt Magento như bạn có trong tài khoản hộp cát Paypal. Nếu không, paypal không bao giờ kích hoạt IPN để hoàn thành đơn hàng.
hủy hoại

Câu trả lời:


7

Bạn có thể làm như sau nếu bạn không muốn thay đổi các tệp cốt lõi:

  1. Tạo thư mục Mage/Paypal/Model/Apidưới/app/code/local/
  2. Sao chép tập tin Standard.phptừ/app/code/core/Mage/Paypal/Model/Api
  3. Dán tập tin Standard.phpvào/app/code/local/Mage/Paypal/Model/Api
  4. Thay đổi dòng 238 từ
$ request ['address_override'] = 1;

đến

$ request ['address_override'] = 0;

7

Các address_overridetham số là có để thiết lập các địa chỉ vận chuyển hàng Magento của bạn được gửi đến Paypal như vận chuyển địa chỉ thay vì địa chỉ vận chuyển của khách hàng lưu ở bên cạnh Paypal của.

Nếu address_overrideđược đặt thành 1, đó là trường hợp trong Magento, thì Paypal sẽ xác thực địa chỉ giao hàng. Nếu tham số được đặt thành 0, nó được cho là không. Vì vậy, hãy đảm bảo bạn đang gửi một địa chỉ hợp lệ và được định dạng tốt tới Paypal.

Tôi gặp vấn đề này vì một giá trị "trạng thái" bị thiếu. Paypal chỉ chấp nhận các chữ viết tắt của tiểu bang như "CA" cho "California". Đối với các quốc gia khác, các quốc gia có thể không có sẵn trong cài đặt Magento của bạn theo mặc định, ví dụ như đối với Mexico.

Bạn đã tùy chỉnh bất kỳ trường địa chỉ giao hàng trong thanh toán của bạn?


2

Kiểm tra các câu trả lời Stack Overflow này:
/programming/5978153
/programming/11281543

Về cơ bản, một cách nhanh chóng và bẩn thỉu là sao chép toàn bộ tệp vào app/code/local/Magethế giới của bạn , nhưng sẽ tốt hơn cho việc nâng cấp nếu bạn có thể quá tải chỉ một chức năng duy nhất.

Ngoài ra, nếu chưa có, vui lòng sử dụng Github để kiểm soát phiên bản. Nó đã cứu tôi hơn một lần! Bạn có thể theo dõi tất cả các thay đổi một cách dễ dàng, ngay cả khi bạn đang xấu và chỉnh sửa các tệp cốt lõi.


Tôi ngạc nhiên không có cách nào tốt hơn để làm điều này, chưa kể đến sự kỳ lạ của vấn đề này tồn tại ở Magento ngay từ đầu. Nên có tùy chọn trong back-end nếu những lỗi như vậy dường như là phổ biến trong một thời gian bây giờ. Tôi đoán tôi sẽ sử dụng cách tiếp cận tệp cục bộ bẩn, vì viết mô-đun mới cho nó có vẻ hơi quá bây giờ :) tôi sẽ đào sâu hơn ... dù sao đi nữa!
hủy hoại

Tôi không còn ngạc nhiên bởi bất cứ điều gì Magento làm.
Chris K

1
điều đó không có vẻ hứa hẹn: /
ruuter
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.