首先,我将向您展示我的完整代码以了解问题
这是 woocommerce api 身份验证,带有文件 checkout.ts 的消费者 key 和 secret
this.WooCommerce = WC({
url:"http://localhost/wordpress/",
consumerKey:"ck_429c9a4521b73420e6c6d57179ab2b19350fbdb8",
consumerSecret:"cs_b9aaa8b11d15a6132abca0a8b5ca324fcfa76f87",
});
这是函数 placeOrder() 的 checkout.ts 文件订单的 post 方法。
this.WooCommerce.postAsync("orders", orderData).then ((data) => {
//console.log(JSON.parse(data.body).order);
let response = (JSON.parse(data.body).order);
this.alertCtrl.create({
title: "Order Placed Successfully",
message: "Your order has been placed successfully. Your order number is " + response.order_number,
buttons: [{
text: "OK",
handler: () => {
this.navCtrl.push(HomePage);
}
}]
}).present();
})
这是 html 文件 checkout.html
<ion-item>
<ion-label>First Name</ion-label>
<ion-input type="text" [(ngModel)]="newOrder.billing_address.first_name"></ion-input>
</ion-item>
....
<button ion-button block color="danger" (click)="placeOrder()">Place Order</button>
当我点击下订单按钮时,它向我显示了这个错误
我在一些论坛上搜索了这个问题,他们建议我在消费者 key 和 secret 之后向 woocommerce api auth 添加一些代码,比如
verifySsl: false,
queryStringAuth: true
还要将一些代码添加到 .httaccess 文件中,例如
RewriteCond %{HTTP:Authorization} ^(.)
RewriteRule ^(.) - [E=HTTP_AUTHORIZATION:%1]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
最佳答案
var WooCommerce = new WooCommerceAPI({
url: 'http://example.com', // Your store URL
consumerKey: 'consumer_key', // Your consumer key
consumerSecret: 'consumer_secret', // Your consumer secret
wpAPI: true, // Enable the WP REST API integration
version: 'wc/v2' // WooCommerce WP REST API version
});
所以根据他们的 documentation您正在使用 OAUTH 1.0 授权策略,因此以上是基本的 WooCommerce 对象签名和属性。
关于javascript - WooCommerce API 中的 401 发布方法未经授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52190373/