0

아직 개발중인 Chained Payments API에 문제가 있습니다.Paypal Adaptive Payments API 관련 문제

샌드 박스에 대해 말하기 : 어떤 이유로 인해(Paypal이 트랜잭션에 대해 생성 한 고유 식별자)을 읽었습니다. 트랜잭션으로 다시 전달되지 않습니다. 그리고 확실히, 나의 테스트에서, 나는 구매자의 이메일 주소, 이름, 주소 정보와 같은 대부분의 데이터를 되돌려 받는다. 그러나 나는 돈을 돌려받지 않는다.

이 입력란은 비어 있지 않으며 전혀 표시되지 않습니다. 나는 form 범위 이상의 가장 기본적인 루프를 수행하고 파일에 결과를 기록합니다 (분명히 내가 생산에서이 기초적인 것을하지 않을 것입니다, 이것은 단지 내가 얻고있는 데이터를 이해하는 것이 었습니다).

그래서 나는 내 고유 식별자를 전달하여 데이터베이스에 저장 한 다음이를 사용자 지정 변수를 통해 전달할 것이라고 생각했습니다. 이상하게도 (빈칸은 custom) 매번 비어있게됩니다.

마지막으로 나는 단지 IpnNotificationUrl receipt.cfm?myKey=SOMEVERYRANDOMLYGENERATEDKEYHERE 좋아하지만 IpnNotificationUrl를 통과 할 때, 지정된 URL이 내 샌드 박스 계정에 별도의 IPN Notification URL 설정이 있는지 여부, 핑되지 않은의 URL의 일부로 전달 거라고 생각했다. 계정에 지정된 URL이 매번 올바르게 핑되고 있습니다.

두 파일 모두 다른 이름의 텍스트 파일에 쓰는 것을 제외하면 동일합니다. 두 파일 중 하나에서 오류가 발생하지 않습니다.

<cfoutput><cfsavecontent variable="buildfile">--- Break --- 
    <cfloop list="#structkeylist(form)#" index="i"> 
    #i#: #form[i]# 
    </cfloop> 
</cfsavecontent></cfoutput> 

<cffile file="#expandpath(".")#\dump_new.txt" action="write" output="#buildfile#" /> 

나는 열쇠를 만들고 페이팔이나 페이팔을 통과 할 수 있어야합니다. 그것은 가치가 무엇인지에 대한

이 편집

<cfinvoke component="svc.adaptivepayments" method="payRequest" returnvariable="response"> 
     <cfinvokeargument name="returnURL" value="#request.serverURL#/success.cfm"> 
     <cfinvokeargument name="cancelURL" value="#request.serverURL#/cancel.cfm"> 
     <cfinvokeargument name="ipnNotificationUrl" value="http://myurl/taction/pp_rect2.cfm"> 
     <cfinvokeargument name="senderEmail" value=""> 
     <cfinvokeargument name="custom" value="test data"> 
     <cfinvokeargument name="receiverAmount" value="#ArrayToList(pp_amounts)#"> 
     <cfinvokeargument name="receiverEmail" value="#ArrayToList(pp_emails)#"> 
     <cfinvokeargument name="receiverPrimary" value="true,false,false,false,false,false"> 
     <cfinvokeargument name="feesPayer" value="PRIMARYRECEIVER"> 
     <cfinvokeargument name="receiverPaymentType" value="DIGITALGOODS,DIGITALGOODS,DIGITALGOODS,DIGITALGOODS,DIGITALGOODS,DIGITALGOODS"> 
     <cfinvokeargument name="actionType" value="PAY"> 
     <cfinvokeargument name="currencyCode" value="USD"> 
    </cfinvoke> 

GitHub의

에 페이팔의 SDK에서 내 호출입니다 : 명확한 설명을 위해, Paykey 다시이 서비스에서 제공 내가 페이팔에 사용자를 보낼 수있는 링크를 생성하는 방법이 있습니다. Paykey는 다른 거래 데이터에도 불구하고 단순히 내 IPN으로 전달되지 않습니다. 특정 정보가 삭제되었습니다. 그리고 두 번이 정보 중 어느 것도 paykey 없거나 paykey 작성시 사용할 수 확인했습니다

--- 브레이크 --- (그래서 양쪽에는 고유 식별자가 없습니다)

