بازگشت

عملیات حساب مجازی

با استفاد از این پکیج می توانید عملیاتی مانند تعریف قانون برداشت مستقیم از حساب مشتری، افزایش موجودی مستقیم، انتقال پول و ... را انجام دهید.

نصب

برای نصب این پکیج کافیست دستور زیر را اجرا کنید

            
            pip install pod-virtual-account
            

برای ایجاد یک نمونه می توانید از کد زیر استفاده کنید

            
            from pod_virtual_account import PodVirtualAccount

API_TOKEN = "YOUR_API_TOKEN"
SERVER_MODE = "sandbox"  # sandbox or production

pod_virtual_account = PodVirtualAccount(api_token=API_TOKEN, server_type=SERVER_MODE)
            

حالا به راحتی می توانید از متدهای این پکیج استفاده کنید.

در ادامه توضیحات و نحوه استفاده از متدهای پکیج آمده است.

ایجاد قانون برداشت از حساب مشتری

نام متد add_withdraw_rule_plan
توضیحات ایجاد طرح تعرفه برای مجوز برداشت از حساب مشتری توسط کسب و کار

ورودی (ها)

نام نوع توضیحات اجباری؟
subscription_days int تعداد روز اشتراک بله
max_amount int سقف مبلغ قابل برداشت توسط کسب و کار بله
max_count int سقف مجاز تعداد دفعات برداشت از حساب توسط کسب و کار بله
type_code str نوع مجوز برداشت
WithdrawRuleType.SUBSCRIPTION : اشتراک زماندار بدون محدودیت در مبلغ و تعداد دفعات برداشت
WithdrawRuleType.SUBSCRIPTION_AMOUNT : اشتراک زماندار با سقف مبلغ و بدون محدودیت در تعداد دفعات برداشت
WithdrawRuleType.SUBSCRIPTION_AMOUNT_COUNT : اشتراک زماندار با سقف مبلغ و تعداد دفعات محدود
WithdrawRuleType.AMOUNT_COUNT : اشتراک با سقف مبلغ و تعداد دفعات محدود و زمان نا محدود
WithdrawRuleType.AMOUNT : اشتراک با سقف مبلغ محدود، زمان و تعداد دفعات نامحدود
بله
sc_voucher_hash list of str کدهای تخفیف  
sc_api_key str API KEY سرویس کال  

 

خروجی (ها)

dict

نمونه کد

            
            
try:
    pod_virtual_account = PodVirtualAccount(api_token=API_TOKEN, server_type=SERVER_MODE)

    result = pod_virtual_account.add_withdraw_rule_plan(subscription_days=5, max_amount=1000, max_count=5,
                                                        type_code=WithdrawRuleType.AMOUNT_COUNT)

    print(result)
    # OUTPUT
    # {
    #   "id": 4076,
    #   "creationDate": 1579984200000,
    #   "maxAmount": 1000,
    #   "maxCount": 5,
    #   "typeCode": "WITHDRAW_RULE_TYPE_AMOUNT_COUNT",
    #   "business": {
    #     "id": 7867,
    #     "name": "شرکت رضا",
    #     "numOfProducts": 395,
    #     "rate": {
    #       "rate": 8,
    #       "rateCount": 1
    #     },
    #     "sheba": "640170000000000000000000"
    #   },
    #   "subscriptionDaysAmount": 5
    # }

except APIException as e:
    print("API Exception\nError {}\nError Code : {}\nReference Number : {}".format(e.message, e.error_code,
                                                                                   e.reference_number))
except InvalidDataException as e:
    print("Validation Exception: ", e.message)
except PodException as e:
    print("Pod Exception: ", e.message)

            

دریافت لیست قوانین

نام متد withdraw_rule_plan_list
توضیحات لیست تمام قوانین تعریف شده توسط کسب و کار خود یا کسب و کارهای دیگر را مشاهده نمایید

ورودی (ها)

نام نوع توضیحات اجباری؟
page int شماره صفحه - پیشفرض 1 بله
size int تعداد رکورد در هر صفحه بله
business_id int شناسه کسب و کار بله
id int شناسه قانون (طرح برداشت)
access_token str توکن دسترسی کاربر (Access Token) - در صورتی که این مقدار را ارسال نکنید توکن کسب و کاری شما ارسال خواهد شد.
sc_voucher_hash list of str کدهای تخفیف  
sc_api_key str API KEY سرویس کال  

 

خروجی (ها)

list of dict

نمونه کد

            
            
