Javascript PayPal Checkout v2 SDK.NET与PayPalHttp.HttpResponse存在问题
我在事务设置流程的最后一部分遇到问题: 客户端正确地调用我的后端,该后端调用PayPal创建订单,并收到状态代码为200的响应 当http响应返回到客户端时会发生错误,这里我们意识到paypal类创建的json是不完整的!没有使json无效的右括号。“}]}” 我向paypal团队寻求帮助,但它没有帮助我。他们继续绕过这个问题,说蜜蜂总是将完整的json返回给我,但我也知道这一点,因为在调试模式下,结果会给我一个链接,正确地将我发送回paypal支付 这让我明白,实际上我创建的流是完整的,但是PayPalHttp.HttpResponse类创建了一个不正确的主体 我正在附上密码Javascript PayPal Checkout v2 SDK.NET与PayPalHttp.HttpResponse存在问题,javascript,vb.net,paypal-sandbox,fetch-api,paypal-rest-sdk,Javascript,Vb.net,Paypal Sandbox,Fetch Api,Paypal Rest Sdk,我在事务设置流程的最后一部分遇到问题: 客户端正确地调用我的后端,该后端调用PayPal创建订单,并收到状态代码为200的响应 当http响应返回到客户端时会发生错误,这里我们意识到paypal类创建的json是不完整的!没有使json无效的右括号。“}]}” 我向paypal团队寻求帮助,但它没有帮助我。他们继续绕过这个问题,说蜜蜂总是将完整的json返回给我,但我也知道这一点,因为在调试模式下,结果会给我一个链接,正确地将我发送回paypal支付 这让我明白,实际上我创建的流是完整的,但是P
Public Shared Async Function CreateOrder(ByVal Optional debug As Boolean = False) As Task(Of PayPalHttp.HttpResponse)
Dim result As New Order
Dim request = New OrdersCreateRequest()
request.Prefer("return=representation")
Dim newRequest As New OrderActionRequest
request.RequestBody(BuildRequestBody(dicNameValue))
Dim response = Await PayPalClient.client().Execute(request)
If debug Then
result = response.Result(Of Order)()
Console.WriteLine("Status: {0}", result.Status)
Console.WriteLine("Order Id: {0}", result.Id)
Console.WriteLine("Links:")
For Each link As LinkDescription In result.Links
Console.WriteLine(vbTab & "{0}: {1}" & vbTab & "Call Type: {2}", link.Rel, link.Href, link.Method)
Next
/*--- HERE THE PROBLEM ----*/
Dim json As String = PayPalClient.ObjectToJSONString(result)
Console.WriteLine("Response JSON: {0}", json)
/*----------*/
Dim amount As AmountWithBreakdown = result.PurchaseUnits(0).AmountWithBreakdown
Console.WriteLine("Total Amount: {0} {1}", amount.CurrencyCode, amount.Value)
End If
Return response
End Function
这是不完整的json:
注:该项目在VB.NET 4.6.1(web表单)中
Dim响应=等待PayPalClient.client().Execute(请求)
什么是响应
您能否在PayPalClient.client().Execute(request)
贝宝通过网络发送JSON。看起来您正在接收JSON,它被转换成一个对象,然后您正在调用该对象上的一个函数来返回JSON
我不知道为什么在您调用该函数时,该函数给出了错误的JSON,但我知道PayPal的原始JSON可能已经完成。响应是一个
PayPalHttp.HttpResponse
,这些都是PayPal dll提供的类。PayPalClient.ObjectToJSONString(结果)方法仅用于检查这些类正在执行的操作。Paypal似乎不想让我相信他们的.NET类有问题。他们的.NET类可能有问题,但作为JSON接收的数据应该没有问题,类内的数据可能也没有问题。当你把这个类从一个对象转换回JSON时,你在进程中投入了太多的麻烦,所以我的建议是,回溯一点。将类的内容作为数据结构检查(不将其转换为JSON),更好的是检查HTTP请求中通过网络从PayPal接收的JSON。这一切都应该是有效和完整的。技术支持部门向我展示了他们发送的json是完整的,然后说要在stackoverflow上查找答案,因为他们无法帮助我,最后他们链接了我这个:。在几行文字中你比在5-6封电子邮件中的Paypal更了解你。
{
"create_time": "2020-03-18T14:28:56Z",
"id": "2LW612087K897524T",
"intent": "CAPTURE",
"links": [
{
"href": "https:\/\/api.sandbox.paypal.com\/v2\/checkout\/orders\/2LW612087K897524T",
"method": "GET",
"rel": "self"
},
{
"href": "https:\/\/www.sandbox.paypal.com\/checkoutnow?token=2LW612087K897524T",
"method": "GET",
"rel": "approve"
},
{
"href": "https:\/\/api.sandbox.paypal.com\/v2\/checkout\/orders\/2LW612087K897524T",
"method": "PATCH",
"rel": "update"
},
{
"href": "https:\/\/api.sandbox.paypal.com\/v2\/checkout\/orders\/2LW612087K897524T\/capture",
"method": "POST",
"rel": "capture"
}
],
"purchase_units": [
{
"amount": {
"breakdown": {
"handling": {
"currency_code": "USD",
"value": "10.00"
},
"item_total": {
"currency_code": "USD",
"value": "180.00"
},
"shipping": {
"currency_code": "USD",
"value": "30.00"
},
"shipping_discount": {
"currency_code": "USD",
"value": "10.00"
},
"tax_total": {
"currency_code": "USD",
"value": "20.00"
}
},
"currency_code": "USD",
"value": "230.00"
},
"custom_id": "CUST-HighFashions",
"description": "Sporting Goods",
"items": [
{
"category": "PHYSICAL_GOODS",
"description": "Green XL",
"name": "T-shirt",
"quantity": "1",
"sku": "sku01",
"tax": {
"currency_code": "USD",
"value": "10.00"
},
"unit_amount": {
"currency_code": "USD",
"value": "90.00"
}
},
{
"category": "PHYSICAL_GOODS",
"description": "Running, Size 10.5",
"name": "Shoes",
"quantity": "2",
"sku": "sku02",
"tax": {
"currency_code": "USD",
"value": "5.00"
},
"unit_amount": {
"currency_code": "USD",
"value": "45.00"
}
}
],
"payee": {
"email_address": "sb-bzfcs1123474@business.example.com",
"merchant_id": "55J4WA53G7WRL"
},
"reference_id": "PUHF",
"shipping": {
"address": {
"address_line_1": "123 Townsend St",
"address_line_2": "Floor 6",
"admin_area_1": "CA",
"admin_area_2": "San Francisco",
"country_code": "US",
"postal_code": "94107"
},
"name": {
"full_name": "John Doe"
}
},