如果您对PayPalJavaScriptSDK:获取基本卡信息onApprove()感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于PayPalJavaScriptSDK:获
如果您对PayPal JavaScript SDK:获取基本卡信息 onApprove()感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于PayPal JavaScript SDK:获取基本卡信息 onApprove()的详细内容,我们还将为您解答paypal获取api密钥的相关问题,并且为您提供关于functional继承模式 摘自javascript:the good parts_javascript技巧、javascript Array.prototype.slice使用说明_javascript技巧、javascript Array.prototype.slice的使用示例_javascript技巧、javascript Array.remove() 数组删除_javascript技巧的有价值信息。
本文目录一览:- PayPal JavaScript SDK:获取基本卡信息 onApprove()(paypal获取api密钥)
- functional继承模式 摘自javascript:the good parts_javascript技巧
- javascript Array.prototype.slice使用说明_javascript技巧
- javascript Array.prototype.slice的使用示例_javascript技巧
- javascript Array.remove() 数组删除_javascript技巧
PayPal JavaScript SDK:获取基本卡信息 onApprove()(paypal获取api密钥)
如何解决PayPal JavaScript SDK:获取基本卡信息 onApprove()?
在 PayPal JavaScript SDK 中,我们得到 details
对象 onApprove
,如下所示:
onApprove: function (data,actions) {
console.dir(data);
// This function captures the funds from the transaction.
return actions.order.capture()
.then(function (details) {
console.dir(details);
// This function shows a transaction success message to your buyer.
alert(''Transaction completed by '' + details.payer.name.given_name);
});
}
我们注意到 details
对象不包含有关付款人用于付款的付款方式的任何信息,即 PayPal、借记卡或信用卡,当然,最后也没有提供 4 位卡号。
为什么我们需要基本卡信息?
我们需要基本的卡信息来为我们的客户(包括企业客户)生成更有用的收据。如果没有这些信息,我们的客户就没有必要保留收据并用于会计目的,因为他们甚至无法参考他们用于付款的银行卡。
基于 PayPal Here docs,我们从 Receipt API
的响应对象中发现了这一点:
"payment_card": {
"card_scheme": "CREDIT","card_number": "2677",// This is what we''re looking for
"authorization_code": "087202","card_soft_description": "PP*PAYDIANTPAY","icc_info": {
"pin_present":false,"signature_verified":false,"authorization_response_code": "00","authorization_response_code_label": "APPROVED","icc_application_cryptogram": "606C700D55FB5C0A","icc_application_cryptogram_label": "TC","icc_application_identifier": "A0000000041010","icc_application_PAN_number": "01","terminal_id": "7688","transaction_status_information": "E800","issuer_application_data": "011060700222000014E100000000000000FF","terminal_verification_results": "0000008000"
}
}
但是我们如何使用 PayPal 的 JavaScript SDK 获得相同的信息?我也浏览了 PayPal REST API,但似乎没有找到。请指教,谢谢。
解决方法
如果您使用标准的黑色借记卡或信用卡按钮进行集成,您将不会收到有关他们使用的是哪张卡的任何信息。事实上,您甚至不知道他们是否使用卡付款——他们可能已经退回到常规的 PayPal 结账并使用了不同的资金来源。所有帐单信息在 PayPal 中都按设计保密。
如果您的国家/地区和货币受 advanced credit and debit card payments 支持,您可以查看有关为您的帐户激活它并使用该自定义表单(托管字段)进行集成的信息。此方法将告诉您details
响应中卡片的品牌和最后一位数字。
functional继承模式 摘自javascript:the good parts_javascript技巧
这种模式的作用在于确保对象属性的真正私有化, 我们无法直接访问对象的状态, 只能通过特权方法来进行操作.
下面直接来个例子吧.
var person = function(cfg) {
var that = {};
that.getName = function() {
return cfg.name || ''unknow name'';
};
// 性别 默认男性
that.getGender = function() {
return cfg.gender || ''male'';
};
return that;
};
var programmer = function(cfg) {
var that = person(cfg),
share = {};
share.status = ''normal'';
that.getFamiliarLanguage = function() {
return (cfg.langs || []).join('' '');
};
that.getProfile = function() {
return ''hi,my name is '' + that.getName();
};
that.getStatus = function() {
return share.status;
};
that.setStatus = function(status) {
share.status = status;
};
return that;
};
var me = programmer({
name: ''AndyZhang'',
gender: ''male'',
// 熟悉的语言
langs: [''javascript'', ''java'', ''php'']
});
console.debug(me.getFamiliarLanguage());
console.debug(me.getProfile());
me.setStatus(''oh really busy..'');
console.debug(me.getStatus());
从代码中可以看到,我们调用programmer方法时,没用使用new, 而且方法里也没有出现this关键字.
如果出现类似this.name = cfg.name这样的属性赋值代码, 再用new去调用(构造函数调用方式),这样产生的对象的name属性就不再私有.如:
// 这里方法名的首字母大写 以表示作为一个构造方法 用new来调用
var Person = function(cfg) {
this.name = cfg.name;
this.gender = cfg.gender;
}
// new出一个person1
var person1 = new Person({
name: ''Andrew'',
gender: ''male''
});
// 本来是想让name, gender成为私有 用类似setter getter方法来读写 就像javaBean一样
alert(person1.name); // ''Andrew''
alert(person1.gender); // ''male''