payer_email: redacted 

    charset: windows-1252 

    item_name: 

    payment_gross: 10.00 

    payer_id: A62WKW8N3YDYU 

    transaction_subject: 

    item_number: 

    payment_status: Completed 

    payment_fee: 0.55 

    notify_version: 3.8 

    verify_sign: A.CSYz4u5IILQm5wM0J0JbJiIcEuAHODNEgw.2k7ZMYT31eXFO6G0R1o 

    mc_currency: USD 

    quantity: 0 

    residence_country: US 

    tax: 0.00 

    first_name: John 

    receiver_email: redacted 

    last_name: Blow 

    mc_fee: 0.55 

    ipn_track_id: dd4151b653ead 

    payer_status: verified 

    custom: 

    fieldnames: payer_email,charset,item_name,payment_gross,payer_id,transaction_subject, 
    item_number,payment_status,payment_fee,notify_version,verify_sign, 
    mc_currency,quantity,residence_country,tax,first_name,receiver_email, 
    last_name,mc_fee,ipn_track_id,payer_status,custom,mc_gross,test_ipn, 
    business,txn_id,receiver_id,txn_type,payment_type,payment_date,protection_eligibility 

    mc_gross: 10.00 

    test_ipn: 1 

    business: redacted 

    txn_id: 71N09598H1922352W 

    receiver_id: VBETUFDEQL5BC 

    txn_type: web_accept 

    payment_type: instant 

    payment_date: 12:53:10 Nov 04, 2014 PST 

    protection_eligibility: Ineligible 
+0

빈 Paykey가 돌아 오지 않은 경험이 있습니다. 페이팔로 리디렉션하려면 PayKey가 필요하므로 비어 있으면 전혀 작동하지 않습니다. 유료 호출에 대한 원시 API 요청 및 응답을 제공 할 수 있습니까? –

+0

나는 이것이 혼란스러워 보였습니다. 나는이 게시물에이 글을 덧붙였습니다. 명확한 설명을 위해, Paykey는이 서비스에서 돌아 왔고, 어떻게 페이팔에 사용자를 보내는 링크를 생성하는지 알려줍니다. Paykey는 다른 거래 데이터에도 불구하고 단순히 내 IPN으로 전달되지 않습니다. –

+0

IPN이 포함 된 서버에서 Pay Pay 요청을 실행했는데 IPN 세부 정보에서 PayKey가 정상적으로 반환됩니다. 예상대로 PayKey가 포함 된 [app specific IPN here (http://sandbox.angelleye.com/paypal/ipn/admin/raw-log-detail.php?id=6806)의 샘플을 볼 수 있습니다. 당신이 얻고있는 IPN 데이터의 RAW 덤프를 제공 할 수 있습니까? –

답변

1

Adaptive Payments 거래가 실제로 앱과 수신자에 대해 별도의 IPN을 가지고 있다는 사실을 잊어 버린 것 같습니다. 두 가지 역할을 모두 수행하는 경우 2 개의 별도 IPN을 얻게됩니다.

수신자/거래 고유 IPN이 여기에 포함되어 있습니다. 여기에는 PayKey가 포함되지 않고 대신 거래 ID가 표시됩니다. PayKey 매개 변수가 전혀 없다는 사실을 알게 될 것입니다 (포함 된 것과 반대가 아니라 처음에 명시한 것처럼 공백 임).

PayKey를 비롯하여 앱 관련 데이터를 처리하려면 다음을 수행해야합니다. 그 애플 리케이션 내에서 특정 IPN, 어떤 내 샘플에 연결되어 있습니다. 여기에 포함 된 매개 변수와 많이 다른 매개 변수가 있음을 알 수 있습니다.

필자는 실제로 앱 소유자이자 거래의 수신자 였기 때문에 동시에 2 개의 IPN을 얻었지만 내 IPN 스크립트는 이에 따라 적절히 처리하도록 구성되었습니다.

그럼에도 PayKey를 비롯한 앱 관련 데이터가 포함 된 app specific IPN이 있습니다. 그런 다음 separate transaction specific IPN도 있는데 여기에 표시되는 데이터가 포함되어 있지만 PayKey는 포함되어 있지 않습니다.

둘 다 올바르게 처리해야합니다. 유료 요청의 IPNNotificationURL 매개 변수는 앱 특정 IPN을 트리거합니다. 여기서 리시버 계정의 IPN 구성이 특정 IPN 트랜잭션을 트리거합니다.

귀하의 요청에 IPNNotificationURL에 대한 값이 포함되어 있지만 귀하가받는 데이터가 그 값이 아닙니다. 당신은 웹 서버 로그를 검사 할 필요가있다. 왜냐하면 어떤 이유에서 실패 할 것 같지만 다른 하나는 실패하고 성공해야하는 것처럼 보이기 때문이다.

+0

도움을 주셔서 감사합니다. 위의 언급을하기 전에 앱 별 IPN에 대한 언급을 보지 못했습니다. 그것은 하나가 작동하고 다른 하나는 (당신이 말한 것처럼) 이상하지 않은 것처럼 보입니다. 나를 올바른 방향으로 가리켜 주셔서 감사합니다. –

+0

나는 조언을 해준 덕분에 문제를 해결할 수 있었지만 다른 페이팔 관련 일들을 연구 할 때 GetVerifiedStatus에 대한 정보를 찾는 것과 같은 많은 장소에서 귀하의 이름을 찾았습니다. your php api sample invocation을 발견했습니다. 엄청난 감사. –

+0

하, 예, 저는 일종의 페이팔 괴짜예요. 이 클래스 라이브러리는 매우 유용하며, 오늘 매우 중요한 업데이트를 발표 했으므로 최신 버전인지 확인하십시오. –

관련 문제