เคล็ดลับในการแก้ไขปัญหาเกี่ยวกับลิงก์และปุ่มชำระเงิน PayPal
ฉันได้รับข้อผิดพลาด และปุ่มไม่แสดงบนเว็บไซต์
- ตรวจสอบว่าการเชื่อมต่ออินเทอร์เน็ตของคุณใช้การได้
- ไปที่หน้าอื่นๆ บนเว็บไซต์ของคุณและตรวจสอบว่าระบบโหลดหน้าอย่างถูกต้อง
- ไปที่หน้าปุ่ม PayPal แล้วตรวจสอบรายการต่อไปนี้
* ปุ่มดังกล่าวแสดงอยู่ใต้ส่วน “ปุ่มที่บันทึกไว้” หรือไม่
* เลือก “แก้ไข” และตรวจสอบให้แน่ใจว่าโค้ดของ ปุ่มตรงกับสิ่งที่อยู่ในเว็บไซต์ของคุณ - คลิกขวาที่หน้าสินค้าของคุณ (หน้าที่คุณวางโค้ดของปุ่ม) แล้วคลิก “ตรวจสอบ” ไปที่แท็บคอนโซล (คุณจะเห็นแท็บนี้อยู่ด้านบน) คุณอาจเห็นข้อผิดพลาดเกี่ยวกับ PIN สำหรับการบริการลูกค้า หากคุณได้ปรับใช้นโยบายความปลอดภัยของเนื้อหา คุณอาจเห็นข้อผิดพลาดเกี่ยวกับ PIN สำหรับการบริการลูกค้า เช่น (ตัวอย่างข้อผิดพลาดเกี่ยวกับ PIN สำหรับการบริการลูกค้า)
- การโหลดสคริปต์ 'https://www.paypal.com/sdk/js**' ถูกปฏิเสธเนื่องจากละเมิดคําสั่งนโยบายความปลอดภัยของเนื้อหาต่อไปนี้: "default-src 'self'" โปรดทราบว่า 'script-src-elem' ไม่ได้ถูกตั้งค่าไว้อย่างชัดเจน ดังนั้น 'default-src' จะถูกใช้เป็น fallback
- การเชื่อมต่อกับ 'https://www.paypal.com/sdk/js**' ถูกปฏิเสธเนื่องจากละเมิดคําสั่งนโยบายความปลอดภัยของเนื้อหาต่อไปนี้: "default-src 'self'" โปรดทราบว่า 'connect-src' ไม่ได้ถูกตั้งค่าไว้อย่างชัดเจน ดังนั้น 'default-src' จะถูกใช้เป็น fallback
- การดําเนินการสคริปต์แบบอินไลน์ถูกปฏิเสธเนื่องจากละเมิดข้อบังคับของนโยบายความปลอดภัยเนื้อหาต่อไปนี้: "script-src https://*.paypal.com" ต้องใช้คําสําคัญ 'unsafe-inline' แฮช ('sha256-WYDWDPwB8j2VePYrqy38aHPcJLsasO//lnXymmxscUk=') หรือ nonce ('nonce-...') เพื่อให้สามารถดําเนินการแบบอินไลน์ได้
- การโหลดภาพ 'https://tracking.qa.paypal.com/webapps/tracking/ts?**' ถูกปฏิเสธเนื่องจากละเมิดคําสั่งนโยบายความปลอดภัยของเนื้อหาต่อไปนี้: "default-src 'self'" โปรดทราบว่า 'img-src' ไม่ได้ถูกตั้งค่าไว้อย่างชัดเจน ดังนั้น 'default-src' จะถูกใช้เป็น fallback
- การสร้างเฟรม 'https://www.paypal.com/' ถูกปฏิเสธเนื่องจากละเมิดคําสั่งนโยบายความปลอดภัยของเนื้อหาต่อไปนี้: "default-src 'self'" โปรดทราบว่า 'frame-src' ไม่ได้ถูกตั้งค่าไว้อย่างชัดเจน ดังนั้น 'default-src' จะถูกใช้เป็น fallback
คุณสามารถเพิ่มรายการด้านล่างเพื่อแก้ไขข้อผิดพลาดด้านบนได:
ตัวเลือก-1 (HTML): ถ้า CSP ของคุณได้รับการกําหนดค่าในไฟล์ HTML ให้ใช้โค้ดด้านล่างเพื่อแทนที่โค้ด CSP ของคุณ
<meta http-equiv="Content-Security-Policy" content="default-src 'self';
script-src 'unsafe-inline' https://*.paypal.com https://*.paypalobjects.com;
style-src 'unsafe-inline' https://*.paypal.com; connect-src
https://*.paypal.com; frame-src https://*.paypal.com; img-src
https://*.paypal.com https://*.paypalobjects.com">
ตัวเลือก-2 (ฝั่งเซิร์ฟเวอร): หาก PIN สำหรับการบริการลูกค้าของคุณมีการกำหนดค่าไว้ในฝั่งเซิร์ฟเวอร์ ให้ใช้โค้ดด้านล่างแทนที่โค้ด PIN สำหรับการบริการลูกค้าของคุณ
Content-Security-Policy: script-src 'unsafe-inline' https://*.paypal.com https://*.paypalobjects.com
Content-Security-Policy: style-src 'unsafe-inline' https://*.paypal.com
Content-Security-Policy: connect-src https://*.paypal.com
Content-Security-Policy: frame-src https://*.paypal.com
Content-Security-Policy: img-src https://*.paypal.com https://*.paypalobjects.com
ฉันจะเปลี่ยนแปลงเค้าโครง/ขนาด/สีของชื่อ/ราคา/ปริมาณของผลิตภัณฑ์ได้อย่างไร
วิธีเปลี่ยนรูปแบบ/ขนาด/สีของผลิตภัณฑ์ หรือเปลี่ยนชื่อ/ราคา/ปริมาณสินค้าบนเว็บไซต์ PayPal มีดังนี้
- ให้ไปที่หน้าปุ่ม PayPal
- คลิกเปิดถัดจากปุ่มที่บันทึกไว้ แล้วเลือกแก้ไข
- คลิกปรับแต่งปุ่มของคุณ แล้วทําการเปลี่ยนแปลงที่จําเป็น
ฉันได้แก้ไขข้อมูลผลิตภัณฑ์ (ชื่อ จำนวนเงิน หรือสิ่งอื่นๆ) ฉันต้อง
คัดลอก/วางโค้ดปุ่มอีกครั้งหรือไม่
ไม่ เราใช้ข้อมูลทั้งหมดจากเซิร์ฟเวอร์ PayPal หลังจากที่คุณบันทึกการเปลี่ยนแปลงในบัญชีของคุณแล้ว คุณไม่จําเป็นต้องอัปเดต ID ปุ่มคัดลอก/วางของเว็บไซต์ของคุณอีก
ข้อควรทราบ: ถ้าคุณเปลี่ยนรหัสสกุลเงินในผลิตภัณฑ์ ของคุณ คุณจะต้องอัปเดตปุ่มชําระเงินของคุณด้วย
ฉันเห็น ID ลูกค้าในโค้ด หมายความว่าอย่างไร
ID ลูกค้าคือ ID ลูกค้าของผู้ค้าที่เป็นส่วนหนึ่งของบัญชีของคุณ คุณไม่ควรแก้ไข ID ดังกล่าว ใช้ตามที่เสนอในโค้ดปุ่ม
ฉันเพิ่มปุ่มไปหลายปุ่มแล้ว แต่ไม่มีปุ่มใดๆ แสดงขึ้นบนเว็บเพจของฉัน
หน้าเว็บหนึ่งจะเพิ่มปุ่มหลายปุ่มไม่ได้ในสถานการณ์ต่อไปนี้
- ถ้าคุณคัดลอก/วาง ID ปุ่มเดียวกันหลายครั้งในหน้าเว็บเดียวกัน ระบบจะแสดงเฉพาะปุ่มแรกเท่านั้น คุณไม่สามารถใช้ ID ปุ่มเดิมซ้ำหลายครั้งได้
- ถ้าคุณคัดลอก/วาง ID ของปุ่มที่แตกต่างกันแต่ในสกุลเงินอื่นภายในหน้าเว็บเดียวกัน ระบบจะแสดงเฉพาะปุ่มแรกเท่านั้น คุณไม่สามารถเพิ่มสกุลเงินต่างประเทศลงบนปุ่มต่างๆ ที่อยู่ภายในหน้าเว็บเดียวกันได้
- ถ้าคุณคัดลอก/วาง ID ปุ่มที่แตกต่างกันแล้วแต่พบว่าระบบโหลดช้า ให้ดูให้แน่ใจว่าคุณไม่ได้เพิ่มแท็กสคริปต์ที่มี ID ไคลเอ็นต์นั้นเกิน 1 ครั้ง บรรทัดสคริปต์จะมีลักษณะดังนี้
<script src="https://www.paypal.com/sdk/js?client-id=XYZ&components=hosted-buttons&enable-funding=venmo¤cy=USD"></script>
ฉันมีบัญชี PayPal พรีเมียร์และฉันไม่เห็น ลิงก์และปุ่มการชำระเงินเป็น
ตัวเลือก
ฟีเจอร์นี้พร้อมให้ใช้งานสำหรับ "บัญชีธุรกิจ PayPal" เท่านั้น ถ้าต้องการใช้ฟีเจอร์นี้ ให้อัปเกรดหรือสร้างบัญชีธุรกิจ
ฉันจะทดสอบประสบการณ์นี้ใน PayPal Sandbox ได้อย่างไร
ลิงก์และปุ่มการชำระเงินพร้อมใช้งานเพื่อทดสอบบน Sandbox
การขยายตัวของเครดิต/เดบิตแบบอินไลน์ไม่แสดงให้เห็นอย่างสมบูรณ์ใน
เว็บไซต์ของฉัน
ตรวจสอบให้แน่ใจว่ามีการตั้งค่าความกว้างและความสูงของคอนเทนเนอร์หลักเพื่อรองรับการขยายตัวแบบอินไลน์ ดูเอกสาร/ปรึกษาฝ่ายสนับสนุนแพลตฟอร์มโฮสติ้งของคุณเพื่อรับรายละเอียดเพิ่มเติม
ลิงก์และปุ่มการชำระเงินรองรับ IPN (บริการแจ้งทันทีที่ได้รับเงิน) หรือไม่
รองรับ ทำตามขั้นตอนเหล่านี้เพื่อตั้งค่าและเปิดใช้งาน IPN
วิธีค้นหาการตั้งค่า IPN ใน PayPal มีดังนี้
- ไปที่การตั้งค่าบัญชี
- เลือกการแจ้งเตือนและบริการแจ้งทันทีที่ได้รับเงิน
- คลิกอัปเดตลิงก์
วิธีเปิดใช้งานการตั้งค่า IPN มีดังนี้
- เพิ่ม URL ของตัวจัดการ IPN และเลือกรับข้อความ IPN (เปิดใช้งานแล้ว)
- คลิกบันทึก
จัดการ IPN ในโค้ดเซิร์ฟเวอร์ของคุณ:
- เมื่อใดก็ตามที่การทำรายการด้วยลิงก์และปุ่มการชำระเงินเสร็จสมบูรณ์ IPN ของ PayPal จะเรียกใช้ URL การแจ้งเตือนที่กำหนดค่าไว้ในขั้นตอนที่ 2
การเข้าถึงประวัติ IPN:
- https://www.sandbox.paypal.com/merchantnotification/ipn/history
- https://www.paypal.com/merchantnotification/ipn/history
ข้อมูลอ้างอิง
ข้อมูลเบื้องต้น: https://developer.paypal.com/api/nvp-soap/ipn/IPNIntro/
ตรวจสอบให้แน่ใจว่าใช้ URL ของ IPN ที่ถูกต้องในโค้ดเซิร์ฟเวอร์
ตัวอย่างสำหรับภาษาต่างๆ GitHub - paypal/ipn-code-samples
เมื่อระบบส่งลูกค้าไปยังหน้าการเปลี่ยนเส้นทาง PayPal จะส่งข้อมูลใดบ้าง
เกี่ยวกับการซื้อ ลิงก์และปุ่มการชำระเงินรองรับระบบโอนข้อมูลการชำระเงินหรือไม่
ระบบรองรับตัวแปรใดบ้าง
ใช่ เรารองรับตัวแปรระบบโอนข้อมูลการชำระเงินตามที่ระบุไว้ที่นี่ คุณจะได้รับระบบโอนข้อมูลการชำระเงินหากเปิดใช้งานการตั้งค่าการส่งคืนอัตโนมัติในระหว่างกำหนดค่าลิงก์และปุ่มการชำระเงิน
ลิงก์และปุ่มการชำระเงินรองรับรูปแบบภาษาหรือไม่ หากผู้ค้า
เพิ่มลงในโค้ดปุ่มหรือลิงก์การชำระเงินด้วยตนเอง
ตามค่าเริ่มต้นลิงก์และปุ่มการชำระเงิน จะใช้การตั้งค่าเบราว์เซอร์ของลูกค้าเพื่อแสดงโค้ดปุ่มและประสบการณ์การใช้งานลิงก์การชำระเงิน
ผู้ค้าสามารถแทนที่การตั้งค่าดังกล่าวได้เฉพาะกับลิงก์การชำระเงินและโค้ดปุ่ม โดยการนำ "locale.x=fr_FR" ไปต่อท้ายเป็นพารามิเตอร์การสืบค้น คุณสามารถดูรายการโค้ดที่รองรับสำหรับรูปแบบภาษาต่างๆ ได้ที่นี่ ระบบจะไม่แปลข้อความที่ผู้ค้าป้อนในระหว่างการกำหนดค่า.
ตัวอย่าง: https://www.paypal.com/ncp/payment/F3YMU2ZGT49XX?locale.x=jp_JP
ตัวอย่าง:
<script src="……¤cy=USD&locale.x=jp_JP"></script>
ฉันจะสามารถซ่อนป้ายบางรายการที่มาจากลิงก์การชำระเงินและ
โค้ดปุ่มได้หรือไม่
เราเข้าใจว่าคุณอาจมีการตั้งค่าภาพที่แตกต่างออกไปบนเว็บไซต์ของคุณ อย่างไรก็ตาม เราไม่แนะนำให้คุณซ่อนโค้ดปุ่มที่เราให้ไว้
การซ่อนรายการเหล่านั้นจากเว็บไซต์ของคุณจะไม่เป็นการเปลี่ยนแปลงวิธีการประมวลผลการทำรายการ การทำรายการจะยังคงใช้การกำหนดค่า ID ปุ่มที่คุณโฮสต์ไว้
คุณสามารถซ่อนข้อความบางรายการหรือทั้งหมดรอบๆ ปุ่มได้ เมื่อคุณใช้ประเภทปุ่มที่ไม่จำเป็นต้องมีการป้อนข้อมูลจากลูกค้า ตัวอย่างเช่น หากลูกค้าของคุณต้องการเลือกปริมาณหรือรายการที่ให้เลือกหลายรายการ และคุณได้ซ่อนองค์ประกอบการป้อนข้อมูลเหล่านั้นเอาไว้ การทำรายการจะดำเนินการไม่สำเร็จ
ตัวอย่างวิธีการซ่อนราคาสินค้า มีดังนี้
เพิ่มสคริปต์นี้ใต้โค้ดปุ่ม แทนที่ HostedButton_ID ด้วย ID ปุ่มจริง
<style> #paypal-container-<HostedButton_ID> {
#paypal-form-fields-container-<HostedButton_ID> {
#price-label {
display: none !important;
}
}
}
</style>
-
desc-label (สำหรับชื่อผลิตภัณฑ์) -
price-label (สำหรับราคา)
style> #paypal-container-
<style>
#paypal-container-<HostedButton_ID>
{
#paypal-form-fields-container-<HostedButton_ID>
{
display: none !important;
}
}
</style>
ฉันสามารถแทนที่ลิงก์และปุ่มการชำระเงินเพื่อใช้ ‘การจัดส่งจาก
การตั้งค่า’ ได้หรือไม่
ลิงก์และปุ่มการชำระเงินจะไม่ยอมรับการแทนที่การจัดส่งครั้งละหลายรายการจากการตั้งค่าบัญชี หรือหมายถึงการตั้งค่าต่อไปนี้จากการตั้งค่าการจัดส่ง
ฉันได้เปลี่ยนสกุลเงินของปุ่ม แต่ไม่เห็นมีการอัปเดตบน
เว็บไซต์ของฉัน
หากคุณเปลี่ยนสกุลเงินของปุ่มหลังจากที่วางปุ่มบนเว็บไซต์ของคุณแล้ว คุณจะต้องคัดลอก/วางรหัสปุ่มอีกครั้งบนเว็บไซต์ของคุณด้วย
ฉันไม่สามารถเลือก “ใช้การจัดส่งจากการตั้งค่า” และ “ใช้ภาษีจาก
การตั้งค่า” ได้เมื่อเลือก “ไม่เก็บที่อยู่สำหรับจัดส่ง”
การจัดส่งและภาษีจากการตั้งค่าจะขึ้นอยู่กับรหัสไปรษณีย์และ/หรือประเทศที่จัดส่งของลูกค้า หากคุณเลือก “ไม่เก็บที่อยู่สำหรับจัดส่ง” คุณจะไม่ได้รับที่อยู่สำหรับจัดส่งของลูกค้าที่นำมาคำนวณค่าจัดส่งและภาษีจากการตั้งค่าได้ เราขอแนะนำให้ใช้ตัวเลือกอื่นๆ จากเมนูดรอปดาวน์ “ค่าธรรมเนียมการจัดส่ง” และ “อัตราภาษี”
ลิงก์และปุ่มการชำระเงินรองรับ Webhook หรือไม่
ได้ วิธีเปิดใช้งาน Webhook มีดังนี้
- เข้าสู่ระบบแดชบอร์ดนักพัฒนาระบบโดยใช้ข้อมูลรับรองบัญชีผู้ค้าของคุณ
- สลับไปเป็น Live
- คลิก แอปและข้อมูลรับรอง
- เลื่อนลงแล้วเลือกจัดการ Webhook
- ตอนนี้ คุณจะสามารถเพิ่ม URL ของ Webhook สําหรับ Live ได้แล้ว ถ้าคุณต้องการเพิ่ม Webhook สําหรับ Sandbox ให้อยู่ในหน้านี้และ สลับจาก Live เป็น Sandbox จากมุมขวาบน
- เพิ่ม URL การเรียกกลับของ Webhook เลือกอีเวนต์ทั้งหมด หรือการชําระเงิน ซึ่งเป็นกิจกรรมการชําระเงินที่จะถูกเรียกใช้โดย PayPal ตามอีเวนต์ที่เลือก ทั้งนี้ขึ้นอยู่กับการปรับใช้ NVP หรือ SOAP API ให้เรียกใช้ PayPal NVP/SOAP เพื่อดูข้อมูล Webhook
ตัวอย่างการตอบกลับ Webhook:
"id": "WH-12D11567VE3425924-2G120938U32719946",
"event_version": "1.0",
"create_time": "2024-09-14T15:55:58.043Z",
"resource_type": "capture",
"resource_version": "2.0",
"event_type": "PAYMENT.CAPTURE.COMPLETED",
"summary": "ชำระเงินเสร็จสมบูรณ์แล้วเป็นจำนวน 128.88 ดอลลาร์สหรัฐ",
"resource": {
"supplementary_data": {
"related_ids": {
"order_id": "8LM68409BR5528307"
}
],
"id": "7KK30254642170736",
"status": "COMPLETED"