try:
    pod_virtual_account = PodVirtualAccount(api_token=API_TOKEN, server_type=SERVER_MODE)

    access_token = USER_ACCESS_TOKEN   # شما می توانید به جای توکن کسب و کار access token کاربر را نیز ارسال کنید

    result = pod_virtual_account.withdraw_rule_plan_list(business_id=BUSINESS_ID, access_token=access_token, page=1,
                                                         size=50)

    print(result)
    print("Total :", pod_virtual_account.total_items())
    # OUTPUT
    # [
    #   {
    #     "id": 1141,
    #     "creationDate": 1564342200000,
    #     "maxAmount": 800000,
    #     "maxCount": 10,
    #     "typeCode": "WITHDRAW_RULE_TYPE_SUBSCRIPTION_AMOUNT",
    #     "business": {
    #       "id": 7867,
    #       "name": "شرکت رضا",
    #       "numOfProducts": 395,
    #       "rate": {
    #         "rate": 8,
    #         "rateCount": 1
    #       },
    #       "sheba": "640170000000000000000000"
    #     },
    #     "subscriptionDaysAmount": 90
    #   }
    #   , ...
    # ]

    # Total : 6

except APIException as e:
    print("API Exception\nError {}\nError Code : {}\nReference Number : {}".format(e.message, e.error_code,
                                                                                   e.reference_number))
except InvalidDataException as e:
    print("Validation Exception: ", e.message)
except PodException as e:
    print("Pod Exception: ", e.message)

            

لینک دریافت مجوز از کاربر

نام متد get_link_issue_withdraw_rule_by_plan
توضیحات دریافت لینک انتقال به صفحه دریافت مجوز برداشت از کاربر

ورودی (ها)

نام نوع توضیحات اجباری؟
business_id int شناسه کسب و کار بله
plan_id int شناسه قانون (طرح برداشت)
redirect_uri str آدرس بازگشت
call_uri str آدرس فراخوانی

 

خروجی (ها)

str

نمونه کد

            
            
try:
    pod_virtual_account = PodVirtualAccount(api_token=API_TOKEN, server_type=SERVER_MODE)

    print(pod_virtual_account.get_link_issue_withdraw_rule_by_plan(business_id=BUSINESS_ID, plan_id=1141,
                                                                      redirect_uri="https://karthing.ir",
                                                                      call_uri="https://karthing.ir/test.php"))

    # OUTPUT
    # https://sandbox.pod.ir:1033/v1/pbc/issueWithdrawRuleByPlan/?businessId=7867&planId=1141&redirectUri=https%3A%2F%2Fkarthing.ir&callUri=https%3A%2F%2Fkarthing.ir%2Ftest.php

    print(pod_virtual_account.get_link_issue_withdraw_rule_by_plan(business_id=BUSINESS_ID))
    # OUTPUT
    # https://sandbox.pod.ir:1033/v1/pbc/issueWithdrawRuleByPlan/?businessId=7867

    print(pod_virtual_account.get_link_issue_withdraw_rule_by_plan(business_id=BUSINESS_ID, plan_id=1141,
                                                                      redirect_uri="https://karthing.ir"))
    # OUTPUT
    # https://sandbox.pod.ir:1033/v1/pbc/issueWithdrawRuleByPlan/?planId=1141&redirectUri=https%3A%2F%2Fkarthing.ir&businessId=7867

except APIException as e:
    print("API Exception\nError {}\nError Code : {}\nReference Number : {}".format(e.message, e.error_code,
                                                                                   e.reference_number))
except InvalidDataException as e:
    print("Validation Exception: ", e.message)
except PodException as e:
    print("Pod Exception: ", e.message)

            

لیست مجوز های دریافت شده از کاربر

نام متد granted_withdraw_rule_list
توضیحات با استفاده از این متد می توانید لیستی از مجوزهایی که از کاربران دریافت کرده اید، را دریافت کنید.

ورودی (ها)

نام نوع توضیحات اجباری؟
page int شماره صفحه - پیشفرض 1 بله
size int تعداد رکورد در هر صفحه بله
userId int شناسه کاربر
typeCode str نوع مجوز برداشت
WithdrawRuleType.SUBSCRIPTION : اشتراک زماندار بدون محدودیت در مبلغ و تعداد دفعات برداشت
WithdrawRuleType.SUBSCRIPTION_AMOUNT : اشتراک زماندار با سقف مبلغ و بدون محدودیت در تعداد دفعات برداشت
WithdrawRuleType.SUBSCRIPTION_AMOUNT_COUNT : اشتراک زماندار با سقف مبلغ و تعداد دفعات محدود
WithdrawRuleType.AMOUNT_COUNT : اشتراک با سقف مبلغ و تعداد دفعات محدود و زمان نا محدود
WithdrawRuleType.AMOUNT : اشتراک با سقف مبلغ محدود، زمان و تعداد دفعات نامحدود
sc_voucher_hash list of str کدهای تخفیف  
sc_api_key str API KEY سرویس کال  

 

خروجی (ها)

list of dict

نمونه کد

            
            
