点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我一直在寻找答案,却多次看到这个问题,但是解决方案却不同。
我尝试过,但没有成功。
我向json api请求信用卡付款(六个saferpay json api)。
如果我在邮递员中建立请求并将其发送,那么我会得到带有六个付款页面网址的答案。
在SAP中,我首先使用凭证创建了目的地,但没有路径。
因为路径可能不同。
已在信任关系中下载并"安装"了SSL证书。
然后进行了Abap编码。
奇怪的是我被禁止了403回来。
我发现一个提示,可能是问题在于cookie属性,我现在设置了该属性,但仍然有问题。 有人提示吗?
非常感谢
亲切的问候
亚历克斯
这里是我的ABAP编码:
cl_http_client => create_by_destination( 出口 destination ='SIX_PAYMENT'"逻辑目标(在函数调用中指定) 输入 client = lo_http_client" HTTP客户端抽象 例外情况 arguments_not_found = 1 destination_not_found = 2 destination_no_authority = 3 plugin_not_active = 4 internal_error = 5 其他= 6 )。 创建对象lo_rest_client 出口 io_http_client = lo_http_client。 lo_http_client-> request-> set_version(if_http_request => co_protocol_version_1_0)。 如果lo_http_client是BOUND且lo_rest_client是BOUND。 lv_url ='/api/Payment/v1/PaymentPage/Initialize'。 cl_http_utility => set_request_uri( 出口 request = lo_http_client-> request" HTTP框架(iHTTP)HTTP请求 uri = lv_url" URI字符串(以/path?query-string的形式) )。 lo_http_client-> propertytype_accept_cookie = lo_http_client-> co_enabled。 * ABAP到JSON 数据:json_req类型zcm_oanml_req_header。 json_req-REQUESTHEADER-SPECVERSION ='1.9'。 json_req-REQUESTHEADER-CUSTOMERID ='XXXXXX'。 json_req-REQUESTHEADER-REQUESTID ='1234567'。 json_req-REQUESTHEADER-RETRYINDICATOR ='0'。 json_req-TERMINALID ='XXXXXXXX'。 json_req-PAYMENT-AMOUNT-value ='1'。 json_req-PAYMENT-AMOUNT-currencycode ='CHF'。 json_req-PAYMENT-ORDERID ='1234567'。 json_req-PAYMENT-DESCRIPTION ='Studiengebühr'。 数据lr_json_serializer类型参考cl_trex_json_serializer。 创建对象lr_json_serializer导出数据= json_req。 lr_json_serializer-> serialize()。 lv_body = lr_json_serializer-> get_data()。 数据:lo_json类型参考cl_clb_parse_json, lo_response类型参考if_rest_entity, lo_request类型参考if_rest_entity, lo_sql类型参考cx_sy_open_sql_db, 状态TYPE字符串, 原因TYPE字符串, 响应TYPE字符串, content_length TYPE字符串, 位置TYPE字符串, content_type TYPE字符串, lv_status TYPE i。 *设置有效载荷或正文(JSON或XML) lo_request = lo_rest_client-> if_rest_client〜create_request_entity()。 lo_request-> set_content_type(iv_media_type = if_rest_media_type => gc_appl_json)。 lo_request-> set_header_field(iv_name ='接受' iv_value ='application/json')。 lo_request-> set_string_data(lv_body)。 *开机自检 lo_rest_client-> if_rest_resource〜post(lo_request)。 *收集回应 lo_response = lo_rest_client-> if_rest_client〜get_response_entity()。 http_status = lv_status = lo_response-> get_header_field('〜status_code')。 原因= lo_response-> get_header_field('〜status_reason')。 content_length = lo_response-> get_header_field('content-length')。 location = lo_response-> get_header_field('location')。 content_type = lo_response-> get_header_field('content-type')。 响应= lo_response-> get_string_data()。 万一。
问题出在SSL证书上。
您必须小心,在目标位置,您可以选择所需的ssl证书类型。
需要选择匿名ssl证书。
如果不这样做,来自sap的认证将作为身份验证发送,然后禁止六个返回403,在这种情况下,这是真的...
一周热门 更多>