我正在使用PayPal的Payflow Pro SDK。我试图设置一些东西,用户可以保存和重用他们的信用卡后,使用它一次。我认为(如果我错了请纠正我)这样做的正确过程如下:
- 提交定期付款交易
- 在此事务的响应中,应该有某种与该信用卡对应的代码
- 保存此代码而不是直接保存信用卡数据
- 使用此代码作为参考事务中的originId参数来处理订单(因此交易不需要信用卡,只需要代码)
我不明白的是代码实际上应该是什么。当我提交初始交易时,有一堆代码返回(例如:PNREF, AUTHCODE)。我不知道哪一个应该是我存储的,然后在引用事务中用作原始id。我试着用了很多不同的,每一个都返回一个错误,说"无效投标"。
下面是引用事务部分的代码片段:
public Response processOrderViaReferenceTransaction(String originId){
UserInfo userInfo = new UserInfo("user", "vendor", "partner", "pwd"); //my actual username/password are in my code, not this
PayflowConnectionData connection = new PayflowConnectionData("pilot-payflowpro.paypal.com", 443, 45, "", 0, "", "");
String requestId = PayflowUtility.RequestId;
Invoice invoice = new Invoice();
CultureInfo us = new CultureInfo("en-US");
String usCurrency = "USD";
Currency amount = new Currency(new decimal(2.00), usCurrency);
invoice.Amt = amount;
ReferenceTransaction referenceTransaction = new ReferenceTransaction("S", originId, userInfo, connection, invoice, requestId);
referenceTransaction.Verbosity = "HIGH";
Response response = referenceTransaction.SubmitTransaction();
return response;
}
有人知道我做错了什么吗?
PayFlow Pro开发人员指南第40页…
在原始事务中返回的PNREF在引用事务中使用是有效的为期12个月。
Account Verification返回的PNREF也可以使用在引用事务中。