参考shopify github:
https://github.com/Shopify/shopify_python_api
一、需要的参数 SHOPIFY_API_KEY/SHOPIFY_API_SECRET
二、服务端操作
shopify.Session.setup(api_key=API_KEY, secret=SHARED_SECRET)
# 首先实例化您的会话对象
session = shopify.Session("%s.myshopify.com" % site_name, version='2019-04')
# 设置权限
scope = ["read_products,write_products,read_product_listings,read_customers,read_orders,write_orders,read_shopify_payments_payouts,read_shopify_payments_disputes"]
# 构建回调url
permission_url = session.create_permission_url(scope, 'https://xxxxxx/api/api/shopify/callback')
# 前端调用permission_url进入shopify授权
d = {
'url': permission_url
}
return result.ok(data=d)
三、前端授权成功后回调
@api.route('/shopify/callback')
def shopify_callback():
#拿到临时code
code = request.args.get('code', '')
# 站名
shop_name = request.args.get('shop', '')
hmac = request.args.get('hmac', '')
timestamp = request.args.get('timestamp', 0, type=int)
if not code:
return render_template('shopify_auth_result.html', result=0, msg='code is null')
if not shop_name:
return render_template('shopify_auth_result.html', result=0, msg='shop is null')
if not hmac:
return render_template('shopify_auth_result.html', result=0, msg='hmac is null')
if not timestamp:
return render_template('shopify_auth_result.html', result=0, msg='timestamp is null')
API_KEY = current_app.config['SHOPIFY_API_KEY']
API_SECRET = current_app.config['SHOPIFY_API_SECRET']
params = {
'code': code,
'hmac': hmac,
'shop': shop_name,
'timestamp': timestamp,
}
shopify.Session.setup(api_key=API_KEY, secret=API_SECRET)
session = shopify.Session(shop_name, version='2019-04')
# 拿到token
token = session.request_token(params)
session.token = token
# 激活token
shopify.ShopifyResource.activate_session(session)
# 获取当前店铺
shop = shopify.Shop.current()
'''
shop.name 站名、shop.myshopify_domain 手续费率
'''