我在从 paypal 获取帐单时遇到问题

问题描述

我对确认订阅协议的 webhook 有一个大问题。我使用的是 SDK [https://github.com/paypal/PayPal-Python-SDK/blob/master/samples/subscription/billing_agreements/get.py] 如果有人可以帮助我,我的错误是下一个

回溯(最近一次调用最后一次):

文件“/home/jjorge/venvs/payments/lib/python3.7/site-packages/django/core/handlers /exception.py”,第 34 行,在内部 response = get_response(request)

文件“/home/jjorge/venvs/payments/lib/python3.7/site-packages/django/core/handlers/base.py”,第115行,_get_response response = self.process_exception_by_middleware(e,request) 文件“/home/jjorge/venvs/payments/lib/python3.7/site-packages/django/core/handlers/base.py”,第 113 行,在 _get_response 响应=wrapped_callback(请求,*callback_args,**callback_kwargs

文件“/home/jjorge/venvs/payments/lib/python3.7/site-packages/django/views/decorators/csrf.py”,第54行,在wrapped_view 返回 view_func(*args,**kwargs)

文件“/home/jjorge/venvs/payments/lib/python3.7/site-packages/django/views/generic/base.py”,第71行,在视图中 返回 self.dispatch(request,*args,**kwargs)

文件“/home/jjorge/venvs/payments/lib/python3.7/site-packages/django/views/generic/base.py”,line 97,in dispatch 返回处理程序(请求,*args,**kwargs

文件“/home/jjorge/src/guru/guru-payments/apps/paypal/views.py”,第 69 行,在帖子中 settings.PAYPAL_CLIENT_SECRET

文件“/home/jjorge/src/guru/guru-payments/apps/paypal/services.py”,第34行,执行 paypal_secret_id

文件“/home/jjorge/src/guru/guru-payments/apps/paypal/payment_methods.py”,第 154 行,在 get_billing_agreement 'client_secret':paypal_client_secret

文件“/home/jjorge/venvs/payments/lib/python3.7/site-packages/paypalrestsdk/resource.py”,第 110 行,在 find 返回 cls(api.get(url,refresh_token=refresh_token),api=api)

文件“/home/jjorge/venvs/payments/lib/python3.7/site-packages/paypalrestsdk/api.py”,第268行,在get return self.request(util.join_url(self.endpoint,action),'GET',headers=headers or {},refresh_token=refresh_token)

文件“/home/jjorge/venvs/payments/lib/python3.7/site-packages/paypalrestsdk/api.py”,第 171 行,请求 返回 self.http_call(url,method,data=json.dumps(body),headers=http_headers) 文件“/home/jjorge/venvs/payments/lib/python3.7/site-packages/paypalrestsdk/api.py”,第 214 行,在 http_call 返回 self.handle_response(response,response.content.decode('utf-8')) 文件“/home/jjorge/venvs/payments/lib/python3.7/site-packages/paypalrestsdk/api.py”,第231行,handle_response

引发异常。ResourceNotFound(response,content)

paypalrestsdk.exceptions.ResourceNotFound:失败。响应状态:404。响应消息:未找到。错误信息:{"name":"RESOURCE_NOT_FOUND","debug_id":"9a7aa1a765763","message":"未找到请求的资源","information_link":"https://developer.paypal.com/docs/ api/payments.billing-agreements#errors","details":[{"issue":"请求的资源 ID 未找到。"}]}

解决方法

弃用通知:/v1/payments/billing-agreements 端点已弃用。使用 /v1/billing/subscriptions

这就是我的解决方案,我不得不用新的 api 实现一个新功能

class PayPalPaymentMethod:

@staticmethod
def get_billing_subscription(billing_agreement_id,paypal_mode,paypal_client_id,paypal_secret_id):
    url = util.join_url('/v1/billing/subscriptions',billing_agreement_id)
    api = Api({
        'mode': paypal_mode,'client_id': paypal_client_id,'client_secret': paypal_secret_id
    })
    result = api.get(url)
    return result