But*_*ess 4 html git curl paypal
我正在尝试使用curl和im设置我的三个订阅,以确保值正确。尝试执行请求并获得响应,但是我的卷曲没有完全起作用。
https://developer.paypal.com/docs/api/subscriptions/v1/#plans_create
我的意图:
3种计划可供选择:精英(149 PHP /月),高级(349 PHP /月),豪华(549 PHP /月)
1个月是30天,如贝宝所说
id希望将其设置为每月自动更新,直到客户选择取消它为止。
一次只有一个处于活动状态,如果用户在运行中选择了三个中的另一个,则将自动停止向他们收费,并向他们收取新的费用。(例如:目前为Elite149,一旦选择,订阅和续订将更改为549luxury)。
curl -v -X POST https://api.sandbox.paypal.com/v1/billing/plans \
-H "Content-Type: application/json" \
-H "Authorization: Basic account_clientid:account_secretcode" \
-H "PayPal-Request-Id: EPL-25012019-001" \
-d '{
"product_id": "MWC-2019EPL",
"name": "My White Card Subscription Plans",
"description": "MyWhiteCard Membership Levels",
"status": "ACTIVE",
"billing_cycles": [
{
"frequency": {
"interval_unit": "MONTH",
"interval_count": 1
},
"tenure_type": "REGULAR",
"sequence": 1,
"total_cycles": 999,
"pricing_scheme": {
"fixed_price": {
"value": "149",
"currency_code": "PHP"
}
}
},
{
"frequency": {
"interval_unit": "MONTH",
"interval_count": 1
},
"tenure_type": "REGULAR",
"sequence": 2,
"total_cycles": 999,
"pricing_scheme": {
"fixed_price": {
"value": "349",
"currency_code": "PHP"
}
}
},
{
"frequency": {
"interval_unit": "MONTH",
"interval_count": 1
},
"tenure_type": "REGULAR",
"sequence": 3,
"total_cycles": 999,
"pricing_scheme": {
"fixed_price": {
"value": "549",
"currency_code": "PHP"
}
}
}
],
"payment_preferences": {
"auto_bill_outstanding": true,
"setup_fee": {
"value": "0",
"currency_code": "PHP"
},
"setup_fee_failure_action": "CONTINUE",
"payment_failure_threshold": 3
},
"taxes": {
"percentage": "10",
"inclusive": false
}
}'
Run Code Online (Sandbox Code Playgroud)我刚拿出我帐户的client_id:secret
我的问题和疑虑:
"total_cycles": NEVER输入正确吗?其他问题:
https://api.sandbox.paypal.com/v1/billing/plans内容,仅仅是https://api.live.paypal.com/v1/billing/plans吗?1008{"error":"invalid_client","error_description":"Client credentials are missing"}任何帮助将不胜感激。我只是确保一切都是必需的,因为这三个订阅将转到实时网站。我必须确定一次只能运行一个订阅。
更新:我试图做到这一点curl -v -X POST https://api.production.paypal.com/v1/billing/plans,这也不起作用。
更新:有人可以显示一个有效的curl示例请求示例吗?
更新:在,请注意-H "Authorization: Basic account_clientid:account_secretcode",由于我不能公开展示它,所以我在那里取出了ID码。我放在那里的一个例子是
-H "Authorization: Basic JAKRc85nJy2eMLq3aIV:01PvLC934xMAwLHqU4JqA89as4N"
Run Code Online (Sandbox Code Playgroud)
更新我读了到目前为止的答案后,尝试在git中运行curl,仍然以某种方式仍然出现错误。我确保api位于api.paypal.com中,并且客户端ID和密钥ID是实时版本。
curl -v -X POST https://api.paypal.com/v1/billing/plans \
-H "Content-Type: application/json" \
-H "Authorization: Basic AR7nnwwotKOt4YdcGHZc0P2RVsRT67_Gf2hyrKyDl3ZgCKsikeKbXdQ9Fj-_21v4RulkXsgAASe7_VKv:EKwsdDo1ehtOOOSZCGMu1C9903qr4cQOOZI2rgFYhvugh2SO1V04q9MWY9SXwa352zBt1mGglLuWgR4D" \
-H "PayPal-Request-Id: MWC-2501E-001" \
-d '{
"product_id": "ELITE-2501149",
"name": "Elite Membership",
"description": "Elite Membership Monthly Plan",
"status": "ACTIVE",
"billing_cycles": [
{
"frequency": {
"interval_unit": "MONTH",
"interval_count": 1
},
"tenure_type": "REGULAR",
"sequence": 1,
"total_cycles": 999,
"pricing_scheme": {
"fixed_price": {
"value": "149",
"currency_code": "PHP"
}
}
}
],
"payment_preferences": {
"auto_bill_outstanding": true,
"setup_fee": {
"value": "0",
"currency_code": "PHP"
},
"setup_fee_failure_action": "CONTINUE",
"payment_failure_threshold": 3
},
"taxes": {
"percentage": "12",
"inclusive": false
}
}'
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
100 921 100 159 100 762 99 478 0:00:01 0:00:01 --:--:-- 578{"name":"INTERNAL_SERVICE_ERROR","debug_id":"1975a4fe9232","links":[{"href":"https://developer.paypal.com/docs/api/overview/#error","rel":"information_link"}]}
Run Code Online (Sandbox Code Playgroud)
更新
阅读所有链接并按照步骤操作,我认为这是剩下的唯一问题
{"name":"NOT_AUTHORIZED","message":"Authorization failed due to insufficient permissions.","debug_id":"484a9d7460069","details":[{"issue":"PERMISSION_DENIED","description":"You do not have permission to access or perform operations on this resource"}],"links":[{"href":"https://developer.paypal.com/docs/api/v1/billing/subscriptions#NOT_AUTHORIZED","rel":"information_link","method":"GET"}]}
Run Code Online (Sandbox Code Playgroud)
我检查了Paypal帮助中心,看来我需要Paypal本身的人来授权我的REST。
"access_token$production$",然后输入给出的代码?在您的示例中,您使用的是基本身份验证方案。您可以使用:
-H "Authorization: Bearer Access-Token" \
Run Code Online (Sandbox Code Playgroud)
但是要回答您的问题,不,您不需要专门包括access_token文本字符串。
是的,使用了请求ID,因此您可以重试API调用。 https://developer.paypal.com/docs/api/reference/api-requests/#http-request-headers
但是 product_id应该来自https://developer.paypal.com/docs/api/catalog-products/v1/#products_create
所以您首先需要做。请参阅此答案底部的更新。
您将需要调用每个计划配置来创建三个订阅计划。基本上,在API doc示例中,它向您显示了它为试用期创建的结算周期以及它自己的常规计划。它还说:
https://developer.paypal.com/docs/api/subscriptions/v1/#plans_create
试用和常规计费的一系列计费周期。一个计划可以有多个计费周期,但只能有一个常规计费周期。
您还提到了:
一次只有一个处于活动状态,如果用户在运行中选择了三个中的另一个,则将自动停止向他们收费,并向他们收取新的费用。(例如:目前为Elite149,一旦选择,订阅和续订将更改为549luxury)。
您需要最终以编程方式执行此操作。
如果用户取消订阅计划,则您需要通过以下方式取消其订阅:https : //developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_cancel
如果您打算更改订阅,则首先需要取消现有订阅,然后使用以下命令订阅用户新的订阅计划:https : //developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_create
设置费只是您可以向客户收取的附加费。您需要通过将设置费用值设置为0来手动声明此选项或使其成为可选 。https://developer.paypal.com/docs/api/subscriptions/v1/#definition-payment_preferences
最大值为999。它仅接受整数。 https://developer.paypal.com/docs/api/subscriptions/v1/#definition-billing_cycle
由于税收取决于您所在的地区或国家。您使用PHP或菲律宾比索作为货币,因此可能意味着您在菲律宾。您需要将税率设置为12%,因为这是用于对商品和服务征税的方法
资料来源:https : //www.full-suite.com/blog/whats-difference-vat-percentage-tax/
贝宝税对象定义:https://developer.paypal.com/docs/api/subscriptions/v1/#definition-taxes
https://api.sandbox.paypal.com/v1/billing/plans内容,仅仅是https://api.live.paypal.com/v1/billing/plans?您可以在此处找到地址:https : //developer.paypal.com/docs/api/overview/#get-an-access-token
它说:
1008{"error":"invalid_client","error_description":"Client credentials are missing"}这可能意味着您正在传递无效的凭据。确保您使用以下信息通过标头发送它们
Bearer <Access-Token>
Run Code Online (Sandbox Code Playgroud)
要么
Basic <client_id>:<secret>
Run Code Online (Sandbox Code Playgroud)
并验证您的字符串输入是否代表实际值。此外,请确保您使用的是沙盒凭据,因为它与生产版本或实时https://developer.paypal.com/docs/classic/lifecycle/sb-create-accounts/#create-a-sandbox具有不同的凭据集 -帐户
不要将Git Bash解释为命令行界面,它只是项目的版本控制工具。但是,用于Windows的Git软件包具有内置组件,这些组件应允许您运行CURL。由于Curl安装在Bin目录中,因此您应该可以在任何目录中运行它。
您可以使用不同的工具来运行curl命令,最好使用脚本或编程语言(如PHP,Phyton,Java或什至Node)运行,该脚本对curl具有更好的支持,并应使您可以更简洁地编写和测试程序。
我对此进行了进一步调查。我想与您分享,因为您似乎还没有阅读完整的API文档。
您正在创建订阅计划,但是首先需要创建产品。(我已经更新了对问题2的回答)
首先-创建产品 这将创建创建订阅计划所需的product_id。 https://developer.paypal.com/docs/api/catalog-products/v1/#products_create 要返回并检查创建的产品以获取其产品ID,可以使用以下api调用: https:// developer。 paypal.com/docs/api/catalog-products/v1/#products_list
然后-创建订阅计划 创建产品之后,可以为其创建多个订阅计划。 https://developer.paypal.com/docs/api/subscriptions/v1/#plans_create
展望未来,如果您要订阅/取消订阅用户,则需要按照我对问题3的回答,以编程方式进行操作。
尝试先获取访问令牌。为此,请按照以下说明进行操作:https : //developer.paypal.com/docs/api/get-an-access-token-curl/
curl -v https://api.sandbox.paypal.com/v1/oauth2/token \
-H "Accept: application/json" \
-H "Accept-Language: en_US" \
-u "client_id:secret" \
-d "grant_type=client_credentials"
Run Code Online (Sandbox Code Playgroud)
然后获取返回的令牌,并使用该令牌进行api调用。它将返回如下内容:
{
"scope": "scope",
"access_token": "Access-Token",
"token_type": "Bearer",
"app_id": "APP-80W284485P519543T",
"expires_in": 31349,
"nonce": "nonce"
}
Run Code Online (Sandbox Code Playgroud)
这里是你的代码,我用来测试的修改版本,发现它使用Bearer token代替basic client_id:secret
curl -v -X POST https://api.sandbox.paypal.com/v1/billing/plans \
-H "Content-Type: application/json" \
-H "Authorization: Bearer Access-Token-goeshere" \
-H "PayPal-Request-Id: MWC-helper" \
-d '{
"product_id": "PROD-ELITETEST", //<---- this product id should be taken from the real product id when you created your product through product_create api.
"name": "Elite Membership",
"description": "Elite Membership Monthly Plan",
"status": "ACTIVE",
"billing_cycles": [
{
"frequency": {
"interval_unit": "MONTH",
"interval_count": 1
},
"tenure_type": "REGULAR",
"sequence": 1,
"total_cycles": 999,
"pricing_scheme": {
"fixed_price": {
"value": "149",
"currency_code": "PHP"
}
}
}
],
"payment_preferences": {
"auto_bill_outstanding": true,
"setup_fee": {
"value": "0",
"currency_code": "PHP"
},
"setup_fee_failure_action": "CONTINUE",
"payment_failure_threshold": 3
},
"taxes": {
"percentage": "12",
"inclusive": false
}
}'
Run Code Online (Sandbox Code Playgroud)
它为我工作!
| 归档时间: |
|
| 查看次数: |
360 次 |
| 最近记录: |