try:
    pod_virtual_account = PodVirtualAccount(api_token=API_TOKEN, server_type=SERVER_MODE)

    params = {
        # "userId": 12456,    # جستجو براساس یک شناسه کاربر
        "typeCode": WithdrawRuleType.SUBSCRIPTION_AMOUNT      # جستجو براساس نوع مجوز
    }

    result = pod_virtual_account.granted_withdraw_rule_list(page=1, size=50, **params)

    print(result)
    print("Total :", pod_virtual_account.total_items())
    # OUTPUT
    # [
    #   {
    #     "id": 2714,
    #     "business": {
    #       "id": 7867,
    #       "name": "شرکت رضا",
    #       "numOfProducts": 395,
    #       "rate": {
    #         "rate": 8,
    #         "rateCount": 1
    #       },
    #       "sheba": "640170000000000000000000"
    #     },
    #     "creationDate": 1580041734589,
    #     "startDate": 1580041734589,
    #     "expireDate": 1587817734589,
    #     "maxAmount": 800000,
    #     "maxCount": 10,
    #     "typeCode": "WITHDRAW_RULE_TYPE_SUBSCRIPTION_AMOUNT",
    #     "usageCount": 0,
    #     "usageAmount": 0,
    #     "wallet": "PODLAND_WALLET",
    #     "expired": False,
    #     "user": {
    #       "id": 28590,
    #       "name": "سمیه بهدانی",
    #       "ssoId": "15778334",
    #       "ssoIssuerCode": 1,
    #       "profileImage": "https://core.pod.ir:443/nzh/image/?imageId=..."
    #     }
    #   },
    #   ...
    # ]

    # Total : 1

except APIException as e:
    print("API Exception\nError {}\nError Code : {}\nReference Number : {}".format(e.message, e.error_code,
                                                                                   e.reference_number))
except InvalidDataException as e:
    print("Validation Exception: ", e.message)
except PodException as e:
    print("Pod Exception: ", e.message)

            

لغو مجوز برداشت

نام متد revoke_withdraw_rule
توضیحات با استفاده از این متد می توانید مجوزی را که قبلا دریافت کرده اید را لغو کنید.

ورودی (ها)

نام نوع توضیحات اجباری؟
rule_id int شناسه مجوز بله
sc_voucher_hash list of str کدهای تخفیف  
sc_api_key str API KEY سرویس کال  

 

خروجی (ها)

boolean

نمونه کد

            
            
try:
    pod_virtual_account = PodVirtualAccount(api_token=API_TOKEN, server_type=SERVER_MODE)

    if pod_virtual_account.revoke_withdraw_rule(rule_id=2714):
        print("Revoked")

    # OUTPUT
    # Revoked

except APIException as e:
    print("API Exception\nError {}\nError Code : {}\nReference Number : {}".format(e.message, e.error_code,
                                                                                   e.reference_number))
except InvalidDataException as e:
    print("Validation Exception: ", e.message)
except PodException as e:
    print("Pod Exception: ", e.message)

            

مشاهده وضعیت یک مجوز

نام متد withdraw_rule_usage_report
توضیحات با استفاده از این متد می توانید وضعیت یک مجوز را دریافت نمایید.
نکته : برای فراخوانی این سرویس باید توکن دسترسی (Access Token) کاربر را داشته باشید.

ورودی (ها)

نام نوع توضیحات اجباری؟
rule_id int شناسه مجوز بله
access_token str توکن دسترسی (Access Token) کاربر بله
sc_voucher_hash list of str کدهای تخفیف  
sc_api_key str API KEY سرویس کال  

 

خروجی (ها)

boolean

نمونه کد

            
            
try:
    pod_virtual_account = PodVirtualAccount(api_token=API_TOKEN, server_type=SERVER_MODE)
    result = pod_virtual_account.withdraw_rule_usage_report(rule_id=2715, access_token=ACCESS_TOKEN)
    print(result)

    # OUTPUT
    #  {
    #   "rule": {
    #     "id": 2715,
    #     "business": {
    #       "id": 7867,
    #       "name": "شرکت رضا",
    #       "numOfProducts": 395,
    #       "rate": {
    #         "rate": 8,
    #         "rateCount": 1
    #       },
    #       "sheba": "640170000000000000000000"
    #     },
    #     "creationDate": 1580046933722,
    #     "startDate": 1580046933722,
    #     "expireDate": 1587822933722,
    #     "maxAmount": 800000,
    #     "maxCount": 10,
    #     "typeCode": "WITHDRAW_RULE_TYPE_SUBSCRIPTION_AMOUNT",
    #     "usageCount": 0,
    #     "usageAmount": 0,
    #     "wallet": "PODLAND_WALLET",
    #     "expired": False
    #   },
    #   "validUntil": 1587822933722,
    #   "remainingAmount": 800000,
    #   "remainingCount": 10
    # }

except APIException as e:
    print("API Exception\nError {}\nError Code : {}\nReference Number : {}".format(e.message, e.error_code,
                                                                                   e.reference_number))
except InvalidDataException as e:
    print("Validation Exception: ", e.message)
except PodException as e:
    print("Pod Exception: ", e.message)