Integracja z payU

0

Cześć,
robię aplikację z wykorzystaniem asp.net web api mvc i angulara.

Próbuję połączyć się z payU sosobem, który jest w dokumentacji, wykorzystując dane testowe:
Id punktu płatności (pos_id): 145227
Drugi klucz (MD5): 13a980d4f851f3d9a1cfc792fb1f5e50
d781c4f513.png

U mnie wygląda to następująco:

 
 $http({
                            url: "https://secure.payu.com/api/v2_1/orders",
                            method: "POST",
                            headers: {
                                'Authorization': "Basic MTQ1MjI3OjEzYTk4MGQ0Zjg1MWYzZDlhMWNmYzc5MmZiMWY1ZTUw",
                                "Content-Type": "application/json",
                                'Access-Control-Allow-Methods':'POST, GET, OPTIONS',
                                "Access-Control-Allow-Origin": "*",
                                'Access-Control-Allow-Headers': 'origin, content-type, accept'
                            },
                            crossDomain: true,
                            beforeSend: function(xhr) {
                                xhr.setRequestHeader('Authorization', "Basic MTQ1MjI3OjEzYTk4MGQ0Zjg1MWYzZDlhMWNmYzc5MmZiMWY1ZTUw"),
                                xhr.setRequestHeader('Access-Control-Allow-Origin', '*'),
                                xhr.setRequestHeader('Access-Control-Allow-Methods', 'POST, GET, OPTIONS');
                                xhr.setRequestHeader('Access-Control-Allow-Headers', 'origin, content-type, accept');
                            },
                            data: JSON.stringify({
                                "notifyUrl": "http://localhost:61691/api/Voucher/ChangeStatus",
                                "continueUrl": "http://localhost:61691/#/afterPay",
                                "customerIp": "127.0.0.1",
                                "merchantPosId": "145227",
                                "description": "Voucher na strzelnicę",
                                "currencyCode": "PLN",
                                "totalAmount": $scope.voucher.Price * 100,
                                "extOrderId": $scope.voucher.Id,
                                "buyer": {
                                    "email": $scope.voucher.Email,
                                    "firstName": $scope.voucher.Name,
                                    "lastName": $scope.voucher.Surname
                                },
                                "products": [
                                    {
                                        "name": $scope.voucher.Description,
                                        "unitPrice": $scope.voucher.Price * 100,
                                        "quantity": "1"
                                    }
                                ]
                            })
                        });

A to jest to co dostaję w odpowiedzi:

bf74891bb4.png

Czy ktoś robił to wcześniej i może mi pomóc?

0

Pewnie jakieś problemy z CORSem - poczytaj o tym i możliwe, że trzeba jakoś inaczej ustawić nagłówki, albo coś włączyć.

0

tak właśnie podejrzewałam, że to coś z tym i poczytałam i ustawiłam te nagłówki i włączyłam cors w aplikacji i nie wiem co jeszcze mogę zrobić

0

Takich rzeczy nie wysyłaj klienckim javascriptem, niech to serwer wysyła! Tam na pewno wysyłasz jakiś klucz, który powinien być TAJNY, a nie jawny (cokolwiek wysyłasz klienckim javascriptem jest do odczytu przez odwiedzającego stronę!).

Access-Control-Allow-Origin to jest nagłówek ODPOWIEDZI SERWERA, a nie Twój nagłówek, totalnie mieszasz, nie mając pojęcia co w ogóle robisz.

Nawet zakładając brak tajnych kluczy to jeżeli na payu nie ma tego nagłówka to tylko przy pomocy SERWERA jesteś w stanie wysłać takie żądanie i NIC z tym nie zrobisz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1