コード例 #1
0
    def post(self):
        apiCredentials = CommonElements.APICredential(
            'APP-80W284485P519543T', 'pd_1265515509_biz_api1.yahoo.com',
            '1265515515',
            'AFcWxV21C7fd0v3bYYYRCpSSRl31AC1woL3k8kA7-43yk77UeVap4cwO',
            'PythonSampleApp')

        #ToDo: self.request.META['HTTP_X_FORWARDED_FOR']
        client_details = CommonElements.ClientDetails('APP-80W284485P519543T',
                                                      self.request.remote_addr)

        payment_details = CommonElements.PaymentDetails(
            self.request.get('actionType'))
        payment_details.set_cancelUrl('http://localhost:8080/Pay?cancel=1')
        payment_details.set_currencyCode(self.request.get('currencyCode'))
        payment_details.set_feesPayer(self.request.get('feesPayer'))
        payment_details.set_memo('testing 123')
        payment_details.set_trackingId('12345678')
        recv1 = CommonElements.Receiver(self.request.get('receiver_email1'))
        recv1.set_amount(self.request.get('receiver_amount1'))
        recv1.set_paymentType(self.request.get('paymentType'))
        recv2 = CommonElements.Receiver(self.request.get('receiver_email2'))
        recv2.set_amount(self.request.get('receiver_amount2'))
        recv2.set_paymentType(self.request.get('paymentType'))
        if (self.request.get('paymentModel') == 'Chained'):
            if (self.request.get('primary') == 'receiver1'):
                recv1.set_primary('true')
            elif (self.request.get('primary') == 'receiver2'):
                recv2.set_primary('true')

        payment_details.set_receiverList([recv1, recv2])
        payment_details.set_returnUrl(
            'http://localhost:8080/PaymentDetails?payKey=${payKey}')
        payment_details.set_senderEmail(self.request.get('senderEmail'))
        payment_details.set_trackingId('12345678')
        if (self.request.get('preapprovalKey')
                and len(self.request.get('preapprovalKey')) > 0):
            payment_details.set_preapprovalKey(
                self.request.get('preapprovalKey'))
        payRequest = Requests.PayRequest()
        payRequest.set_clientDetails(client_details)
        payRequest.set_paymentDetails(payment_details)
        response = payRequest.make_request(
            Constants.ServiceEnvironment.SANDBOX, apiCredentials)

        template_values = {'response': response}
        if hasattr(response, 'payKey'):
            template_values[
                'paymentDetailsLink'] = '/PaymentDetails?payKey=' + response.payKey
            if response.paymentExecStatus != Constants.PaymentExecStatus.COMPLETED:
                template_values[
                    'paymentAuthZUrl'] = CommonElements.ServiceEndPoint.getAuthorizationUrl(
                        Constants.ServiceEnvironment.SANDBOX
                    ) + '?cmd=_ap-payment&paykey=' + response.payKey
        path = os.path.join(os.path.dirname(__file__), 'pay.html')
        self.response.out.write(template.render(path, template_values))
コード例 #2
0
    def post(self):

        template_values = {}
        try:
            apiCredentials = CommonElements.APICredential(
                'APP-80W284485P519543T', 'pd_1265515509_biz_api1.yahoo.com',
                '1265515515',
                'AFcWxV21C7fd0v3bYYYRCpSSRl31AC1woL3k8kA7-43yk77UeVap4cwO',
                'PythonSampleApp')

            chainedPay = FnAPI.ChainedPay(Constants.ServiceEnvironment.SANDBOX,
                                          apiCredentials)

            recv1 = CommonElements.Receiver(
                self.request.get('receiver_email1'))
            recv1.set_amount(self.request.get('receiver_amount1'))
            recv1.set_paymentType(self.request.get('paymentType'))
            recv1.set_primary('true')
            chainedPay.set_primaryReceiver(recv1)

            recv2 = CommonElements.Receiver(
                self.request.get('receiver_email2'))
            recv2.set_amount(self.request.get('receiver_amount2'))
            recv2.set_paymentType(self.request.get('paymentType'))
            chainedPay.set_secondaryReceiver(recv2)

            #set currencyCode
            chainedPay.set_currencyCode(self.request.get('currencyCode'))
            #set returnUrl
            chainedPay.set_returnUrl(
                'http://localhost:8080/PaymentDetails?payKey=${payKey}')
            #set cancelUrl
            chainedPay.set_cancelUrl(
                'http://localhost:8080/SimplePay?cancel=1')
            #set memo
            chainedPay.set_memo(self.request.get('memo'))
            #set userIp
            chainedPay.set_userIp(self.request.remote_addr)
            #set senderEmail if exists
            chainedPay.set_senderEmail(self.request.get('senderEmail'))

            response = chainedPay.make_request()
        except Exceptions.AuthorizationRequiredError, e:
            template_values['paymentAuthZUrl'] = e.url
            self.redirect(e.url)