- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想在我的 codeigniter 网站中集成 Braintree paypal。我在我的 Controller 构造函数中从服务器加载 braintree 文件和凭据,并将其他代码放入一个方法中,但它总是给出错误未知或过期的 payment_method_nonce。下面是方法
public function braintree(){
if($this->session->userdata('user_id') != '' && $this->session->userdata('user_id') != 'user'){
$user_id = $this->input->post('user_id');
$amount = $this->input->post('amount');
$inscription_id = $this->input->post('inscription_id');
$user_details = $this->db->get_where('spm_users',array('id'=>$user_id))->row_array();
if(!empty($user_details->braintree_customer_id)){
$CustomerId = (string)$user_details->braintree_customer_id;
}else{
$result = Braintree_Customer::create([
'firstName' => $user_details->name,
'lastName' => $user_details->surname,
'email' => $user_details->email,
'phone' => $user_details->telephone,
]);
$CustomerId = (string)$result->customer->id;
$this->db->where("id",$user_id);
$this->db->update("spm_users", array('braintree_customer_id'=>$CustomerId));
}
$clientToken = Braintree_ClientToken::generate([
"customerId" => $CustomerId
]);
$card_id ='';
$clientToken_new = Braintree_ClientToken::generate();
$result1 = Braintree_Transaction::sale([
'amount' => $amount,
'paymentMethodNonce' => $clientToken_new,
'options' => [
'submitForSettlement' => True
]
]);
if($result1->success == true){
$updateArr = array(
'amount'=>$result1->transaction->amount,
'balance_transaction'=>$result1->transaction->id,
'inscription_status'=>2,
'status'=>1,
'data'=>json_encode($result1),
'payment_method' => 'Braintree',
'payment_date'=>date('Y-m-d H:i:s')
);
$this->db->where("id",$inscription_id);
$this->_db->update("spm_inscription", $updateArr);
$this->session->set_flashdata('msg','Inscription Payment Success');
redirect('frontend/paypalpayment/'.$inscription_id);
}else{
$this->session->set_flashdata('msg','Payment failed');
redirect('frontend/paypalpayment/'.$inscription_id);
}
}else{
redirect('frontend');
}
}
这是我的构造函数
public function __construct() {
parent::__construct();
require_once '/home/public_html/mysite/braintree/Braintree.php';
Braintree_Configuration::environment('sandbox');
Braintree_Configuration::merchantId('zxxxxxxxxxxxxxxd');
Braintree_Configuration::publicKey('7xxxxxxxxxxxxxxx7');
Braintree_Configuration::privateKey('1xxxxxxxxxxxxxxxxxxxxxx8');
}
我试过谷歌但没有运气。请帮助并提前致谢。
最佳答案
完全披露:我在 Braintree 工作。如果您还有任何疑问,请随时联系support .
来自documentation on Transaction:sale()
:
To create a transaction, you must include an amount and either a paymentMethodNonce or a paymentMethodToken.
您在 paymentMethodNonce
参数中传递的参数不是 payment method nonce .相反,你传递给它一个 client token ,这导致它失败。这些项目的名称相似,但用途却截然不同。
要在您的代码中正确创建交易,您必须引用您保存在保管库中的付款方式(通过使用付款方式 token ),或引用一组新 token 化的付款方式信息客户在您的网站上提交的(通过使用付款方式随机数)。例如,如果您要将客户的付款方式 token 保存在您的数据库中,您可能会运行如下代码:
if (!empty($user_details->braintree_customer_id)) {
$CustomerId = (string) $user_details->braintree_customer_id;
$CustomerSavedPaymentMethod = (string) $user_details->payment_method_token;
} else {
...
}
$result1 = Braintree_Transaction::sale([
'amount' => $amount,
'paymentMethodToken' => $CustomerSavedPaymentMethod,
'options' => [
'submitForSettlement' => True
]
]);
如果您需要一些额外的资源来创建支付方式随机数并将其传回您的服务器,您可以引用 our full PHP integration example .
关于php - braintree paypal 在 codeigniter 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42992337/
我想获得 Braintree 信用卡交易的费用金额。有没有办法得到这个? $fee = $charge->transaction->serviceFeeAmount; 我在看: https://dev
有什么方法可以更改 Braintree javascript 生成的托管字段中的占位符文本颜色?我不认为它是 the options 之一你可以传入构造函数。我们的设计在深色背景上,占位符值不可见。
我目前有兴趣使用 Braintree 从一个服务器使用我目前持有的信用卡凭据向另一个支付服务器付款。 目前,当客户输入他的信用卡详细信息时,Braintree Client SDK 会生成支付随机数。
在进行销售交易之前,如何在保险库中重新验证付款方式 [信用卡]。 注:启用 CVV 和 AVS 规则。 场景是: Braintree 保险库中的客户使用保险库中的付款方式 [信用卡] 进行销售交易。
我没找到refund网络 Hook webhooks list . 是 支付网络 Hook 在这种情况下有什么可以帮助我的https://developers.braintreepayments.co
我正在将 Braintree Drop-in v3 集成到一个带有包的角度应用程序中npm i -save braintree-web-drop-in。 然后我找到了包@types/braintree
脑树的默认api速率限制是多少? 因为在一段时间内的非常多的请求之后,我收到了 403(请求过多)异常。 最佳答案 当与您的帐户关联的请求达到不安全级别时引发。如果事件有对其他商家造成负面影响的风险,
我正在将 braintree 与 python 和 swift 一起使用。谁能告诉我如何在 braintree 中重置重试。我收到这个错误 SSLError: HTTPSConnectionPool(
这一定是简单的事情,但我却抓狂了。当我调用这个时 $data = [ 'amount' => '50.00', 'paymentMethodNonce' => 'fak
这一定是简单的事情,但我却抓狂了。当我调用这个时 $data = [ 'amount' => '50.00', 'paymentMethodNonce' => 'fak
每当我通过 Braintree API 或通过他们的沙箱创建交易时,它都会经历许多状态,例如授权、提交结算、已结算......所有这一切大约需要 24 小时。我想问一下,有没有一种方法可以让我在沙箱/
Closed. This question needs to be more focused 。它目前不接受答案。 想改善这个问题吗?更新问题,使其仅通过 editing this post 关注一个
我们正在经营一家与 Braintree 相连的英国 Magento 商店。几个月来,一切都在顺利运行,但突然之间,我们无法在任何连接到 Braintree Sandbox 的临时或本地测试环境中完成订
是否可以从 Braintree dropin UI 中隐藏 Paypal 按钮?我正在考虑为 Paypal 定制 Paypal 按钮(基于客户需求和设计),并希望使用由 Braintree dropi
我正在从 ActiveMerchant 中实现的网关切换到 Braintree 网关。我注意到 ActiveMerchant 中有一个 braintree 网关,还有 braintree 的 brai
调用 [Braintree braintreeWithClientToken 时出现以下错误。 ViewController.m:21:27: Use of undeclared identifier
我正在使用 ASP.NET MVC 4、.NET Braintree Payments API 和 Braintree.js。 这是我为 Braintree 构建的一个简单包装器: public cl
我正在为一个应用程序开发一个迁移项目,该应用程序使用 PayPal Payments Pro API(具有循环计费)处理计费。对于通知,目前正在使用 PayPal IPN。 该服务目前提供通过 Pay
有一种方法可以获取所有卡片的列表: gateway.creditCard.expiringBetween(year1900, year2100, function (err, result) {...
我正在尝试决定如何处理用户订阅了整个月的情况,假设他们订阅了 6/1,直到 6/31。在月中,他们决定取消订阅 (6/15),但在 6/20,他们决定再次重新开始订阅。如果有的话,这在 Braintr
我是一名优秀的程序员,十分优秀!