我正在使用位于此处的 paypal SDK 开票: https ://github.com/paypal/invoice-sdk-ruby
这很好用。
我为 rails 集成了 paypal 权限 SDK: https ://github.com/paypal/permissions-sdk-ruby
授权工作流程运行良好。
所以现在我需要把它们放在一起。获得令牌后,权限 sdk 的文档就会消失。它没有解释如何将它与其他贝宝 SDK 一起使用(至少我不能理解:D)发票 sdk 告诉您查看 Auth sdk。
贝宝告诉我:
# Third-party Auth headers
-H "X-PAYPAL-SECURITY-SUBJECT:<receiverEdress>" # Merchant's PayPal e-mail
-H "X-PAYPAL-AUTHENTICATION:<OAuthSig>" # Generated OAuth Signature
不知道怎么插入。该请求是在我的模型中生成的:
@create_and_send_invoice = api.build_create_and_send_invoice(paypalized || default_api_value)
数据本身在发票模型中组装,如下所示:
paypalized = {
:access_token => self.user.paypal_token,
:invoice => {
:merchantEmail => self.user.paypal_email || self.user.email,
:payerEmail => self.client.email,
:itemList => @itemlist,
:currencyCode => "USD",
:paymentTerms => "DueOnReceipt",
:invoiceDate => self.updated_at,
:number => self.name,
:note => self.description,
:merchantInfo => @businessinfo
# project / Invoice title?
} # end invoice
} # end paypalized
return paypalized
此实现不起作用,并且 access_token 字段被拒绝。我查看了与 sdks 相关的 gem,但看不到标头本身的构建位置或如何与之交互。
更新:发现这给了我一个线索......
INVOICE_HTTP_HEADER = { "X-PAYPAL-REQUEST-SOURCE" => "invoice-ruby-sdk-#{VERSION}" }
这似乎在 paypal-sdk-invoice gem 中的调用期间在这里使用:
# Service Call: CreateAndSendInvoice
# @param CreateAndSendInvoiceRequest
# @return CreateAndSendInvoiceResponse
def CreateAndSendInvoice(options = {} , http_header = {})
request_object = BuildCreateAndSendInvoice(options)
request_hash = request_object.to_hash
...
我注意到有两个参数:options 和 http_header。我可以修改 http_header 参数并在我的控制器中以这种方式传递它:
@create_and_send_invoice_response = api.create_and_send_invoice(@create_and_send_invoice, @cutsom_header)
或者可能
@create_and_send_invoice = api.build_create_and_send_invoice(data, custom_header)
我会保持更新,因为我用谷歌搜索了很多,但找不到任何关于如何做到这一点的明确答案......