PayPal付款链接和按钮疑难问题解答提示
我收到一个错误,按钮未显示在我的网站上。
- 检查您的互联网连接是否正常。
- 访问您网站的其他页面并检查它们是否正确加载。
- 前往PayPal按钮页面并检查:
* 按钮是否显示在“已保存的按钮”下?
* 选择编辑并确保按钮代码与您网站上的代码一致。 - 右键点击您的产品页面(粘贴按钮代码的位置),然后点击“检查”。前往“控制台”选项卡(您将在顶部看到此选项卡)。您可能会看到客户服务识别号错误。如果您部署了内容安全策略,则可能会看到如下客户服务识别号错误(客户服务识别号错误示例):
- 拒绝加载脚本“https://www.paypal.com/sdk/js**”,因为它违反了以下内容安全策略指令:“default-src 'self'”。请注意,“script-src-elem”没有明确设置,因此“default-src”作为备用。
- 拒绝连接到“https://www.paypal.com/**”,因为它违反了以下内容安全策略指令:“default-src 'self'”。请注意,“connect-src”没有明确设置,因此“default-src”作为备用。
- 拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“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”作为备用。
- 拒绝框定“https://www.paypal.com/”,因为它违反了以下内容安全策略指令:“default-src 'self'”。请注意,“frame-src”没有明确设置,因此“default-src”作为备用。
您可以尝试添加以下内容来解决上述任何错误:
选项-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(服务器端):如果客户服务识别号是在服务器端配置的,请使用以下代码替换客户服务识别号代码
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的脚本标记。脚本行将如下所示:
<script src="https://www.paypal.com/sdk/js?client-id=XYZ&components=hosted-buttons&enable-funding=venmo¤cy=USD"></script>
我拥有高级PayPal账户,但没有看到 付款链接和按钮
选项。
如何在PayPal沙箱环境中测试此体验?
付款链接和按钮可在沙箱环境中进行测试。
信用卡/借记卡内联扩展未完全显示在我的
网站上。
确保父容器的宽度和高度设置为适应内联扩展。有关更多详细信息,请参阅您的托管平台文件/支持信息。
付款链接和按钮是否支持即时付款通知(IPN)?
是的。按照以下步骤设置并启用即时付款通知。
在PayPal中找到即时付款通知设置的方法如下:
- 前往“账户设置”。
- 选择“通知”和“即时付款通知”。
- 点击“更新链接”。
启用即时付款通知设置的方法如下:
- 添加即时付款通知处理程序URL,然后选择“接收即时付款通知消息(已启用)”。
- 点击“保存”。
在服务器代码中处理即时付款通知:
- 每当付款链接和按钮交易完成时,PayPal即时付款通知都会调用步骤2中配置的通知URL。
访问即时付款通知历史记录:
- 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:https://www.sandbox.paypal.com/cgi-bin/webscr
- 在线 https://www.paypal.com/cgi-bin/webscr
不同语言的真实示例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的方法如下:
- 使用您的商家账户凭证登录开发者面板。
- 切换为“真实”。
- 点击 “应用程序和凭证”。
- 向下滚动并选择“管理Webhook”。
- 现在,您就可以添加真实Webhook URL了。如果要为沙箱环境添加Webhook,请停留在此页面上,然后在右上角将“真实”切换至“沙箱环境”。
- 添加您的Webhook回调URL,选择所有事件或结账、付款事件。PayPal将在所选事件发生时根据您的NVP或SOAP API实现,调用PayPal NVP/SOAP API,以获取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": "Payment completed for $ 128.88 USD",
"resource": {
"supplementary_data": {
"related_ids": {
"order_id": "8LM68409BR5528307"
}
],
"id": "7KK30254642170736",
"status": "COMPLETED"