ข้อผิดพลาดที่อยู่การจัดส่ง Paypal


12

ฉันพยายามที่จะทดสอบร้านค้าของฉันด้วยPayPal Sandbox ฉันได้รับข้อผิดพลาด 2 อย่างในสถานการณ์ต่าง ๆ 2 สถานการณ์
1.ทุกอย่างทำงานได้ดีจนถึงคำสั่งซื้อใน PayPal จากนั้นรับข้อความ:

ขออภัย PayPal ไม่อนุญาตให้ผู้อยู่อาศัยในสหรัฐอเมริกาจัดส่งสินค้าที่ซื้อ (ทุกที่)

2.สถานการณ์ที่สองคือเมื่อฉันเปลี่ยนที่อยู่จัดส่งผู้ซื้อเป็นสหรัฐอเมริกา ฉันได้รับข้อผิดพลาดดังต่อไปนี้ในหน้าแรกของ paypal:

ไม่สามารถประมวลผลการชำระเงิน โปรดติดต่อผู้ขายเนื่องจากที่อยู่สำหรับจัดส่งที่ผู้ขายระบุนั้นไม่ถูกต้องและผู้ขายขอให้คุณจัดส่งคำสั่งซื้อของคุณไปยังที่อยู่ดังกล่าว

ฉันพบแบบฟอร์มที่นี่ว่านี่เป็นปัญหาสำหรับหลาย ๆ คน จากที่นี่ผมพบว่ามีบางสิ่งที่จะทำอย่างไรกับaddress_overrideวิธีการและนี่เป็นข้อเสนอแนะที่จะปิด
มีวิธีปิดใน Magento หรือไม่? ปลอดภัยไหมที่จะปิด? ทำไมมันมีอยู่ในสถานที่แรก? หรือมีทางออกอื่นอีกบ้าง? :

ฉันพบวิธี address_override ใน magento at

\ app \ code \ core \ Mage \ Paypal \ Model \ Api \ Standard.php บรรทัด: 238 $ ขอ ['address_override'] = 1;

เปลี่ยนเป็น'0'และตอนนี้กล่องจดหมาย PayPal ทำงานได้ ไม่มีข้อผิดพลาดอีกต่อไป แต่ฉันจะทำสิ่งนี้ได้อย่างไรโดยไม่ต้องเปลี่ยนไฟล์หลักของวีโอไอพี และปลอดภัยหรือไม่


1
ฉันอยากจะชี้ให้เห็นถึงสิ่งที่มากกว่าสำหรับคนอื่น ๆ ที่ประสบกับการทดสอบ Paypal ฉันได้มันทำงานหลังจากปิด address_override แต่แล้วฉันก็ติดสถานะ 'ตรวจสอบการชำระเงิน' ใน paypal ปรากฎว่าคุณต้องมีสกุลเงินเดียวกันในการตั้งค่า Magento เช่นเดียวกับที่คุณมีในบัญชี Paypal ของ Sandbox มิฉะนั้น paypal จะไม่ยิง IPN เพื่อให้การสั่งซื้อเสร็จสมบูรณ์
ruuter

คำตอบ:


7

คุณสามารถทำสิ่งต่อไปนี้หากคุณไม่ต้องการเปลี่ยนไฟล์หลัก:

  1. สร้างโฟลเดอร์Mage/Paypal/Model/Apiภายใต้/app/code/local/
  2. คัดลอกไฟล์Standard.phpจาก/app/code/core/Mage/Paypal/Model/Api
  3. วางไฟล์Standard.phpไปที่/app/code/local/Mage/Paypal/Model/Api
  4. เปลี่ยนบรรทัด238จาก
$ request ['address_override'] = 1;

ถึง

$ request ['address_override'] = 0;

7

address_overrideพารามิเตอร์จะมีการตั้งค่าที่อยู่การจัดส่งสินค้าร้านวีโอไอพีของคุณจะถูกส่งไปยัง PayPal เป็นที่อยู่จัดส่งแทนการที่อยู่จัดส่งของลูกค้าที่บันทึกไว้ที่ด้านข้างของ PayPal

หากaddress_overrideตั้งค่าเป็น1ซึ่งเป็นกรณีใน Magento แล้ว Paypal จะตรวจสอบที่อยู่ในการจัดส่ง หากพารามิเตอร์ถูกตั้งค่า0เป็นไม่ควร ดังนั้นตรวจสอบให้แน่ใจว่าคุณส่งที่อยู่ที่ถูกต้องและมีรูปแบบที่ถูกต้องไปยัง Paypal

ฉันพบปัญหานี้เนื่องจากค่า "สถานะ" ขาดหายไป Paypal ยอมรับเฉพาะตัวย่อของรัฐเช่น "CA" สำหรับ "California" สำหรับประเทศอื่น ๆ รัฐอาจไม่พร้อมใช้งานในการติดตั้ง Magento โดยค่าเริ่มต้นเช่นเม็กซิโก

คุณได้ปรับแต่งช่องที่อยู่จัดส่งใด ๆ ในการชำระเงินของคุณ?


2

ลองดูคำตอบของ Stack Overflow เหล่านี้:
/programming/5978153
/programming/11281543

โดยทั่วไปวิธีที่รวดเร็วและสกปรกคือการคัดลอกไฟล์ทั้งหมดไปยังapp/code/local/Mageโลกของคุณแต่จะดียิ่งขึ้นสำหรับการอัปเกรดหากคุณสามารถโอเวอร์โหลดเพียงฟังก์ชันเดียวอย่างเดียว

นอกจากนี้หากยังไม่ได้ใช้ Github สำหรับการควบคุมเวอร์ชัน มันช่วยฉันได้มากกว่าหนึ่งครั้ง! คุณสามารถติดตามการเปลี่ยนแปลงทั้งหมดได้อย่างง่ายดายแม้ว่าคุณจะไม่ดีและแก้ไขไฟล์หลัก


ฉันประหลาดใจที่ไม่มีวิธีที่ดีกว่าในการทำเช่นนี้ไม่ต้องพูดถึงความแปลกประหลาดของปัญหานี้ที่มีอยู่ใน Magento ตั้งแต่แรก ควรมีตัวเลือกในส่วนท้ายหากข้อผิดพลาดดังกล่าวดูเหมือนเป็นเรื่องปกติในบางเวลา ฉันเดาว่าฉันจะใช้วิธีโลคอลไฟล์สกปรกทำให้เกิดการเขียนโมดูลใหม่สำหรับมันดูเหมือนจะมากเกินไปสำหรับตอนนี้ :) ฉันจะขุดลึกลงไป ... tnx ต่อไป!
ruuter

ฉันไม่แปลกใจกับสิ่งที่วีโอไอพีทำอีกต่อไป
Chris K

1
ที่ไม่ได้สัญญา: /
ruuter
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.