【发布时间】:2019-07-19 20:12:01
【问题描述】:
我正在将 PayPal 支付集成到我正在开发的 Web 应用程序中。我需要为一笔交易创建授权,其中我锁定了一笔钱(比如说 20 欧元),然后在交易结束时我完成了交易,我只拿了我需要拿的钱(所以如果交易最终成本为 15 欧元,我将 5 欧元返还给用户)。
此工作流目前在沙盒帐户上运行,但现在我想测试在开始新交易时可能发生的一些错误,例如当用户没有足够的钱(20 欧元)时我需要锁定才能开始新的交易。
我找到了这个文档 (https://developer.paypal.com/docs/api/test-values/#invoke-negative-testing),其中声明了 To trigger the SENDER_EMAIL_UNCONFIRMED simulation response, set the items[0]/note value to ERRPYO002 in the POST v1/payments/payouts call.,代码如下:
curl -X POST https://api.sandbox.paypal.com/v1/payments/payouts \
-H "content-type: application/json" \
-H "Authorization: Bearer Access-Token" \
-d '{
"sender_batch_header": {
"sender_batch_id": "1524086406556",
"email_subject": "This email is related to simulation"
},
"items": [
{
"recipient_type": "EMAIL",
"receiver": "payouts-simulator-receiver@paypal.com",
"note": "ERRPYO002",
"sender_item_id": "15240864065560",
"amount": {
"currency": "USD",
"value": "1.00"
}
}]
}'
所以我想我需要将错误代码(如 ERRPYO002)传递给我的请求正文中的 note 字段。
我正在使用 checkout sdk,我的 js 代码目前如下所示:
const buttonOpts = {
env: 'sandbox',
client: { production: $scope.key, sandbox: $scope.key },
style: {
label: 'paypal',
size: 'medium',
shape: 'rect',
color: 'blue',
tagline: false,
},
validate: actions => {
// stuff
},
payment: (data, actions) => {
return actions.payment.create({
intent: 'authorize',
payer: { payment_method: 'paypal' },
transactions: [
{
amount: {
total: '20.00',
currency: 'EUR',
},
description: 'My description',
},
],
});
},
onAuthorize: data => {
// Sending data.paymentID and data.payerID to my backend to confirm the new transaction
},
onCancel: () => {
// stuff
},
onError: err => {
console.log(err);
// stuff
},
};
Paypal.Button.render(buttonOpts, '#paypal-button');
我想我需要将模拟错误所需的代码传递给我的 actions.payment.create 对象参数,但我没有找到确切的位置,因为我的工作流程与文档中的工作流程不同。
以下是 PayPal 允许您用于错误测试的代码: https://developer.paypal.com/docs/payouts/integrate/test-payouts/#test-values
感谢任何帮助。 非常感谢。
【问题讨论】:
标签: javascript paypal paypal-sandbox paypal-rest-sdk