PayPal v2 发票 API "INVALID_REQUEST" 因金额字段错误

0 投票
0 回答
28 浏览
提问于 2025-04-12 00:50

错误信息:

{"name":"INVALID_REQUEST","message":"请求格式不正确,语法有误,或者不符合要求。","debug_id":"7bf4f312d5676","details":[{"field":"/amount/value","value":"60.00","location":"BODY","issue":"calculation_error","description":"金额无效。"}],"links":[{"href":"https://developer.paypal.com/docs/api/invoicing/#errors","method":"GET"}]}

我尝试创建一个发票模板。代码:

import requests
import json

headers = {
    'Authorization': 'Bearer zekwhYgsYYI0zDg0p_Nf5v78VelCfYR0',
    'Content-Type': 'application/json',
    'Prefer': 'return=representation',
}

auth = ('AZ_4WD_n4iksfwbF********rzHkraVIYQ0ATLfsZW2DzeRC5jjF-va5o2uVQK-n', 'ENkQHmneW******CVZRr7xADBikY6QowcE0')

data = {
    "default_template": True,
    "template_info": {
        "configuration": {
            "tax_calculated_after_discount": True,
            "tax_inclusive": False,
            "allow_tip": True,
            "partial_payment": {
                "allow_partial_payment": True,
                "minimum_amount_due": {
                    "currency_code": "USD",
                    "value": "20.00"
                }
            }
        },
        "detail": {
            "reference": "deal-ref",
            "note": "Thank you for your business.",
            "currency_code": "USD",
            "terms_and_conditions": "No refunds after 30 days.",
            "memo": "This is a long contract",
            "attachments": [
                {
                    "id": "Screen Shot 2018-11-23 at 16.45.01.png",
                    "reference_url": "https://api-m.paypal.com/invoice/payerView/attachments/RkG9ggQbd4Mwm1tYdcF6uuixfFTFq32bBdbE1VbtQLdKSoS2ZOYpfjw9gPp7eTrZmVaFaDWzixHXm-OXWHbmigHigHzURDxJs8IIKqcqP8jawnBEZcraEAPVMULxf5iTyOSpAUc2ugW0PWdwDbM6mg-guFAUyj3Z98H7htWNjQY95jb9heOlcSXUe.sbDUR9smAszzzJoA1NXT6rEEegwQ",
                    "version": "1",
                    "sig": "JNODB0xEayW8txMQm6ZsIwDnd4eh3hd6ijiRLi4ipHE"
                }
            ],
            "payment_term": {
                "term_type": "NET_10"
            }
        },
        "invoicer": {
            "name": {
                "given_name": "David",
                "surname": "Larusso"
            },
            "address": {
                "address_line_1": "1234 First Street",
                "address_line_2": "337673 Hillside Court",
                "admin_area_2": "Anytown",
                "admin_area_1": "CA",
                "postal_code": "98765",
                "country_code": "US"
            },
            "email_address": "merchant@example.com",
            "phones": [
                {
                    "country_code": "001",
                    "national_number": "4085551234",
                    "phone_type": "MOBILE"
                }
            ],
            "website": "www.test.com",
            "tax_id": "ABcNkWSfb5ICTt73nD3QON1fnnpgNKBy-Jb5SeuGj185MNNw6g",
            "logo_url": "https://example.com/logo.PNG",
            "additional_notes": "2-4"
        },
        "primary_recipients": [
            {
                "billing_info": {
                    "name": {
                        "given_name": "Stephanie",
                        "surname": "Meyers"
                    },
                    "address": {
                        "address_line_1": "1234 Main Street",
                        "admin_area_2": "Anytown",
                        "admin_area_1": "CA",
                        "postal_code": "98765",
                        "country_code": "US"
                    },
                    "email_address": "bill-me@example.com",
                    "phones": [
                        {
                            "country_code": "001",
                            "national_number": "4884551234",
                            "phone_type": "MOBILE"
                        }
                    ],
                    "additional_info": "add-info"
                },
                "shipping_info": {
                    "name": {
                        "given_name": "Stephanie",
                        "surname": "Meyers"
                    },
                    "address": {
                        "address_line_1": "1234 Main Street",
                        "admin_area_2": "Anytown",
                        "admin_area_1": "CA",
                        "postal_code": "98765",
                        "country_code": "US"
                    }
                }
            }
        ],
        "additional_recipients": [
            "inform-me@example.com"
        ],
        "items": [
            {
                "name": "Yoga Mat",
                "description": "new watch",
                "quantity": "1",
                "unit_amount": {
                    "currency_code": "USD",
                    "value": "50.00"
                },
                "tax": {
                    "name": "Sales Tax",
                    "percent": "7.25"
                },
                "discount": {
                    "percent": "5"
                },
                "unit_of_measure": "QUANTITY"
            },
            {
                "name": "Yoga T Shirt",
                "quantity": "1",
                "unit_amount": {
                    "currency_code": "USD",
                    "value": "10.00"
                },
                "tax": {
                    "name": "Sales Tax",
                    "percent": "7.25",
                    "tax_note": "Reduced tax rate"
                },
                "discount": {
                    "amount": {
                        "currency_code": "USD",
                        "value": "57.12"
                    }
                },
                "unit_of_measure": "QUANTITY"
            }
        ],
        "amount": {
            "currency_code": "USD",
            "value": "60.00"
        }
    },
    "settings": {
        "template_item_settings": [
            {
                "field_name": "items.date",
                "display_preference": {
                    "hidden": True
                }
            },
            {
                "field_name": "items.discount",
                "display_preference": {
                    "hidden": False
                }
            },
            {
                "field_name": "items.tax",
                "display_preference": {
                    "hidden": False
                }
            },
            {
                "field_name": "items.description",
                "display_preference": {
                    "hidden": False
                }
            },
            {
                "field_name": "items.quantity",
                "display_preference": {
                    "hidden": True
                }
            }
        ],
        "template_subtotal_settings": [
            {
                "field_name": "custom",
                "display_preference": {
                    "hidden": False
                }
            },
            {
                "field_name": "discount",
                "display_preference": {
                    "hidden": False
                }
            },
            {
                "field_name": "shipping",
                "display_preference": {
                    "hidden": False
                }
            }
        ]
    },
    "unit_of_measure": "QUANTITY",
    "standard_template": False
}


data["name"] = "Template"
json_data = json.dumps(data)


response = requests.post('https://api-m.sandbox.paypal.com/v2/invoicing/templates', headers=headers, data=json_data, auth=auth)
print(response.text)

0 个回答

暂无回答

撰写回答