市场支付平台

Poundpa的Python项目详细描述


PoundPay使开发人员能够构建有助于 两个用户之间的事务。Poundpay的设计 专门针对这些类型的交易,而不是直接 从客户到企业的付款。简言之,重金就是付款 市场平台。

安装

$ easy_install poundpay

配置

CONFIG = {
    'sandbox': {
        'developer_sid': 'DV0383d447360511e0bbac00264a09ff3c',
        'auth_token': ('c31155b9f944d7aed204bdb2a253fef13b4fdcc6ae15402004'
                       '49cc4526b2381a'),
        'api_url': 'https://api-sandbox.poundpay.com'
    },
    'production': {
        'developer_sid': 'DV8dd93f0f3c6411e0863f00264a09ff3c',
        'auth_token': ('d8c4ea1bafd3fcac8c1062a72c22bcdb09321deb1041df2571'
                       '65cd6449def0de')
    }
}

import poundpay
poundpay.configure(**CONFIG['production'])

创建付款

payment = poundpay.Payment(
    amount=10000,   # in usd cents, not dollars
    payer_fee_amount=0,
    payer_email_address='fred@example.com',
    recipient_fee_amount=500,
    recipient_email_address='david@example.com',
    description='Beats by Dr. Dre',
).save()

付款方式

list_of_payments = poundpay.Payment.all()
payment = poundpay.Payment.find(payment_sid)
payment.escrow()   # AUTHORIZED -> ESCROWED.  Credit card is charged
payment.release()  # ESCROWED   -> RELEASED.  Recipient receives money
payment.cancel()   # ESCROWED   -> CANCELED.  Payer receives refund

提供支付框架

<script src="https://www.poundpay.com/js/poundpay.js"></script>

<div id="pound-root"></div>

<script>
  function handlePaymentSuccess() {
    // do something
  }

  function handlePaymentError() {
    // handle error
  }

  PoundPay.init({
    payment_sid: "{{payment.sid}}",
    success: handlePaymentSuccess,
    error: handlePaymentError,
    first_name: "Fred", // Optional
    last_name: "Nietzsche", // Optional
    address_street: "990 Guerrero St", // Optional
    address_city: "San Francisco", // Optional
    address_state: "California", // Optional
    address_zip: "94110", // Optional
    server: "https://www-sandbox.poundpay.com"  // Exclude for production
  });
</script>

创建收费权限

charge_permission = poundpay.ChargePermission(
    email_address='payer@example.com',
).save()

停用充电权限

charge_permission = poundpay.ChargePermission.find(charge_permission_sid)
charge_permission.deactivate()

chargePermission方法

list_of_payments = poundpay.ChargePermission.all()
charge_permission = poundpay.ChargePermission.find(charge_permission_sid)
charge_permission.deactivate()  # CREATED or ACTIVE -> INACTIVE. Charge permission is deactivated and can no longer be used to authorize payments for the associated payer.

提供收费许可iframe

<script src="https://www.poundpay.com/js/poundpay.js"></script>

<div id="pound-root"></div>

<script>
  function handleChargePermissionSuccess() {
    // do something
  }

  function handleChargePermissionError() {
    // handle error
  }

  PoundPay.init({
    charge_permission_sid: "{{charge_permission.sid}}",
    success: handleChargePermissionSuccess,
    error: handleChargePermissionError,
    name: "Freddy Nietzsche", // Optional
    address_street: "990 Guerrero St", // Optional
    address_city: "San Francisco", // Optional
    address_state: "California", // Optional
    address_zip: "94110", // Optional
    server: "https://www-sandbox.poundpay.com"  // Exclude for production
  });
</script>

配料

在某些情况下,您可能希望批量授权和托管 付款。这样一来,该托收将只需one付款人费用 支付。请注意,如果您确实批量授权了 它还必须成批托管。

批处理是为购物车而设计的,在购物车中您希望收集付款 显示为单个电荷。

为了使用批处理,您只需将sidsall付款传入 要批处理到iframe的集合:

<script src="https://www.poundpay.com/js/poundpay.js"></script>

  <div id="pound-root"></div>

  <script>
    function handlePaymentSuccess() {
      // do something
    }

    function handlePaymentError() {
      // handle error
    }

    PoundPay.init({
      payment_sid: [
          "{{payment1.sid}}"
          "{{payment2.sid}}",
          "{{payment3.sid}}"
          ],
      success: handlePaymentSuccess,
      error: handlePaymentError,
      first_name: "Fred", // Optional
      last_name: "Nietzsche", // Optional
      address_street: "990 Guerrero St", // Optional
      address_city: "San Francisco", // Optional
      address_state: "California", // Optional
      address_zip: "94110", // Optional
      server: "https://www-sandbox.poundpay.com"  // Exclude for production
    });
  </script>

或者,如果您直接授权使用费用付款 权限:

Payments.batch_update(
    payment1.sid, payment2.sid, payment3.sid,
    status='AUTHORIZED')

最后,您需要批量托管付款:

Payments.batch_update(
    payment1.sid, payment2.sid, payment3.sid,
    status='ESCROWED')

请注意,如果您改为执行以下操作,则会触发一个错误,因为 批量支付必须被授权并集体托管:

Payments.find(payment1.sid, status='ESCROWED').save()  # fails

但是,如果你在批量托管之前取消了一些付款,你应该 从批处理调用中排除它们:

Payments.find(payment1.sid, status='CANCEL').save()  # ok

Payments.batch_update(
    payment2.sid, payment3.sid,
    status='ESCROWED')

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将spring j_spring_安全检查迁移到登录   log4j2中自定义appender中AppConfig的java问题   在将java转换为Json时是否可以忽略内部类名和变量   用java将PDF文件转换为十六进制格式   java将值从AsyncTask返回到主类   java如何导入带有部署变量类名的静态函数?   java Spring Boot@ConfigurationProperties未从环境检索属性   java为什么API调用需要80毫秒的延迟才能到达控制器(在Google应用程序引擎中)?   XML配置中MarshallingMessageConverter中的java设置MarshallTo获取无效属性“MarshallTo”   java从群中获取facebook帖子   @ComponentScan的java excludeFilters不起作用   java将单选按钮值从一个类传递到另一个类   java使JTextArea在Swing中可滚动   java Android增强现实应用程序:将球坐标旋转到设备坐标系