php - 有什么方法可以通过在 laravel 中使用“paypal/rest-api-sdk-php”包来验证 PAYPAL_CLIENT_ID 和 PAYPAL_SECRET_ID 是否为真
问题描述
如何找到 PAYPAL_CLIENT_ID 和 PAYPAL_SECRET_ID 错误,以便我可以向发件人
显示消息
“<em>您的收款人没有配置他的 Paypal 帐户”
,而不是在收款人(PayPal 服务商帐户)的情况下显示白色空白屏幕错误的凭证
这是我的应用程序中的一个简短场景,有类型 tow user
- 供应商(供应商要求通过我的申请撤回他的付款)
- 管理员(管理员通过贝宝支付提款请求)
每个供应商在我的应用程序的供应商帐户中添加自己的client_id和secret_id,以防任何用户输入错误的凭据,那么
我如何找到这些凭据是错误的?
这样我就可以向管理员显示合适的消息
我做了什么 ?
如果我输入正确的 PAYPAL_CLIENT_ID和PAYPAL_SECRET_ID则一切正常,但是当我输入错误的凭据进行测试时,会出现空白屏幕
我无法识别这些凭证是真/假,因为 ApiContext 类对象返回相同的结果天气凭证是 tur 或 false
use PayPal\Rest\ApiContext;
class PaypalController extends Controller{
//get dynamically client_id and secret_id against a specific user
public function get_apiContext($user_id){
$bank_detail=BankDetails::where('user_id',$user_id)->where('account_type','paypal')->first();
return new ApiContext(
new OAuthTokenCredential(
$bank_detail->client_id,
$bank_detail->secret_id
)
);
**//for true credential(these credential store in DB)**
dd($this->get_apiContext(some_user_id));
**//for wrong credential(these credential store in DB)**
dd($this->get_apiContext(some_user_id));
}
***//output for true credential***
ApiContext {#309 ▼
-requestId: null
-credential: OAuthTokenCredential {#315 ▼
-clientId: "ASTxYaCVuy8DTvyZsGsmu9bQrEQgaIgHBK1yDnzqZGB65iZDzoK-LWtghytOn8HBsAqADQFFV0B4KsVG4"
-clientSecret: "EEisV6THUKO7czPfNR0nW67dH2fZMvXIGxgm39hnCco_oph6JuHxF8tuda7-vLmOvs6LMGcInw5rn9psNK"
-targetSubject: null
-accessToken: null
-tokenExpiresIn: null
-tokenCreateTime: null
-cipher: Cipher {#314 ▼
-secretKey: "EEisV6THUKO7czPfNR0nW67dH2fZMvXIGxgm39hnCco_uioh6JuHxF8tuda7-vLmOvs6LMGcInw5rn9psNK"
}
-_propMap: []
}
}
***//for the wrong credential***
ApiContext {#309 ▼
-requestId: null
-credential: OAuthTokenCredential {#315 ▼
-clientId: "ASTxYaCVuy8DTvyZsGsmu9bQrEQgaIgHBK1yDponzqZGB65iZDzoK-LWtghytOn8HBsAqADQFFV0B4KsVG4aaaaaaaaaa"
-clientSecret: "EEisV6THUKO7czPfNR0nW67dH2fZMvXIGxgm39hnCco_h6JuHjkuxF8tuda7-vLmOvs6LMGcInw5rn9psNK"
-targetSubject: null
-accessToken: null
-tokenExpiresIn: null
-tokenCreateTime: null
-cipher: Cipher {#314 ▼
-secretKey: "EEisV6THUKO7czPfNR0nW67ghjjdH2fZMvXIGxgm39hnCco_h6JuHxF8tuda7-vLmOvs6LMGcInw5rn9psNK"
}
-_propMap: []
}
}
}
解决方案
推荐阅读
- tsql - 如何在 TSQL 中将多行转换为以逗号分隔的单行?
- c++ - 当前引导会话中的 Linux 唯一进程 ID
- angular - 如何防止 canActivate 在 Angular 防护的构造函数中完成 ReplaySubject 之前执行?
- go - GoLang GORM 循环二叉树
- flutter - Flutter Inherited Custom AppBar 在 TextField 点击时消失
- c# - 为 ASP.NET Core MVC (.NET 5) 包装 DryIoc
- javascript - 如何阻止网页在 React 中全屏显示?
- node.js - 模块包装功能问题
- python - pycharm绿色箭头(调用runfile)不反映docker文件系统,需要手动编辑才能运行配置
- google-cloud-platform - (gcloud.kms.encrypt) 无法读取明文文件